Prikazi cijelu temu 26.01.2011 02:37
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Lokacija:Tuzla


Predmet:Delphi - Rad sa tekstualnim fajlovima
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 izmjene 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ć procedure "AssignFile" dodijeliti fizički fajl na disku, varijabli u programu:

PreuzmiIzvorni kôd (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3. begin
  4.    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, upotrebit ćemo komponentu "TMemo" i upisat ćemo samo jednu liniju programskog koda:
Memo1.Lines.LoadFromFile('c:\autoexec.bat')
Da bi pročitali iz fajla liniju po liniju, morat ć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 javit će se greÅ¡ka. Kada fajl otvorimo na ovaj način - resetovanjem, koristit ćemo instrukciju "ReadLn" za čitanje pojedinačne linije.
...
v
PreuzmiIzvorni kôd (Delphi):
  1. ar
  2.    NekiTxtFajl : TextFile;
  3.    bafer : string;
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.   Reset(NekiTxtFajl);
  7.   ReadLn(NekiTxtFajl, bafer);
  8.   Memo1.Lines.Add(bafer);
  9.   CloseFile(NekiTxtFajl);
  10. 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 dodijelimo dvjema varijablama odjednom:

PreuzmiIzvorni kôd (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3.    bafer1,bafer2 : string[5];
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.    Reset(NekiTxtFajl);
  7.    ReadLn(NekiTxtFajl, bafer1,bafer2);
  8.    ShowMessage(bafer1 + ' ' +bafer2);
  9.    CloseFile(NekiTxtFajl);
  10. end;
Da spomenemo joÅ¡ i funkciju "EndOfFile" (EOF), koja sliči za provjeru kraja tekstualnog fajla, tj. da spriječi čitanje linija nakon krajnje linije fajla.

PreuzmiIzvorni kôd (Delphi):
  1. var
  2.    NekiTxtFajl : TextFile;
  3.    bafer : string;
  4. begin
  5.    AssignFile(NekiTxtFajl, 'c:\autoexec.bat');
  6.    Reset(NekiTxtFajl);
  7.    while not EOF(NekiTxtFajl) do
  8.     begin
  9.        ReadLn(NekiTxtFajl, bafer );
  10.        ShowMessage(bafer );
  11.     end;
  12.   CloseFile(NekiTxtFajl);
  13. end;

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.