Записи и работа с файлом

Известны фамилии, адреса и телефоны 25 человек. Найти фамилии и адреса людей, чей телефон начинается с цифры 3. Телефон задан в виде 000-00-00Составить три программы: первая должна формировать на диске файл записей с исходными данными, вторая выводить его содержимое на экран, третья - выводить результатыПрограмма без файла
Кликните здесь для просмотра всего текста
uses crt;
const n=3;
      line='-------------------------------------------------------';
      shap='|  famil       |       adres         |        telefon  |';
 
type telephone = record
     fam:  string[10];
     adr:  string[20];
     tel:  string[9];
     end;
 
var t:array [1..n] of telephone;
    i,k:byte;
 
begin
writeln('Vnesite dannie:');
for i:=1 to n do
    with t[i] do
         begin
         write('Famil: '); readln(fam);
         write('Andres: '); readln(adr);
         repeat
         write('Telefon (000-00-00): '); readln(tel);
         until (length(tel)=9) and ((tel[4]='-') and (tel[7]='-'));
         end;
clrscr;
write('Telefoni na cifru 3');
for i:=1 to n do
    with t[i] do
         if tel[1]='3' then
            begin
            inc(k);
            if k=1 then
               begin
               writeln;
               writeln(line);
               writeln(shap);
               writeln(line);
               end;
            writeln('|',fam:10,'|':2,adr:25,'|':5,tel:9,'|':3);
            writeln(line);
            end;
if k=0 then writeln(' otsutstvujut') else
   writeln('Vsego ',k);
readln;
end.
Что я попробовал написать
Кликните здесь для просмотра всего текста
uses crt;
const n=3;
      line='-------------------------------------------------------';
      shap='|  famil       |       adres         |        telefon  |';
 
type telephone = record
     fam:  string[10];
     adr:  string[20];
     tel:  string[9];
     end;
 
var t:array [1..n] of telephone;
    i,k:byte;
 g:text;
begin
writeln('Vnesite dannie:');
assign(g,'аа.txt');
  reset(g);
for i:=1 to n do
    with t[i] do
         begin
         While not Eof(g) do 
     begin
         write('Famil: '); read(g,fam);
         write('Andres: '); read(g,adr);
         write('Telefon (000-00-00): '); read(g,tel);
        
        end;
         end;
 close(g);
clrscr;;
reset(g);
write('Telefoni na cifru 3');
for i:=1 to n do
    with t[i] do
         if tel[1]='3' then
            begin
            inc(k);
            if k=1 then
               begin
               writeln;
               writeln(line);
               writeln(shap);
               writeln(line);
               end;
While not Eof(g) do 
     Begin
 read(g,fam,adr,g,tel);
            writeln('|',g,fam:10,'|':2,g,adr:25,'|':5,g,tel:9,'|':3);
            writeln(line);
            end;
            end;
if k=0 then writeln(' otsutstvujut') else
   writeln('Vsego ',k);
readln;
end.
Сначала пробую без подпрограмм, но программа не работает с файлом
1 ответ

shop, простите, а можно узнать, почему у Вас файл текстовый, а не типизированный? Или этого требует условие задания?