Ôàéë – ýòî èìåíîâàííàÿ ñòðóêòóðà äàííûõ, ïðåäñòàâëÿþùàÿ ñîáîé ïîñëåäîâàòåëüíîñòü ýëåìåíòîâ äàííûõ îäíîãî òèïà ðàñïîëîæåííûõ íà äèñêå èëè ëþáîì äðóãîì âíåøíåì íîñèòåëå.
Äëÿ ôàéëà ñóùåñòâóåò ïîíÿòèå òåêóùåé ïîçèöèè. Îíà ïîêàçûâàåò íîìåð ýëåìåíòà, êîòîðûé áóäåò ïðî÷èòàí èëè çàïèñàí ïðè î÷åðåäíîì îáðàùåíèè ê ôàéëó. ×òåíèå-çàïèñü êàæäîãî ýëåìåíòà ïðîäâèãàåò òåêóùóþ ïîçèöèþ íà åäèíèöó âïåðåä. Äëÿ áîëüøèíñòâà ôàéëîâ ìîæíî ìåíÿòü òåêóùóþ ïîçèöèþ ÷òåíèÿ-çàïèñè, âûïîëíÿÿ ïðÿìîé äîñòóï ê åãî ýëåìåíòàì.
 çàâèñèìîñòè îò òèïà ýëåìåíòîâ ðàçëè÷àþò òðè âèäà ôàéëà:
