Большая техническая энциклопедия
2 3 8 9
U
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
ТА ТВ ТЕ ТИ ТО ТР ТУ ТЩ ТЫ ТЯ

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

 
Текущая позиция файла указывает на конец последней записанной или прочитанной строки. Так как длины строк текстового файла заранее неизвестны, определить местонахождение нужной строки можно только последовательным перебором.
True, если текущая позиция файла указывает на конец строки или на конец файла.
Функция FilePos - возвращает текущую позицию файла в записях.
Функция fsetpos устанавливает значение индикатора текущей позиции файла в потоке, на который указывает stream, в соответствии со значением объекта, на который ссылается параметр pos и которое должно быть получено в результате предшествующего вызова функции fgetpos для того же потока. Успешный вызов функции fsetpos очищает индикатор конца файла для потока и отменяет результаты вызова функции ungetc для того же потока.
Запись методом Write проводится в текущую позицию файла, и после записи позиция сдвигается на число записанных байтов. Благодаря этому в приведенном примере каждый вызов в цикле метода Write заносит очередное число на новое место в файле.
После каждой операции чтения или записи текущая позиция файла изменяется, указывая на конец последней считанной или записанной компоненты файла.
Запись и чтение происходят, начиная с текущей позиции файла. После записи или чтения эта текущая позиция сдвигается на число переданных байтов. Имеется функция FileSeek, которая осуществляет сдвиг текущей позиции. Благодаря этому появляется возможность записывать информацию в любую позицию файла и читать ее тоже из любой позиции.
Действие процедуры READLN ( F) заключается в перемещении текущей позиции файла F в позицию непосредственно после маркера конца текущей строки текстового файла F. Если эта позиция не является позицией конца файла, то, следовательно, текущая позиция устанавливается на начало следующей строки.
Обычно доступ к файлам организуется последовательно, т.е., когда некоторая запись считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующей по порядку записи файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла к записи с заданным порядковым номером.
После того, как поток TFileStream создан, его свойства Handle, Position и Size дают доступ соответственно к дескриптору потока ( свойство только для чтения), к текущей позиции файла и его размеру.
Функция fputc записывает символ, определенный параметром с и преобразуемый к типу unsigned char, в поток вывода, указанный stream, в позицию, указанную соответствующим индикатором связанного с потоком файла ( если этот индикатор определен), и изменяет значение индикатора текущей позиции файла. Если файл не поддерживает возможности позиционирования или если поток был открыт в режиме добавления, символы добавляются в конец потока вывода. Функция fputc возвращает выведенный символ.
Примечания: Параметр f является файловой переменной, соответствующей любому типу файла, кроме текстового, а каждый элемент v представляет собой переменную того же типа, что и элемент файла Г При каждом считывании в переменную текущая позиция в файле продвигается к следующему элементу. Попытка считывания следующего элемента файла в тот момент, когда текущая позиция файла находится в конце файла ( то есть когда Eof ( f) имеет значение Тше является ошибкой.
Обычно доступ к файлам организуется последовательно, т.е., когда некоторая запись считывается с помощью стандартной процедуры Read или записывается с помощью стандартной процедуры Write, текущая позиция файла перемещается к следующей по порядку записи файла. Однако к типизированным и нетипизированным файлам можно организовать прямой доступ с помощью стандартной процедуры Seek, которая перемещает текущую позицию файла к записи с заданным порядковым номером.
Зная все это, мы теперь можем рассмотреть, как происходит процесс ввода-вывода. Open заставляет систему искать директории по определенному пути. Если поиск успешен, то индексный дескриптор считывается во внутреннюю таблицу. Вызовы read и write требуют, чтобы система вычислила номер блока из текущей позиции файла. Адреса первых 10 блоков диска всегда находятся в основной памяти ( в индексном дескрипторе); для остальных блоков сначала требуется считать один или несколько блоков косвенной адресации. Lseek просто меняет текущую позицию указателя и не производит никакого ввода-вывода.
 
Loading
на заглавную 10 самыхСловариО сайтеОбратная связь к началу страницы

© 2008 - 2014
словарь online
словарь
одноклассники
XHTML | CSS
Лицензиар ngpedia.ru
1.8.11