Занятие 4. Процедуры и функции работы с файлами. Решение задач
Изменение имени файла производится процедурой
rename(МуFilе, FileName);
первый аргумент которой – переменная файлового типа, а второй аргумент – строкового типа – новое имя файла, которое может быть сокращенным или полным (с указанием пути). Действие этой процедуры эквивалентно действию аналогичной процедуры DOS.
Уничтожение части файла от текущего положения до конца производится процедурой
truncate(МуFilе).
Уничтожение всего файла производится процедурой
erase(МуFilе),
действие которой эквивалентно удалению файла в операционной системе DOS.
Примечание. Физические файлы на магнитных дисках и переменные файлового типа в программе на Паскале – объекты различные. Переменные файлового типа в Паскале соответствуют не только физическим файлам, но и логическим устройствам, связанным с вводом и выводом информации. Клавиатуре и экрану дисплея соответствуют файлы со стандартными именами Input и Output.
Задание. Рассмотрите предложенный ниже текст программы. Сформулируйте решенную задачу. Создайте расширенный вариант подобной задачи. результат покажите учителю для оценки.
Program Files;
Uses
Crt;
Var
F,Fnew : file of string;
Name,NewName : string[12];
Text : string;
Ch : char;
Procedure ReadText;
Begin
repeat
write('Введите имя файла>');
readln(Name);
assign(F,Name);
reset(F);
if IOresult<>0
then
begin
writeln('Ошибка чтения');
close(F);
end;
until IOresult=0;
writeln('Содержание файла ',Name,':');
while not Eof(F) do
begin
readln(F,Tеxt);
writeln(Tеxt);
end;
close(F);
End;
Procedure EraseFile;
Begin
erase(F);
writeln('Файл удален');
End;
Procedure ReNameFile;
Begin
write('Введите новое имя файла:');
readln(NewName);
rename(F,NewName);
writeln('Файл ',Name,' переименован в файл ',NewName);
End;
Procedure CopyFile;
Begin
write('Введите имя копии файла ',Name,'>');
readln(NewName);
reset(F);
assign(Fnew,NewName);
rewrite(Fnew);
while not Eof(f) do
begin
readln(F,Text);
writeln(Fnew,Text);
end;
close(F);
close(F_new);
writeln('Файл',Name,' скопирован в файл ',NewName);
End;
Begin
ClrScr;
readTеxt;
repeat
writeln('Удаление файла (D),переименование файла(R)');
writeln('Копирование файла (C), выход из программы (Е)');
write('Введите символ нужной операции - ');
readln(ch);
case ch of
'D','d': EraseFile;
'R','r': ReNameFile;
'C','c': CopyFile;
end;
until (ch='E') or (ch='e');
read;
End.
Дата добавления: 2015-05-16; просмотров: 669;