Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011_12 Комп.Науки_2сем.doc
Скачиваний:
4
Добавлен:
13.09.2019
Размер:
476.67 Кб
Скачать

17.7.5.Сравнение текстовых и типизированных файлов

Текстовые файлы

Типизированные файлы

1. Подготовка файла для записи в конец файла

Append(F)

//Открыть файл на дописывание

Seek(F,FileSize(F))

//Установить файловый указатель на конец файла

2. Выдача последних k строк (компонентов)

var F:text; name,s:string;

i,k,n: integer;

begin

write('Имя файла:'); readln(name);

Assign(F, name);

Reset(F);

write(’Сколько строк выдать?');

readln(k);

n:=0; //Подсчет числа n строк в файле

while not Eof(F) do

begin readln(F, s); n:=n+1 end;

Reset(F);

if (n>k) then //Если строк больше, чем запрошено

for i:=1 to n-k do //то проброс n-k строк

readln(F, s); //из начала файла

while not Eof(F) do //Вывод строк на экран

begin readln(F, s);

writeln(s)

end;

Close(F)

end.

var F:file of integer; name:string;

x,k,n: integer;

begin

write('Имя файла:'); readln(name);

Assign(F, name);

Reset(F);

write('Сколько чисел выдать?');

readln(k);

n:=FileSize(F); //Определение числа компонентов

if (n>k) then //Если чисел больше, чем запрошено

Seek (F,n-k); //то установка файлового указателя

//на k-е число от конца

while not Eof(F) do //Вывод чисел на экран

begin read(F,x);

write(x, ’ ’)

end;

Close(F)

end.

3. Замена строки (компонента) с заданным номером

Открываем новый временный файл Ft с именем, полученным добавлением символов ’tmp’ к имени исходного файла.

Копируем строки из файла F в файл Ft, считая строки. Если номер строки равен k, вместо строки исходного файла пишем новую строку.

Оба файла закрываем, исходный файл удаляем, а временный файл переименовываем в исходный.

var F,Ft:text; name,s,snew:string;

i,k: integer;

begin

write(’Имя файла:’); readln(name);

Assign(F, name);

Reset(F);

write(’Какую строку заменить?’);

readln(k); //Номер заменяемой строки

write(’Новая строка:’);

readln(snew);

Assign(Ft, ’tmp’+name);

Rewrite(Ft);

i:=0; //Счетчик строк

while not Eof(F) do

begin

readln(F,s); i:=i+1;

if i=k tnen writeln(Ft,snew)

else writeln(Ft,s)

end;

Close(F); Close(Ft);

Erase(F); Rename(F,name)

End.

var F:file of integer; name:string;

k,xnew: integer;

begin

write(’Имя файла:’); readln(name);

Assign(F, name);

Reset(F);

write(’Число с каким номером заменить?’);

readln(k); //Номер числа

write(’Новое число:’);

readln(xnew);

Seek(F,k);

Write(F,xnew);

Close(F)

End.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]