Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Особенности обработки текстовых файлов. Понятие файлового указателя. Чтение и запись в текстовые файлыОсобое место в языке ПАСКАЛЬ занимают текстовые файлы, компоненты которых имеют символьный тип. Для описания текстовых файлов в языке определен стандартный тип Тext:
var TF1, TF2: Text;
Текстовые файлы представляют собой последовательность строк, а строки - последовательность символов. Строки имеют переменную длину, каждая строка завершается признаком конца строки. С признаком конца строки связана функция EOLn(var T:Text):Boolean, где Т - имя текстового файла. Эта функция принимает значение TRUE, если достигнут конец строки, и значение FALSE, если конец строки не достигнут. Работа с этими файлами имеет особенности: -имена этих файлов в списках ввода - вывода не указываются; -применение процедур Reset, Rewrite и Close к стандартным файлам ввода - вывода запрещено; -для работы с файлами INPUT, OUTPUT введена разновидность функции EOLn без параметров. TURBO PASCAL вводит дополнительные процедуры и функции, применимые только к текстовым файлам, это SetTextBuf, Append, Flush, SeekEOLn, SeekEOF. Процедура SetTextBuf(var f: Text; var Buf; BufSize: Word) служит для увеличения или уменьшения буфера ввода - вывода текстового файла f. Значение размера буфера для текстовых файлов по умолчанию равно 128 байтам. Увеличение размера буфера сокращает количество обращений к диску. Рекомендуется изменять разиер буфера до открытия файла. Бу- фер файла начнется с первого байта переменной Buf. Размер буфера за- дается в необязательном параметре BufSize, а если этот параметр от- сутствует, размер буфера определяется длиной переменной Buf. Процедура Append(var f: Text) служит для специального открытия выходных файлов. Она применима к уже существующим физическим файлам и открывает из для дозаписи в конец файла. Процедура Flush(var f: Text) применяется к открытым выходным файлам. Она принудительно записывает данные из буфера в файл незави- симо от степени его заполнения. Функция SeekEOLn(var f: Text): Boolean возвращает значение True, если до конца строки остались только пробелы. Функция SeekEOF(var f: Text): Boolean возвращает значение True, если до конца файла остались строки, заполненные пробелами.
Файловый указатель – это переменная, которая содержит адрес другой переменной (байта памяти). В ТР имеется два вида указателей: указатель на объект некоторого типа (типизированный) и указатель, не связанный с типом. Описание указателей. Для объявления типизированных указателей используется значок ^, который помещается перед соответствующим типом: Type T = ^T1; Var A:T; где: T – имя типа; T 1 - базовый тип (любой в т.ч. указатель); ^ - указатель. Примеры: Var a:byte; {выделение памяти для переменной где хранится ее значение} a;^byte; {выделение памяти для переменной где хранится ее адрес} Var p1:^integer; p2, p3:^real; Для объявления переменных не связывая их, с каким либо типом данных можно использовать указатель без типа (pointer). Var p:pointer; где: pointer - не типизированный указатель, который занимает в памяти 4 байт (2-байта сегмент, 2байта смещение.). Описание файловой переменной Var <перем.>:File of Text;
Назначение имени файлов Assign (<файловая перем.>, <имя файла>:); Открытие файла на чтение Reset (<файловая перем.>); на запись Rewrite (<файловая перем.>); на добавление Append (<файловая перем.>); Операция с открытым файлом: запись в файл Write(<файловая перем.>, <параметр 1>..(<параметр n>); WriteLn(<файловая перем.>, <параметр 1>..(<параметр n>); чтение Read(<файловая перем.>, <параметр 1>..(<параметр n>); проверка окончания файла EOF (<файловая перем.>); Закрытие файла Close(<файловая перем.>);
|