Ero sivun ”Python 2/Wikishakkisivu” versioiden välillä

Poistettu sisältö Lisätty sisältö
Raimondo (keskustelu | muokkaukset)
Raimondo (keskustelu | muokkaukset)
Rivi 649:
 
Luetaan tiedosto riveittäin ja toteutetaan seuraavat operaatiot:
# Talletetaan ohjelman parametrit lukutiedoston nimi, tulostiedoston nimi ja suoritettava siirto ohjelman muuttujiin.
# Luetaan ja hukataan rivejä niin kauan, että löydetään Shakkilautamallineen alkurivi
# Avataan lukutiedosto lukemista varten.
# Avataan tulostiedosto kirjoittamista varten
# Luetaan lukutiedostosta rivi
# Toistetaan edellinen kohta ellei se ollut alkurivi
## Jos tiedosto loppuu ennen alkuriviä, annetaan virheilmoitus, tuhotaan tulostiedosto ja lopetetaan ohjelman suoritus
# Kopioidaan alkurivi tulostiedostoon
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin saakka ja talletaan tämä merkki sekä loppurivi tulostiedostoon edellisen sisällön jatkoksi.
## Jos tiedosto loppuu ennen '''|''' merkkiin, annetaan virheilmoitus, tuhotaan tulostiedosto ja lopetetaan ohjelman suoritus
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin saakka ja talletaan tämä merkki sekä loppurivi tulostiedostoon.
## Jos tiedosto loppuu ennen '''|''' merkkiä, annetaan virheilmoitus, tuhotaan tulostiedosto ja lopetetaan ohjelman suoritus
# Asetetaan rivi-indeksi i=8
# Luetaan rivi ja hukataan sen alusta merkit ensimmäiseen '''|''' merkkiin saakka ja talletaan sitä seuraava sisältörivi välitallennuspaikkaan i.
## Jos tiedosto loppuu ennen '''|''' merkkiä, annetaan virheilmoitus, tuhotaan tulostiedosto ja lopetetaan ohjelman suoritus
# Dekrementoidaan indeksiä i=i-1 ja toistetaan edellinen kohta, jos > 0.
# Suoritetaan sisältöriveihin annettua siirtoparametriä vastaava modifiointi
## Luetaan siirtomerkintää vastaavan lähtöruurun sisältö, merkitään se tyhjäksi ruuduksi ja talletetaan sen edellinen sisältö kohderuudun sisällöksi.
# Talletetaan kaikki sisältörivit niiden lukemisjärjestyksessä tulostiedostoon edellisten rivien jatkoksi.
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin tai rivin loppuun saakka.
# Toistetaan edellinen kohta, ellei riviltä löytynyt '''|''' merkkiä.
# Talletetaan '''|''' merkki ja sitä seuraavat merkit mallineen loppua ilmaiseva '''<nowiki>}}</nowiki>''' merkkipari mukaan luettuna sellaisenaan mallineen loppuosan välitalletuspaikkaantulostiedostoon.
# Jos lukutiedosto loppuu ennen mallineen loppumerkin löytymisä, annetaan virheilmoitus, deletoidaan tulostiedosto ja lopetetaan ohjelman suoritus.
# Suoritetaan sisältöriveihin annettua siirtoparametriä vastaava modifiointi
# Suljetaan tulostiedosto.
## <toteutuksen tarkempi kuvaus tähän>
# Suljetaan lukutiedosto
# Talletetaan mallineen osat lähtötiedostoon.
 
Ratkaisu voidaan toteuttaa kahdessa vaiheessa: