Delphi – Rad sa tekstualnim fajlovima

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;

Pratite Krstaricu na www.krstarica.com