4.11.4. Tiedoston loppumisen testaus (eof) ja tiedoston sulkeminen (close)

Tiedoston loppumista voi testata eof-komennolla (engl. end of file). eof-komento palauttaa arvon 0, jos luku- ja kirjoituspää ei ole vielä ohittanu t tiedoston loppumerkkiä. Jos komento palauttaa arvon 1, on tiedoston viimeinen rivi luettu edellisellä lukukerralla. Seuraavassa esimerkissä luetaan tiedostosta doku.txt tekstiä rivi kerrallaan, kunnes tull aan tiedoston loppuun ja lukeminen lopetetaan. 

set file_id [open "juttu.txt" "r"]

while {! [eof $file_id]} {

gets $file_id rivi

;#kuvitellaan, että tässä tehdään luetulle

;#riville jotain...

}

Esimerkissä while-komennon suoritusehtona on lauseke ! [eof $file_id]. Hakasulkeissa oleva eof $file_id palauttaa aina nollan, kun tiedostos sa on vielä jotain luettavaa. Loogista ei-operaattoria käyttämällä palautusarvo nolla muuttuu arvoksi yksi (!0 = 1), joka on tosi. Tällöin while-komennon suorituseh to toteutuu ja silmukka suoritetaan uudelleen. Kun eof palauttaa arvon 1, tulee suoritusehdon arvoksi nolla eli epätosi (!1 = 0), jolloin silmukan suoritus päättyy.

Tiedosto pitää sulkea aina, kun sitä ei enää käytetä ohjelmassa. Tällöin tiedosto vapautuu muiden käyttäjien käyttöön. Tiedosto suljetaan komennolla close ja sille annetaan parametrina tiedoston tunniste, kuten seuraavassa esimerkissä:

close $file_id


previous gif next gif
Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.