Paprasčiau tariant, failas yra dvejetainė seka tam tikro tipo. Į Delfi, yra trys klasės byla: įvestas, tekstas ir nerašytas. Įrašyti failai yra failai, kuriuose yra tam tikro tipo duomenų, tokių kaip dvigubas, sveikasis skaičius arba anksčiau apibrėžtas pasirinktinio įrašo tipas. Teksto failai turi skaitomus ASCII simbolius. Neužrašyti failai naudojami tada, kai norime sukurti kuo mažesnę failo struktūrą.
Įvestos bylos
Nors tekstinius failus sudaro eilutės, baigtos CR / LF (#13#10) derinys, įvestus failus sudaro duomenys, paimti iš tam tikros rūšies duomenų struktūros.
Pavyzdžiui, šioje deklaracijoje sukuriamas įrašo tipas, vadinamas TMember, ir TMember įrašų kintamųjų masyvas.
tipo
TMember = įrašas
Vardas: stygos[50];
el. paštas:
stygos[30];
Žinutės: „LongInt“;
galas;
var Nariai: masyvas[1..50] apie TMember;
Prieš rašydami informaciją į diską, turime deklaruoti failo tipo kintamąjį. Tolesnė kodo eilutė deklaruoja F failo kintamąjį.
var F: byla TMember;
Pastaba: norėdami sukurti įvestą failą „Delphi“, naudojame šiuos dalykus sintaksė:
var „SomeTypedFile“: byla „SomeType“
Bazinis failo tipas (SomeType) gali būti skaliarinis (pvz., Dvigubas), masyvo arba įrašo tipas. Tai neturėtų būti ilga eilutė, dinaminis masyvas, klasė, objektas ar rodyklė.
Norėdami pradėti dirbti su failais iš „Delphi“, turime susieti failą diske su failo kintamuoju mūsų programoje. Norėdami sukurti šią nuorodą, turime naudoti „AssignFile“ procedūra susieti failą diske su failo kintamuoju.
„AssignFile“ (F, „Members.dat“)
Kai nustatomas susiejimas su išoriniu failu, reikia atidaryti failo kintamąjį F, kad jis būtų paruoštas skaityti ir rašyti. Kviečiame Reset procedūrą, kad atidarytume esamą failą, arba Rewrite, norėdami sukurti naują failą. Kai programa baigia apdoroti failą, jis turi būti uždarytas naudojant „CloseFile“ procedūrą. Uždarius failą, atnaujinamas su juo susijęs išorinis failas. Tada failo kintamasis gali būti susietas su kitu išoriniu failu.
Apskritai, mes visada turėtume naudoti išimties tvarkymas; daug klaidų gali atsirasti dirbant su failais. Pvz.: jei jau uždarytą failą vadiname „CloseFile“, „Delphi“ praneša apie I / O klaidą. Kita vertus, jei bandome uždaryti failą, bet dar nepaskambinome „AssignFile“, rezultatai yra nenuspėjami.
Parašykite į failą
Tarkime, kad mes užpildėme daugybę „Delphi“ narių su jų vardais, el. Laiškais ir žinučių skaičiumi ir norime šią informaciją saugoti faile diske. Šį kodą atliks darbas:
var
F: byla TMember;
i: sveikasis skaičius;
prasideda
„AssignFile“ (F, 'nariai.dat');
Perrašyti (F);
bandyti
dėl j: = 1 į 50 daryti
Rašyti (F, Nariai [j]);
pagaliau
„CloseFile“ (F);
galas;galas;
Skaitykite iš failo
Norėdami gauti visą informaciją iš failo 'Members.dat', mes naudosime šiuos duomenis kodas:
var
Narys: TMember
F: byla TMember;prasideda
„AssignFile“ (F, 'nariai.dat');
Atstatyti (F);
bandyti
o ne Eof (F) pradėti
Perskaitykite (F, Narys);
{„DoSomethingWithMember“;}
galas;
pagaliau
„CloseFile“ (F);
galas;galas;
Pastaba: „Eof“ yra „EndOfFile“ tikrinimo funkcija. Mes naudojame šią funkciją norėdami įsitikinti, kad nebandome skaityti už failo pabaigos (už paskutinio išsaugoto įrašo).
Siekimas ir pozicionavimas
Paprastai failai pasiekiami paeiliui. Kai failas skaitomas naudojant standartinę procedūrą Perskaitymas arba parašytas naudojant standartinę procedūrą „Write“, dabartinė failo padėtis pereina prie kito skaitmeniniu būdu užsakomo failo komponento (kito įrašo). Įrašytus failus taip pat galima pasiekti atsitiktine tvarka per standartinę procedūrą Ieškokite, kuri perkelia dabartinę failo vietą į nurodytą komponentą. „FilePos“ ir Failo dydis funkcijos gali būti naudojamos esamai failo padėčiai ir esamam failo dydžiui nustatyti.
{grįžti į pradžią - pirmasis įrašas}
Ieškokite (F, 0);
{pereikite prie 5-ojo įrašo}
Ieškokite (F, 5);
{Pereiti į pabaigą - „po“ paskutinio įrašo}
Ieškokite (F, FileSize (F));
Keisti ir atnaujinti
Jūs ką tik išmokote rašyti ir skaityti visą narių grupę, bet ką daryti, jei norite padaryti 10-ąjį narį ir pakeisti el. Laišką? Kita procedūra daro būtent tai:
procedūra Pakeisti el. paštą(const RecN: sveikasis skaičius; const Naujas elektroninis paštas: stygos) ;var DummyMember: TMember;prasideda
{priskirti, atidaryti, išimčių tvarkymo bloką}
Ieškoti (F, RecN);
Perskaitykite (F, DummyMember);
DummyMember. El. Paštas: = „NewEMail“;
{perskaitykite perėjimą prie kito įrašo, mes turime
grįžkite į pradinį įrašą, tada parašykite}
Ieškoti (F, RecN);
Rašyti (F, DummyMember);
{uždaryti failą}galas;
Užduoties atlikimas
Štai ir viskas - dabar jūs turite viską, ko jums reikia savo užduočiai įvykdyti. Galite įrašyti narių informaciją į diską, perskaityti atgal ir netgi pakeisti kai kuriuos duomenis (pvz., El. Paštą) failo „viduryje“.
Svarbu tai, kad šis failas nėra ASCII failas, taip jis atrodo Užrašų knygelė (tik vienas įrašas):
.Delphi vadovas g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï..