6.3-мысал. Компоненттері пернелерден енгізілетін сим-волдардан тұратын файл құру керек. Файлдағы символдарды өзгертіп, ондағы мəліметтерді олардың басынан жəне соңынан кезектестіре оқып, соңында көрсетілген символды тауып оны өшіретін программа жазып шығу керек.
Program ex;
Var f,f1:fi le of char; {екі файлдық айнымалы}
ch,i:char;
j:longint;
name:string[8];
Begin
274
WriteLn('Файл атын енгізіңіз:'); ReadLn(name);
{ файл жасау жəне ашу}
Assign(f,name+'.dat'); {файлды файлдық айныма-
лымен байланыстырамыз}
ReWrite(f); {файлды мəлімет жазу үшін ашу (құру)}
WriteLn('Символдар немесе CTRL-Z енгізіңіз:'); {файлға жазбалар енгізу}
while not EOF(f) do {пернелерден CTRL-Z
енгізілгенше}
begin
ReadLn(ch); {пернеден символ енгіземіз}
Write(f,ch); {символды файлға жазамыз}
end;
WriteLn;
{ файлдан біртіндеп жазбаларды оқу} Reset(f); { файлды оқу үшін ашу}
while not EOF(f) do { файл соңына жеткенше} begin
Read(f,i); {файлдан символ оқу} Write(i,' '); {символды экранға шығару} end;
WriteLn;
{файлдағы жазбаларды өзгерту} Reset(f); {файлды оқу үшін ашу}
while not EOF(f) do {файл соңына жеткенше} begin
Read(f,i); {файлдан символ оқу} Write(i,' '); {символды экранға шығару} i:=chr(ord(i)+10); {символды өзгерту} WriteLn(i); {өзгертілген символды экранға шығару}
Seek(f,FilePos(f)-1); {бір компонентке кері қайту}
Write(f,i); {символды қайта жазу} end;
WriteLn;
275
{жазбаларды файл басынан жəне соңынан кезектестіре оқу}
ReSet(f); {файлды оқу үшін ашу}
j:=0; {компонент нөмірін 0-ге орналастыру} while not EOF(f) do {файл соңына жеткенше} begin
Read(f,i); {файл басынан символ оқу} Write(i); { символды экранға шығару } Seek(f,FileSize(f)-FilePos(f)); {файл соңынан оқу үшін көрсеткішті орналастыру} Read(f,i); { файл соңынан символ оқу } Write(i); { символды экранға шығару } j:=j+1; {компонент көлемін үлкейту} Seek(f,j); { файл басынан келесі компонентке көрсеткішті орналастыру } end;
WriteLn; WriteLn('Өшірілетін символды енгізіңіз'); ReadLn(ch);
{жазбаларды өшіруге даярлау; бастапқы файл
атын өзгерту жəне сол атпен жаңа файл ашу}
Close(f); {файлды жабу}
ReName(f,name+'.bak'); { файл атын өзгерту}
ReSet(f); { файлды оқу үшін ашу}
Assign(f1,name+'.dat'); {жаңа файлды айнымалы-
мен байланыстыру}
ReWrite(f1); { жазу үшін жаңа файл ашу} {жазбаларды өшіру – қалған жазбаларды басқа файлға жазу}
while not EOF(f) do { }
begin
Read(f,i); { файлдан символ оқу }
if i<>ch then Write(f1,i); {егер символ өшірілмеуі керек болса, оны жаңа файлға жазу} end;
Erase(f); {ескі файлды жою, ол жабылған соң онда ешнəрсе өзгермейді, сол себепті оны қайтадан жабу қажет емес}
276
{жаңа файлдан жазбаларды біртіндеп оқу}
ReSet(f1); {жаңа файлды оқу үшін ашу}
while not EOF(f) do
begin
Read(f1,ch); { файлдан оқу }
Write(ch,' ');
end;
WriteLn; End.
Достарыңызбен бөлісу: |