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

Poistettu sisältö Lisätty sisältö
Raimondo (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
Raimondo (keskustelu | muokkaukset)
Rivi 648:
===Tehtävän ratkaisu===
 
Luetaan tiedosto riveittäin ja toteutetaan seuraavat operaatiot:
# Etsitään tiedostosta Shakkilauta-mallineen alkurivi.
# Luetaan ja hukataan rivejä niin kauan, että löydetään Shakkilautamallineen alkurivi
# Kopioidaan se sekä sitä seuraavat kaksi '''|''' merkeillä alkavaa parametri- ja yläotsikkoriviä sellaisenaan tulostiedostoon.
# Kopioidaan alkurivi tulostiedostoon
# Kopioidaan sitä seuraavat sisältörivit välitallennuspaikkoihin ensimmäisistä '''|''' merkeistä lähtien ja hukataan niitä mahdollisesti edeltävät kommenttitekstit.
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin saakka ja talletaan tämä merkki sekä loppurivi tulostiedostoon edellisen sisällön jatkoksi.
# Hukataan näitä mahdollisesti seuraavat kommennntitekstirivit ja talletetaan '''|''' merkeillä alkava alaotsikkotieto ja mallineen päättävä '''<nowiki>}}</nowiki>'''merkkipari sellaisenaan mallineen loppuosan välitalletuspaikkaan.
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin saakka ja talletaan tämä merkki sekä loppurivi tulostiedostoon.
# Asetetaan rivi-indeksi i=8
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin saakka ja talletaan sitä seuraava sisältörivi välitallennuspaikkaan i.
# Dekrementoidaan indeksiä i=i-1 ja toistetaan edellinen kohta, jos > 0.
# Luetaan rivi ja hukataan sen alusta merkit '''|''' merkkiin tai rivin loppuun saakka.
# Toistetaan edellinen kohta, ellei riviltä löytynyt '''|''' merkkiä.
# Hukataan näitä mahdollisesti seuraavat kommennntitekstirivit ja talletetaanTalletetaan '''|''' merkeillämerkki alkavaja alaotsikkotietositä jaseuraavat merkit mallineen päättäväloppua ilmaiseva '''<nowiki>}}</nowiki>'''merkkipari mukaan luettuna sellaisenaan mallineen loppuosan välitalletuspaikkaan.
# Suoritetaan sisältöriveihin annettua siirtoparametriä vastaava modifiointi
## <toteutuksen tarkempi kuvaus tähän>
# Talletetaan mallineen osat lähtötiedostoon.
 
Ratkaisu voidaan toteuttaa kahdessa vaiheessa:
# Toteutetaan tiedoston hajottaminen välitallennuspaikkoihin ja kokoaminen takaisin lähtötiedostoon ilman sisällön modifiointia.
# Lisätäät toimintaan sisältörivien modifiointi.
 
 
===Aiheesta muualla===