284
SeekEOLn( [Var f] ):boolean функциясы алғашқы символ таңбасына дейінгі жол соңы жəне табуляция маркерлерін немесе барлық босорын таңбаларын алып тастайды да, жол соңы маркерін кездестіргенде, TRUE мəнін қайтарады. Егер файлдық айнымалы болмаса, ол стандартты INPUT файлымен жұмыс істейді.
Функция SeekEOF( [Var f] ):boolean функциясы файл соңы таңбасына дейінгі немесе алғашқы символға дейінгі жол соңы жəне табуляция маркерлерін немесе барлық бо-сорын таңбаларын алып тастайды да, файл соңы маркерін
кездестіргенде, TRUE мəнін қайтарады. Егер файлдық ай-нымалы болмаса, ол стандартты INPUT файлын тексереді.
Бірнеше мысал қарастырайық.
6.1-мысал. 26 жолдан тұратын мəтіндік файл құру керек, оның əрбір жолына латын алфавитінің бас əріптерінің кез келген санын төмендегідей түрде жазып шығу қажет: AAAAA
BBBBB
C
DDDDDDDDDDDDDDDDDDDDD
и т.д.
Program form_text_fi le; Var
f:text; {мəтіндік файлға арналған файлдық ай-нымалы}
f:char; n,i:integer; fname,st:string[30]; Begin
WriteLn('Файл атын енгізіңіз'); ReadLn(fname); Assign(f,fname); {файлдық айнымалыны анықтаймыз}
ReWrite(f); {жазбалар үшін файл ашу} Randomize; {кездейсоқ сандар алуды дайындау} for a:='A' to 'Z' do {жолдарды құрастыру} begin
st:='';
n:=Random(30)+1;
for i:=1 to n do st:=st+a;
285
WriteLn(f,st); {мəтіндік файлға жол жазу} WriteLn(st); {бақылау үшін оны экранға шығару} end;
Close(f); {файлды жабу}
End.
Мəтіндік файл ұзындығы əр түрлі болғандықтан, оларды тек тізбекті түрде біртіндеп өңдейді (жазу, оқу жəне іздеу). Файлды толықтырудың кез келген түрі (оның соңына жазба қосудан басқа) оның мəліметтерін басқа файлға жазу арқылы орындалады.
6.2-мысал. Мəтіндік файлдан барлық «бос» жолдарды – сим-волдары жоқ жолдар жəне босорын мен табуляция белгілері ғана бар жолдарды – алып тастайтын программа жасау керек.
Өңдеу барысында мəтіндік файлдан жолдардың белгілі бір бөлігі алынып тасталатындықтан, файлдың бос емес жолдарын сақтайтын арнайы файл жасау керек болады.
Program ex;
Var f1,f2:text; {мəтіндік файлдың файлдық ай-
нымалылары}
st,name:string;
Begin
WriteLn('Файл атын енгізіңіз:'); ReadLn(name); Assign(f1,name); {файлдық айнымалыны тағайындау}
{$I-} {файлдың бар екенін тексеру}
Reset(f1);
{$I+}
if IOResult=0 then {егер осындай атты файл бар
болса}
begin
Assign(f2,'temp.dat'); {жаңа файл тағайындаймыз}
ReWrite(f2); {жазбалар үшін жаңа файл ашу} while not EOF(f1) do {файл соңына жеткенше} begin
if SeekEOLn(f1) then ReadLn(f1,st) {егер жол бос болса,оны алып тастаймыз} else
286
begin
ReadLn(f1,st); {жолды оқу}
WriteLn(f2,st); {оны жаңа файлға жазу}
end;
end;
Close(f1); {ескі файлды жабу} Close(f2); {жаңа файлды жабу} Erase(f1); {ескі файлды өшіру} ReName(f2,name); {жаңа файлдың атын өзгерту} end
else WriteLn('Мұндай аты бар файл табылмады.'); End.
Достарыңызбен бөлісу: |