Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Файлы

Автор: Шорох Анастасия 17.05.2013 10:07

Описать функцию getInt(Name,k) целого типа , возвращающую k-й эле-мент файла целых чисел с именем Name ( элементы нумеруются от 0). Если файл не существует или не содержит k-го элемента , то функция возвращает 0. С помощью этой функции вывести пять элементов данного файла с указанны-ми номерами.
буду благодарна!

Автор: APAL 21.05.2013 16:01

Вся задача сводится к работе со стандартной процедурой:

Seek (процедура)


Перемещает текущий указатель позиции файла на
определенный компонент.

Объявление:
Procedure Seek(Var F; N : Longint);

Режим:
Windows, Real, Protected

Замечания:
F - переменная любого файлового типа за
исключением текстового, и N - выражение типа
Longint. Указатель позиции файла F
перемещается на номер компонента N. Номер
первого компонента файла равен нулю. Чтобы
расширить файл, вы можете передвинуть
указатель на один компонент за последний
компонент в файле. То есть, оператор Seek(F,
FileSize(F)) перемещает текущий указатель
позиции файла на конец файла.


Ограничения:
Не может быть использована на текстовых
файлах. Файл должен быть открыт.


{FilePos.PAS}

{ Пример программы для функций FilePos и FileSize и процедуры Seek }

Uses WinCrt;

Var F : File Of Byte;
Size : LongInt;

Begin
{ Get File name from command line }
Assign(F, ParamStr(1));
Reset(F);
Size:=FileSize(F);
WriteLn('Размер файла : ', Size, ' байт.');
WriteLn('Установка указателя позиции на середину файла...');
Seek(F, Size Div 2);
WriteLn('Текущая позиция : ', FilePos(F));
Close(f);
End.