6.4-мысал. Адамдардың фамилиялары мен туылған күндері тізім түрінде жазылған файл жасайтын программа құру керек. Осы файлдағы мəліметтерден берілген фамилиясы бойынша адамның туылған күнін анықтау керек.
Program ex;
Type fam=record { «қызметкерлер туралы мəліметтер» типіндегі жазба} ff:strin[20]; {фамилиясы} year:word; {туған жылы} month:1..12; { туған айы} day:1..31; { туған күні} end;
Var f:fi le of fam; { «қызметкерлер файлы»
файлдық айнымалысы}
fb:fam;
n,i:integer;
fff:string;
key:boolean;
Begin
Assign(f,'a.dat'); { файлдық айнымалыны файл-мен байланыстыру}
ReWrite(f); { жазу үшін файл ашу}
WriteLn('Мəлімет немесе CTRL-Z енгізіңіз');
while not EOF do { CTRL-Z енгізілгенше цикл}
begin
ReadLn(fb.ff,fb.year,fb.month,fb.day);
{мəліметтерді өрістер бойынша енгізу, фами-
лияны бөлек жолда енгізу, жолды енгізу Enter
арқылы аяқталады}
277
Write(f,fb); { жазбаны файлға бір компонент
түрінде жазу}
end;
Close(f); {файлды жабу} WriteLn('Фамилияны енгізіңіз'); ReadLn(fff);
key:=false; {«жазба табылмады» белгісін орна-ту}
ReSet(f); {файлды оқу үшін ашу}
while (not EOF(f)) and (not key) do {файл соңына жетпей жəне жазба табылмағанша } begin
Read(f,fb); { файлдан жазба оқу}
if fb.ff=fff then {егер фамилия сəйкес келсе, онда}
begin {мəлімет шығару}
WriteLn('Дата: ',fb.year,fb.month,fb.day:3);
key:=true; {«жазба табылды» белгісін орнату}
end;
end;
if not key then {егер белгі орнатылмаса }
WriteLn('Мəліметтер жоқ'); {онда « Мəліметтер
жоқ'» деп жазамыз}
Close(f); {файлды жабу}
End.
Кез келген мəтіндік файл CHAR типті компоненттері бар тип-телген файл ретінде оқылады. Мұнда мəтіндік файл соңы маркері екі символдар тіркесінен #13 жəне #10 түрінде болады.
6.5-мысал. CHAR типті компоненттерден тұратын типтелген файл түріндегі мəтіндік файл ашатын жəне одан мəліметтерді бір-бір символдан оқитын программа жазу керек.
Program char_text_fi le;
Type ff=fi le of char; {жаңа тип - символдық
файл}
Var
f:ff; { символдар файлы типіндегі файлдық ай-нымалы }
278
a:char;
n,i:integer;
fname,st:string[30];
Begin
WriteLn('Файл атын енгізіңіз'); ReadLn(fname); Assign(f,fname); {файлдық айнымалыны файлмен байланыстыру}
ReSet(f); {мəтіндік файлды типтелген файл ретінде оқу үшін ашу}
while not EOF(f) do { файл соңына жеткенше}
begin
st:='';
Read(f,a); {символды оқу}
while (a<>#13) and not EOF(f) do {жол соңы маркеріне немесе файл соңына дейін} begin
st:=st+a; {оқылған символды жолға қосу} Read(f,a); {келесі символды оқу} end;
if not EOF(f) then Read(f,a); { #10 символын өткізіп жіберу}
WriteLn(st); {құрастырылған жолды шығару}
end;
Close(f);
End.