Текущая позиция - файл - Большая Энциклопедия Нефти и Газа, статья, страница 1
Мы не левые и не правые, потому что мы валенки Законы Мерфи (еще...)

Текущая позиция - файл

Cтраница 1


Текущая позиция файла указывает на конец последней записанной или прочитанной строки. Так как длины строк текстового файла заранее неизвестны, определить местонахождение нужной строки можно только последовательным перебором.  [1]

True, если текущая позиция файла указывает на конец строки или на конец файла.  [2]

Функция FilePos - возвращает текущую позицию файла в записях.  [3]

Функция fsetpos устанавливает значение индикатора текущей позиции файла в потоке, на который указывает stream, в соответствии со значением объекта, на который ссылается параметр pos и которое должно быть получено в результате предшествующего вызова функции fgetpos для того же потока. Успешный вызов функции fsetpos очищает индикатор конца файла для потока и отменяет результаты вызова функции ungetc для того же потока.  [4]

Запись методом Write проводится в текущую позицию файла, и после записи позиция сдвигается на число записанных байтов. Благодаря этому в приведенном примере каждый вызов в цикле метода Write заносит очередное число на новое место в файле.  [5]

После каждой операции чтения или записи текущая позиция файла изменяется, указывая на конец последней считанной или записанной компоненты файла.  [6]

Запись и чтение происходят, начиная с текущей позиции файла. После записи или чтения эта текущая позиция сдвигается на число переданных байтов. Имеется функция FileSeek, которая осуществляет сдвиг текущей позиции. Благодаря этому появляется возможность записывать информацию в любую позицию файла и читать ее тоже из любой позиции.  [7]

Действие процедуры READLN ( F) заключается в перемещении текущей позиции файла F в позицию непосредственно после маркера конца текущей строки текстового файла F. Если эта позиция не является позицией конца файла, то, следовательно, текущая позиция устанавливается на начало следующей строки.  [8]

Обычно доступ к файлам организуется последовательно, т.е., когда некоторая запись считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующей по порядку записи файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла к записи с заданным порядковым номером.  [9]

После того, как поток TFileStream создан, его свойства Handle, Position и Size дают доступ соответственно к дескриптору потока ( свойство только для чтения), к текущей позиции файла и его размеру.  [10]

Функция fputc записывает символ, определенный параметром с и преобразуемый к типу unsigned char, в поток вывода, указанный stream, в позицию, указанную соответствующим индикатором связанного с потоком файла ( если этот индикатор определен), и изменяет значение индикатора текущей позиции файла. Если файл не поддерживает возможности позиционирования или если поток был открыт в режиме добавления, символы добавляются в конец потока вывода. Функция fputc возвращает выведенный символ.  [11]

Примечания: Параметр f является файловой переменной, соответствующей любому типу файла, кроме текстового, а каждый элемент v представляет собой переменную того же типа, что и элемент файла Г При каждом считывании в переменную текущая позиция в файле продвигается к следующему элементу. Попытка считывания следующего элемента файла в тот момент, когда текущая позиция файла находится в конце файла ( то есть когда Eof ( f) имеет значение Тше является ошибкой.  [12]

Обычно доступ к файлам организуется последовательно, т.е., когда некоторая запись считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующей по порядку записи файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла к записи с заданным порядковым номером.  [13]

Зная все это, мы теперь можем рассмотреть, как происходит процесс ввода-вывода. Open заставляет систему искать директории по определенному пути. Если поиск успешен, то индексный дескриптор считывается во внутреннюю таблицу. Вызовы read и write требуют, чтобы система вычислила номер блока из текущей позиции файла. Адреса первых 10 блоков диска всегда находятся в основной памяти ( в индексном дескрипторе); для остальных блоков сначала требуется считать один или несколько блоков косвенной адресации. Lseek просто меняет текущую позицию указателя и не производит никакого ввода-вывода.  [14]



Страницы:      1