Preprosto povedano, besedilne datoteke vsebujejo berljivo besedilo ASCII znakov. Delo z besedilno datoteko v Delfih si lahko predstavljamo kot analogno predvajanju ali snemanju informacij na video kaseto.
Čeprav je možno spremeniti besedilno datoteko, med obdelavo informacij skočite okoli ali dodajte v datoteko nekaj podatkov razen na koncu je priporočljivo uporabljati besedilno datoteko le, če vemo, da delamo z navadnim besedilom in takšnih operacij ni potrebno.
Šteje se, da besedilne datoteke predstavljajo zaporedje znakov, oblikovanih v vrstice, pri čemer se vsaka vrstica zaključi z označevalcem končne vrstice (a CR / LF kombinacija).
TextFile in metoda dodeljevanja
Če želite začeti delati z besedilnimi datotekami, morate datoteko na disku povezati z datotečno spremenljivko v kodi - prijavite se spremenljivko tipa TextFile in uporabite postopek AssignFile, da datoteko na disku povežete z datoteko spremenljivka.
Branje informacij iz besedilne datoteke
Če želimo vsebino datoteke prebrati nazaj na seznam nizov, bo samo ena vrstica kode opravila nalogo.
Za branje informacij iz datoteke v vrstico moramo datoteko odpreti za vhod z uporabo Ponastaviti postopek. Ko je datoteka ponastavljena, lahko uporabimo ReadLn za branje informacij iz datoteke (prebere eno vrstico besedila iz datoteke in se nato premakne na naslednjo vrstico):
Ko dodate eno vrstico besedila iz datoteke v komponento beležke, je treba SomeTxtFile zapreti. To stori Zapri ključna beseda.
Za branje informacij iz datoteke lahko uporabimo tudi postopek branja. Read deluje tako kot ReadLn, le da kazalca ne premakne v naslednjo vrstico.
EOF - konec datoteke
Uporabite funkcijo EOF in se prepričajte, da ne želite brati dlje od konca datoteke. Recimo, da želimo prikazati vsebino datoteke v okencih s sporočili - eno vrstico naenkrat, dokler ne pridemo do konca datoteke:
Opomba: Bolje je uporabiti Medtem ko zanka kot zanka Do, da upoštevamo (malo verjetno) možnost, da datoteka obstaja, vendar ne vsebuje nobenih podatkov.
Pisanje besedila v datoteko
The WriteLn je verjetno najpogostejši način pošiljanja posameznih informacij v datoteko. Naslednja koda bo prebrala besedilo iz komponente Memo1 (vrstica za vrstico) in jo poslala v neko novo ustvarjeno besedilno datoteko.
Glede na stanje datoteke, ki je bila v postopku Rewrite, ustvari novo datoteko (odpre datoteko za izhod) z imenom, dodeljenim SomeTextFile. Če datoteka z istim imenom že obstaja, se izbriše in namesto nje ustvari novo prazno datoteko. Če je SomeTextFile že odprt, se najprej zapre in nato ponovno ustvari. Trenutni položaj datoteke je nastavljen na začetek prazne datoteke.
Opomba: Memo1.Lines. SaveToFile ('c: \ MyTextFile.txt') bo naredil enako.
Včasih bomo morali dodati nekaj besedilnih podatkov na konec obstoječe datoteke. V tem primeru bomo poklicali Doda za zagotovitev, da se datoteka odpre z dostopom samo za pisanje s kazalcem datoteke, nameščenim na koncu datoteke. Nekaj kot:
Bodite pozorni na izjeme
Na splošno morate vedno uporabljati ravnanje z izjemami pri delu z datotekami. V / I je polna presenečenj. Vedno uporabite CloseFile v končnem bloku, da preprečite možnost, da bi poškodovali FAT uporabnika. Vse prejšnje primere je treba na novo napisati na naslednji način:
Manipuliranje s strukturiranimi datotekami
Delphi ima možnost obdelave tako ASCII datotek kot datotek, ki vsebujejo dvojiške podatke. Tu so tehnike za delo vtipkane in netipične (binarne) datoteke.