- •«Обработка файлов средствами языка Turbo Pascal»
- •Лабораторная работа № 7 Обработка файлов средствами языка Turbo Pascal
- •Порядок выполнения работы
- •1. Получить вариант задания.
- •2. Изучить процедуры и функции, используемые для работы с файлами, и необходимые для выполнения данной лабораторной работы.
- •3. Разработать алгоритм подготовки и обработки данных на основе заданных операций.
- •Варианты заданий
- •Описание входных и выходных данных
- •Текст программы
- •С а) хема программы
- •Примеры работы программы
- •Контрольные вопросы
- •3. Каково назначение переменных файлового типа? Как могут быть определены такие переменные в Pascal-программе?
- •4. Каков состав и каково назначение установочных и завершающих операций с файлами? Какие параметры используются при обращении к соответствующим процедурам?
- •5. При помощи каких процедур реализуются операции ввода-вывода (чтения из файла и записи в файл)? Каким образом происходит выполнение этих процедур?
- •6. Каково назначение операций перемещения по файлу, определения параметров файла?
- •7. Как организовать обработку ошибок при работе с файлами?
- •8. Что такое «текстовый файл»? Какие процедуры используются для открытия текстовых файлов, для чтения из файла, записи в файл?
С а) хема программы
Б)
Текст программы
А) Program laba7;
Var i,kol:byte;
a:array[1..30] of real;
f_name:string;
b:real;
F1:file of real;
Begin
writeln('Vvedite kolichestvo elementov massiva');
readln(kol);
writeln('Vvedite massiv');
for i:=1 to kol do
begin
write('a',i,'=');
readln(a[i]);
end;
writeln('Vvedite imya faila');
readln(f_name);
assign(F1,f_name);
rewrite(F1);
for i:=1 to kol do
write(F1,a[i]);
close(F1);
assign(F1,f_name);
reset(F1);
for i:=1 to kol do
begin
read(F1,b);
writeln('a',i,'=',b:4:3);
end;
close(F1);
readln;
End.
Б) Program laba7_2;
Uses crt;
Const f_name='D:\myfile.txt';
Type otsen = record
mat:0..5;
inf:0..5;
end;
stud = record
fio:string[30];
ot:otsen;
end;
FS = file of stud;
Var kol:byte;
F1:FS;
Procedure vvod;
Var s:stud;
code,i:byte;
Begin
clrscr;
assign(F1,f_name);
{$I-}
rewrite(F1);
code:=ioresult;
if code <> 0 then
begin
write('Oshibka pri otkrytii faila: ');
case code of
1: writeln('Fail ne naiden');
3: writeln('Marshrut ne naiden');
4: writeln('Slishkom mnogo otkrytyh failov');
5: writeln('Dostup k failu zapreshen');
12: writeln('Nekorektniy kod dostupa k failam');
else
writeln('Neizvestniy kod oshibki');
end;
end;
{$I+}
write(' Vvedite kolichestvo zapisey');
readln(kol);
for i:=1 to kol do
begin
write(' Vvedite fio studenta: ');
readln(s.fio);
write(' Vvedite otsenku po matematike: ');
readln(s.ot.mat);
write(' Vvedite otsenku po informatike: ');
readln(s.ot.inf);
write(F1,s);
end;
close(F1);
End;
Procedure vivod;
Var s:stud;
i:byte;
Begin
clrscr;
assign(F1,f_name);
reset(F1);
for i:=1 to kol do
begin
read(F1,s);
write(' FIO studenta: ',s.fio);
write(' Otsenka po matematike: ',s.ot.mat);
write(' Otsenka po informatike: ',s.ot.inf);
writeln;
end;
close(F1);
End;
Procedure dobav;
Var kold,i:byte;
s:stud;
Begin
clrscr;
assign(F1,f_name);
reset(F1);
seek(F1,filesize(F1));
write(' Vvedite kolichestvo dobavlyaemih zapisey');
readln(kold);
for i:=1 to kold do
begin
write(' Vvedite fio studenta: ');
readln(s.fio);
write(' Vvedite otsenku po matematike: ');
readln(s.ot.mat);
write(' Vvedite otsenku po informatike: ');
readln(s.ot.inf);
write(F1,s);
end;
close(F1);
kol:=kol+kold;
End;
Begin
clrscr;
vvod;
vivod;
dobav;
vivod;
readln;
End.
