Tehnika Krstarice > Programiranje > Delphi - Rad sa tekstualnim fajlovima

Delphi - Rad sa tekstualnim fajlovima

15.12.2000.

Svaki tekstualni fajl se sastoji od niza ASCII karaktera. Rad sa ovakvim fajlovima u Delphi-ju je vrlo sličan "čitanju" i snimanju podataka sa audio kaseta. U tekstualne fajlove možemo da dodajemo nove podatke, činimo izmene nad postojećim i dr. Tekst fajlovi u stvari predstavljaju nizove karaktera koji su formatirani u linije (redove), gde je svaka linija određena znakom "end-of-line" na kraju linije.

Da bi uopšte radili u Delphi-ju sa ovakvim fajlovima, moramo da povežemo fajl na disku sa fajl-varijablom u našem programu. Da bi ovo uradili prvo ćemo deklarisati varijablu tipa "TextFile", i potom ćemo uz pomoće procedure "AssignFile" dodeliti fizički fajl na disku, varijabli u programu:

var
   NekiTxtFajl : TextFile;
begin
   AssignFile(NekiTxtFajl , FileName)
...

Da napomenemo, ukoliko fajl pozvan uz pomoć "FileName", nije u tekućem folderu, moramo navesti celu putanju do fajla na disku. Da bi učitali podatke iz tekst fajla u Delphi projekt, upotrebićemo komponentu "TMemo" i upisaćemo samo jednu liniju programskog koda:

Memo1.Lines.LoadFromFile('c:\autoexec.bat')

Da bi pročitali iz fajla liniju po liniju, moraćemo da otvorimo fajl za ulaz, koristeći "Reset" proceduru. Ova procedura otvara postojeći fajl sa nazivom dodeljenim pomoću TextFile varijable. U slučaju da fajl ne postoji na disku javiće se greška. Kada fajl otvorimo na ovaj način - resetovanjem, koristićemo instrukciju "ReadLn" za čitanje pojedinačne linije.

...
var
   NekiTxtFajl : TextFile;
   bafer : string;
begin
   AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  Reset(NekiTxtFajl);
  ReadLn(NekiTxtFajl, bafer);
  Memo1.Lines.Add(bafer);
  CloseFile(NekiTxtFajl);
end;
...

Procedura ReadLn, iščitava jednu liniju teksta i prelazi na sledeću. Kada završimo rad sa tekstualnim fajlovima, obavezno sledi njihovo zatvaranje pomoću procedure "CloseFile". Slična prethodnoj proceduri "ReadLn" je i procedura "Read", s tim što ona kada iščita liniju pokazivač ne prebacuje na sledeću liniju. Takođe, moguće je da sadržaj jedne linije teksta dodelimo dvema varijablama odjednom:

var
   NekiTxtFajl : TextFile;
   bafer1,bafer2 : string[5];
begin
   AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
   Reset(NekiTxtFajl);
   ReadLn(NekiTxtFajl, bafer1,bafer2);
   ShowMessage(bafer1 + ' ' +bafer2);
   CloseFile(NekiTxtFajl);
end;

Da spomenemo još i funkciju "EndOfFile" (EOF), koja sliži za proveru kraja tekstualnog fajla, tj. da spreči čitanje linija nakon krajnje linije fajla.

var
   NekiTxtFajl : TextFile;
   bafer : string;
begin
   AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
   Reset(NekiTxtFajl);
   while not EOF(NekiTxtFajl) do
    begin
       ReadLn(NekiTxtFajl, bafer );
       ShowMessage(bafer );
    end;
  CloseFile(NekiTxtFajl);
end;

Preporučite ovaj članak

Članak još uvek nije ocenjen.