– ôàéë èç ýëåìåíòîâ îïðåäåëåííîãî òèïà (òèïèçèðîâàííûå ôàéëû);
– ôàéë èç ýëåìåíòîâ, òèï êîòîðûõ íå óêàçàí (íåòèïèçèðîâàííûé ôàéë);
– òåêñòîâûé ôàéë, ò.å. ýëåìåíòàìè ÿâëÿþòñÿ òåêñòîâûå ñòðîêè.
Äëÿ ðàáîòû ñ ôàéëîì â ïðîãðàììå îáúÿâëÿåòñÿ ôàéëîâàÿ ïåðåìåííàÿ (ëîãè÷åñêèé ôàéë) â ðàçäåëå îïèñàíèÿ ïåðåìåííûõ:
èìÿ_ôàéëà:file of òèï_ýëåìåíòîâ_ôàéëîâ;
Ôàéë, êîìïîíåíòàìè êîòîðîãî ÿâëÿþòñÿ äàííûå ñèìâîëüíîãî òèïà, íàçûâàåòñÿ ñèìâîëüíûì, èëè òåêñòîâûì:
èìÿ_ôàéëà:TextFile;
Ïîñëå îáúÿâëåíèÿ ôàéëîâîé ïåðåìåííîé, êîòîðàÿ çàäàåò òèï êîìïîíåíòîâ ôàéëà, íåîáõîäèìî óêàçàòü êîíêðåòíûé ôàéë, ò.å. ñâÿçàòü ôàéëîâóþ ïåðåìåííóþ ñ ôèçè÷åñêèì ôàéëîì. Äëÿ ýòîãî èñïîëüçóåòñÿ ïðîöåäóðà:
AssignFile(var f, èìÿ_ôàéëà:String);
Ôóíêöèè è ïðîöåäóðû äëÿ ðàáîòû ñ ôàéëàìè:
1. Îòêðûòèå ôàéëà äëÿ çàïèñè
– ïåðåçàïèñü (çàïèñü íîâîãî ôàéëà ïîâåðõ ñóùåñòâóþùåãî èëè ñîçäàíèå íîâîãî ôàéëà) – èñïîëüçóåòñÿ ïðîöåäóðà
rewrite(ôàéëîâàÿ_ïåðåìåííàÿ)
– äîáàâëåíèå â êîíåö ôàéëà – èñïîëüçóåòñÿ ïðîöåäóðà
append(ôàéëîâàÿ_ïåðåìåííàÿ)
1. Çàïèñü â ôàéë
Write(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Writeln(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Ðàçëè÷èå ìåæäó èíñòðóêöèÿìè â òîì, ÷òî èíñòðóêöèÿ writeln ïîñëå âûâîäà âñåõ çíà÷åíèé, çàïèñûâàåò â ôàéë ñèìâîë «íîâàÿ ñòðîêà».
2. Çàêðûòèå ôàéëà. Ïåðåä çàâåðøåíèåì ðàáîòû âñå îòêðûòûå ôàéëû íåîáõîäèìî çàêðûòü ñ ïîìîùüþ ïðîöåäóðû
CloseFile (ôàéëîâàÿ_ïåðåìåííàÿ)
3. Îòêðûòèå ôàéëà äëÿ ÷òåíèÿ. Èñïîëüçóåòñÿ ïðîöåäóðà Reset(ôàéëîâàÿ_ïåðåìåííàÿ)
4. ×òåíèå äàííûõ èç ôàéëà
read(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
readln(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Îòëè÷èå ìåæäó ýòèìè ïðîöåäóðàìè â òîì, ÷òî ïðè âûçîâå èíñòðóêöèè readln óêàçàòåëü ÷òåíèÿ èç ôàéëà àâòîìàòè÷åñêè ïåðåìåùàåòñÿ â íà÷àëî ñëåäóþùåé ñòðîêè ôàéëà.
5. Îïðåäåëåíèå êîíöà ôàéëà. Èñïîëüçóåòñÿ ôóíêöèÿ EOF(ôàéëîâàÿ_ïåðåìåííàÿ). Çíà÷åíèå ôóíêöèè ðàâíî false, åñëè ïðî÷èòàííûé ýëåìåíò äàííûõ íå ÿâëÿåòñÿ ïîñëåäíèì â ôàéëå, ò.å. âîçìîæíî äàëüíåéøåå ÷òåíèå. Åñëè ïðî÷èòàííûé ýëåìåíò ôàéëà ÿâëÿåòñÿ ïîñëåäíèì, òî çíà÷åíèå EOF ðàâíî true.
While not eof(f) do begin … end;
6. Rename(var F; NewName: string) – ïåðåèìåíîâûâàåò íåîòêðûòûé ôàéë F ëþáîãî òèïà. Íîâîå èìÿ çàäàåòñÿ â NewName.
7. Seek(var F; NumRec: Longint) – óñòàíàâëèâàåò ïîçèöèþ ÷òåíèÿ-çàïèñè íà ýëåìåíò ñ íîìåðîì NumRec; F – òèïèçèðîâàííûé èëè íåòèïèçèðîâàííûé ôàéë.
8. IOResult: Integer – âîçâðàùàåò êîä, õàðàêòåðèçóþùèé ðåçóëüòàò (áûëà îøèáêà èëè íåò) ïîñëåäíåé îïåðàöèè ââîäà-âûâîäà.
9. FilePos(var F): Longint – âîçâðàùàåò äëÿ ôàéëà F òåêóùóþ ôàéëîâóþ ïîçèöèþ (íîìåð ýëåìåíòà, íà êîòîðóþ îíà óñòàíîâëåíà, ñ÷èòàÿ îò íóëÿ). Íå èñïîëüçóåòñÿ ñ òåêñòîâûìè ôàéëàìè.
10. FileSize(var F): Longint – âîçâðàùàåò ÷èñëî êîìïîíåíò â ôàéëå F. Íå èñïîëüçóåòñÿ ñ òåêñòîâûìè ôàéëàìè.
Äëÿ ðàáîòû ñ ôàéëàìè ìîæíî èñïîëüçîâàòü ñëåäóþùèå âèçóàëüíûå êîìïîíåíòû:
– {SITELINK-S102}OpenDialog{/SITELINK};
– {SITELINK-S103}SaveDialog{/SITELINK} è äð, êîòîðûå íàõîäÿòñÿ íà âêëàäêå Dialogs.
|