Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к экзамену 509и Программирование -янв.....doc
Скачиваний:
11
Добавлен:
15.04.2019
Размер:
133.63 Кб
Скачать

11.Текстовые файлы: строение, чтение данных из текстовых файлов.

Текстовые файлы – файлы на диске, состоящие из символов ASCII. Для разделения строк используются символы «конец строки».  Текстовые файлы являются файлами  с последовательным доступом. Текстовые файлы связываются с файловыми переменными, принадлежащими стандартному типу TEXT. Текстовые файлы предназначены для хранения текстовой информации. Именно в такого типа файлах хранятся, например, исходные тексты программ. Компоненты (записи) текстового файла могут иметь переменную длину, что существенно влияет на характер работы с ними. Текстовый файл трактуется в Турбо Паскале как совокупность строк переменной длины. Доступ к каждой строке возможен лишь последовательно, начиная с первой. При создании текстового файла в конце каждой записи (строки) ставится специальный признак EOLN (End OfLiNe - конец строки), а в конце всего файла - признак EOF (End Of File - конец файла). Эти признаки можно протестировать одноименными логическими функциями. При чтении данных из текстового файла с помощью процедур read readln происходит преобразование из строкового в нужный тип данных. Если преобразование не возможно, то генерируется код ошибки, значение которого можно узнать обратившись к функции IOresult. . Когда вводятся числовые значения 2 числа считаются разделенными если между ними есть хотя бы 1 пробел,символ табуляции или символ конца строки. При вводе строк начало текущей строки идет сразу за последним введенным до этого символом.вводится количество симолов равное объявленной длине строки.если при чтении встретился символ .конец строки. То работа с этой строкой заканчивается.сам символ конца строки является разделителем и в переменную никогда не считывается. Проц.readln считывает значения текущей строки файла,курсор переводится в новую строку, и дальнейший ввод осуществляется с нее.

12. Типизированные файлы: строение, создание и запись в типизированный файл.

Длина любого компонента типизированного файла строго постоянна, т.к. тип компонент определяется при описании, а, следовательно, определяется объем памяти, отводимый под каждую компоненту. Это дает возможность организовать прямой доступ к каждой компоненте (т.е. доступ по порядковому номеру). Типизированный файл определяется следующим образом-var filevar:file of тип. Где тип это или предопределенный или пользовательский типы. В качестве типов не могут фигурировать динамические структуры, такие как динамические массивы, длинные строки или любые указатели, поскольку все записи должны быть одинаковой длины и не должны указывать на внешние данные. Для обработки таких данных надо использовать нетипизированные файлы.Наряду с ранее указанными процедурами нам надо знать еще об одной, это процедура Seek, которая не применима для текстовых файлов, а для типизированных файлов используется для перемещения указателя на нужную запись.Для определения количества записей в файле можно использовать функцию FileSize, которая возвращает именно количество записей, а не длину файла, как это следует из ее названия.Для определения текущей позиции в файле можно использовать функцию FilePos.Для уменьшения длины файла можно использовать процедуру Truncate, которая обрезает файл по текущей позиции. Замечания по поводу открытия файлов, для этого используются две ранее описанные процедуры: ReWrite - создает новый файл для чтения/записи, если такой файл существует, то его длина устанавливается в ноль и Reset - открывает файл для чтения/записи и не изменяет его длины..Все записи считаются с нуля. К компонентам файла возможен как прямой, так и последовательный доступ.  Это файл с произвольным доступом. Информация в типизированном файле хранится в двоичном коде. Допустим, мы имеем дело с файлом, в котором записываются переменные типа Word, тогда переменная файлового типа может быть введена двояко: с явным объявлением файлового типа: Type WordFile = file of word; Var  MyFile : WordFile; или без объявления файлового типа: Var MyFile : file of word;