Ïðèìåð. Ðàçðàáîòàòü ïðèëîæåíèå, êîòîðîå ñîçäàåò òåêñòîâûé ôàéë ñ ðàñøèðåíèåì .txt (ïóòü ê ôàéëó óêàçûâàåòñÿ â îêíå ââîäà).  äàííûé ôàéë çàïèñûâàåòñÿ òåêñò, ââåäåííûé ïîëüçîâàòåëåì ñ ïîìîùüþ ìíîãîñòðî÷íîãî ðåäàêòîðà Memo (êíîïêà «Ñîõðàíèòü»), à òàêæå ïðåäóñìîòðåòü âîçìîæíîñòü äîáàâëåíèÿ äàííûõ â êîíåö ñóùåñòâóþùåãî ôàéëà (êíîïêà «Äîáàâèòü»). Íåîáõîäèìî òàêæå ïðåäóñìîòðåòü ïðîñìîòð ñîäåðæèìîãî ôàéëà, ïóòü êîòîðîãî óêàçûâàåòñÿ â ïîëå Edit (êíîïêà «Îòêðûòü»). Ïðè âûïîëíåíèè äàííîãî çàäàíèÿ íåîáõîäèìî òàêæå èñïîëüçîâàòü êîìïîíåíòû OpenDialog è SaveDialog – äëÿ îòêðûòèÿ è ñîõðàíåíèÿ ôàéëîâ.
Ôóíêöèè è ïðîöåäóðû äëÿ ðàáîòû ñ ôàéëàìè:
1. Îòêðûòèå ôàéëà äëÿ çàïèñè
– ïåðåçàïèñü (çàïèñü íîâîãî ôàéëà ïîâåðõ ñóùåñòâóþùåãî èëè ñîçäàíèå íîâîãî ôàéëà) – èñïîëüçóåòñÿ ïðîöåäóðà
rewrite(ôàéëîâàÿ_ïåðåìåííàÿ)
– äîáàâëåíèå â êîíåö ôàéëà – èñïîëüçóåòñÿ ïðîöåäóðà
append(ôàéëîâàÿ_ïåðåìåííàÿ)
2. Çàïèñü â ôàéë
Write(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Writeln(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Ðàçëè÷èå ìåæäó èíñòðóêöèÿìè â òîì, ÷òî èíñòðóêöèÿ writeln ïîñëå âûâîäà âñåõ çíà÷åíèé, çàïèñûâàåò â ôàéë ñèìâîë «íîâàÿ ñòðîêà».
3. Çàêðûòèå ôàéëà. Ïåðåä çàâåðøåíèåì ðàáîòû âñå îòêðûòûå ôàéëû íåîáõîäèìî çàêðûòü ñ ïîìîùüþ ïðîöåäóðû
CloseFile (ôàéëîâàÿ_ïåðåìåííàÿ)
4. Îòêðûòèå ôàéëà äëÿ ÷òåíèÿ. Èñïîëüçóåòñÿ ïðîöåäóðà Reset(ôàéëîâàÿ_ïåðåìåííàÿ)
5. ×òåíèå äàííûõ èç ôàéëà
read(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
readln(ôàéëîâàÿ_ïåðåìåííàÿ, ñïèñîê_ïåðåìåííûõ)
Îòëè÷èå ìåæäó ýòèìè ïðîöåäóðàìè â òîì, ÷òî ïðè âûçîâå èíñòðóêöèè readln óêàçàòåëü ÷òåíèÿ èç ôàéëà àâòîìàòè÷åñêè ïåðåìåùàåòñÿ â íà÷àëî ñëåäóþùåé ñòðîêè ôàéëà.
6. Îïðåäåëåíèå êîíöà ôàéëà. Èñïîëüçóåòñÿ ôóíêöèÿ EOF(ôàéëîâàÿ_ïåðåìåííàÿ). Çíà÷åíèå ôóíêöèè ðàâíî false, åñëè ïðî÷èòàííûé ýëåìåíò äàííûõ íå ÿâëÿåòñÿ ïîñëåäíèì â ôàéëå. Åñëè ïðî÷èòàííûé ýëåìåíò ôàéëà ÿâëÿåòñÿ ïîñëåäíèì, òî çíà÷åíèå EOF ðàâíî true.
While not eof(f) do begin … end;
Ïðèìåðû íåêîòîðûõ ïðîöåäóð:
procedure TForm2.Button1Click(Sender: TObject);
begin
//Êíîïêà ñîõðàíèòü
fname:=Edit1.Text;
AssignFile(f,fname);
rewrite(f);
For i:=1 to Memo1.lines.Count do
writeln(f, memo1.lines[i-1]);
closefile(f);
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
//Êíîïêà äîáàâèòü â êîíåö ôàéëà
fname:=Edit1.Text;
AssignFile(f,fname);
append(f);
writeln(f, memo1.text);
closefile(f);
end;
|