Perl - специальный справочник


           

Perl. Специальный справочник - стр. 174


В качестве текущей позиции дескриптора файла устанавливается заданная пользователем позиция. Параметр позиция задается в байтах, а параметр как-считать указывает, как его интерпретировать. Возможные значения:

0 — установить текущую позицию в значение позиция (отсчитываемое от начала файла)

1 — сдвинуть текущую позицию на указанное количество байтов (с начала или с конца файла в зависимости от знака позиции)

2 — установить текущую позицию в значение позиция, отсчитываемое от конца файла (значение параметра позиция должно быть отрицательным или нулевым)

Обратите внимание, что параметр как-считать обязателен.

Рассмотрим пример. Файл file.txt содержит текст:

This is the text.

С помощью следующей команды текущая позиция устанавливается на начало слова «text», а затем, начиная с этой позиции, выполняется операция чтения:

open (FILEHANDLE, "<file.txt")

or die ("Cannot open file file.txt");

seek FILEHANDLE, 12, 0;

while (<FILEHANDLE>) {

print;

}

close (FILEHANDLE);

text.

Функция seek часто используется с файлами, разбитыми на записи фиксированного размера. С ее помощью легко получить доступ к любой записи в файле (такой доступ называется прямым (random), в отличие от последовательного (sequential access), который требует считывать все промежуточные записи, прежде чем вы доберетесь до нужного места). Чтобы обслуживать записи постоянной длины (так как переменные Perl — обычно объекты переменной длины), можно использовать функции Perl pack, unpack, vec и ряд других.

tell — текущая позиция в файле

Функция tell возвращает значение текущей позиции в файле, отсчитываемое в байтах от начала файла:

tell дескриптор

tell

Если параметр дескриптор опущен, tell использует последний прочитанный файл. В следующем примере с помощью функции seek устанавливается позиция в файле, а затем tell сообщает ее значение:

open (FILEHANDLE, "<file.txt")

or die ("Cannot open file file.txt");

seek FILEHANDLE, 12, 0;

print tell FILEHANDLE;




Содержание  Назад  Вперед