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