русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Файлы

Файл, с точки зрения программы на языке Паскаль, - это именованная структура данных, представляющая собой последовательность элементов одного типа. Количество элементов файла практически не ограничено.

Все файлы можно разделить на типизированные, нетипизированные и текстовые.

Пример описаний файлов, в котором определены размеры буферов файлов различного типа:

program files;

var f1:file of real; {В стандарте f1^ - переменная типа real - типизированный файл}

f2:file; {нетипизированный файл}

f3:text; {текстовой файл}

begin

writeln(sizeof(f1),sizeof(f2),sizeof(f3))

end.

Результат: 128 128 256

Работа с файлами обеспечивается набором процедур и функций, обслуживающих файлы.

Описатель для типизированного файла выглядит так:

<имя>: file of <базовый тип>;

<имя> - файловая переменная. В стандарте файловая переменная является указателем на буфер файла. В ТР, как видно из примера, это не так.

<базовый тип> - любой, кроме файлового и записи, содержащей файловый тип.

Объявление файловой переменной задает только тип компонентов файла. Чтобы программа могла выводить данные в файл или читать данные из файла, необходимо указать конкретный файл файловой системы, т. е. задать имя файла. Имя файла задается вызовом процедуры ASSIGN, связывающей файловую переменную с конкретным файлом.

assign (var f:text; <ИмяФайла>:string);

Имя файла задается согласно принятым в MS-DOS правилам. Оно может быть полным, т. е. состоять не только непосредственно из имени файла, но и включать путь к файлу. Существуют определенные договоренности при записи имени файла, например:

assign ( f, 'a:\result.txt');{Полное имя файла}assign (f,'\students\ivanov\korni.txt'); {Указан путь относительно текущей директории}

Имя файла может быть задано строкой:

fname:='otchet.txt';assign(f,fname);

8.3 Процедуры открытия и закрытия файлов:

RESET(F) - открытие существующего файла F на чтение (файловая переменная F связана с существующим файлом MS DOS процедурой ASSIGN). В стандартном Паскале при открытии файла на чтение в динамической памяти создается буфер файла, в который помещается первая запись файла. Для нетипизированных файлов размер записи может быть указан вторым параметром. В ТР буфером является сама файловая переменная, размер буфера в примере пункта 8.2. Если открываемый на чтение файл не существует в файловой системе, возникает ошибка этапа выполнения программы.

REWRITE(F) – создает и открывает на запись новый файл. Если файловая переменная F связана с существующим файлом, то данные этого файла уничтожаются. В стандартном Паскале при открытии файла на запись в динамической памяти создается буфер файла для промежуточного хранения записей. Для нетипизированных файлов размеры записей могут задаваться вторым параметром. В ТР буфером является сама файловая переменная, размер буфера в примере пункта 8.2.

CLOSE(F) - закрытие файла F. При закрытии файла записи содержимое буфера выталкивается в файл. В стандарте Паскаля процедура закрытия файла разрывает связь файловой переменной (указателя) с буфером и уничтожает буфер в динамической памяти.

8.4 Процедуры ввода/вывода:

WRITE(F, E) - запись значения выражения E базового типа в файл; (не применима к нетипизированным файлам)

READ(F, V) - чтение из файла записи в переменную; (не применима к нетипизированным файлам)

BLOCKREAD; BLOCKWRITE - только для нетипизированных файлов.

SEEK(F, n) - делает доступной для обработки запись n файла F (эта процедура не применима к текстовым файлам);

EOF(F) - функция, возвращает TRUE, если достигнут конец файла F.

При работе с файлами в TP очень полезна функция IORESULT, которая возвращает значение кода ошибки выполнения последней операции ввода/вывода. Следующий фрагмент является шаблоном для открытия файла на чтение. Он позволяет избежать прерывания программы при попытке открытия на чтение не существующего файла

repeat

writeln('введите имя файла'); readln(s);

assign(f,s);

{$I-} {отключение режима прерывания выполнения программы при возникновении ошибки в/в}

reset(f);

{$I+} {включение режима прерывания выполнения программы при возникновении ошибки в/в}

i:=IORESULT;

if i<>0 then begin

writeln('Ошибка',i:3);

writeln('Попробуйте еще');

end;

until i = 0;

Здесь i – переменная типа integer, s – строка. {$I-} – псевдокомментарий – директива компилятору при выполнении дальнейших действий снять контроль проверки правильности выполнения операции ввода/вывода. Если открытие файла F прошло успешно, то IORESULT возвращает значение 0, в противном случае IORESULT возвращает код ошибки, отличный от нуля.

Просмотров: 430


Вернуться в оглавление



Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.