Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Работа с файлами в Object Pascal осуществляется через файловые переменные.




Лабораторная работа № 14

Обработка файлов

Теоретические пояснения

С точки зрения Object Pascal существуют три категории файлов: текстовые, типизированные и файлы без типа.

Мы будем рассматривать только текстовые файлы.

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

Признак конца строки (код #13) вставляется клавишей Enter при вводе строк с клавиатуры или оператором WriteLn при записи данных из программы.

Признаком конца файла является символ #26, на экране может отображаться как ^Z.

Текстовые файлы можно обрабатывать только последовательно. Ввод и вывод нельзя осуществлять одновременно для одного и того же файла.

Работа с файлами в Object Pascal осуществляется через файловые переменные.

Такие переменные для текстовых файлов объявляются следующим образом:

Var <идентификатор файловой переменной>: TextFile;

Например,

Var F1,F2: TextFile

означает, что мы можем работать одновременно с двумя текстовыми файлами, обращаясь к ним по именам F1 и F2, которые и являются файловыми переменными.

Существуют стандартные процедуры для работы с текстовыми файлами через файловые переменные:

AssignFile (<идентификатор файловой переменной>, '<имя файла>') – связывает файловую переменную с именем файла на диске. В качестве имен файлов можно использовать стандартные имена:

- Con – консоль, т.е. клавиатура и дисплей;

- Prn – принтер;

- Nul – "пустой" файл. При чтении из Nul сразу же обнаруживается конец файла, а при записи ничего не происходит.

Append (<идентификатор файловой переменной>) – открывает существующий файл для последовательной записи (добавления) данных в конец файла. Если файл был открыт, то сначала он закрывается, а затем заново открывается.

Rewrite (<идентификатор файловой переменной>) – создаёт и открывает файл для записи данных. Если файл с указанным именем уже существует на диске, то он удаляется и создается новый.

Reset (<идентификатор файловой переменной>) – открывает существующий файл только для чтения. Если файл был открыт, то сначала он закроется, а затем заново откроется.

Read (<идентификатор файловой переменной>, <список переменных>) – читает информацию из файла в переменные, указанные в списке. Процедура чтения зависит от типа переменной, стоящей в списке.

- Если очередная переменная – символьного типа, то в нее помещается один следующий символ из файла (включая EOLn, EOF).

- Если очередная переменная – арифметического типа, то далее считывается арифметические символы до появления пробелов, табуляции, EOLn или EOF.

- При чтении данных в строковую переменную передаются все символы до появления маркеров EOLn или EOF, маркер в строку не заносится.

После последнего прочитанного символа запоминается текущая позиция в файле. Новый оператор Read будет читать не с начала файла, а с текущей позиции.

ReadLn (<идентификатор файловой переменной>, <список переменных>) – отличается от Read тем, что после чтения указанных переменных пропускаются все символы до конца строки и осуществляется переход к новой строке, начало которой становится текущей позицией.

ReadLn (<идентификатор файловой переменной>) без списка переменных вызывает продвижение текущей позиции в файле к началу следующей строки.

Write (<идентификатор файловой переменной>,<список переменных и выражений>) – записывает информацию в конец файла из указанных в списке переменных. Для символьных, арифметических, строковых и логических переменных выводятся их значения в соответствие с заданным форматом.

WriteLn (<идентификатор файловой переменной>, <список переменных и выражений>) – отличается от Write тем, что после вывода всех переменных в файл записывает маркер конца строки – EOLn.

CloseFile (<идентификатор файловой переменной>) – закрывает файл и, если он был открыт для записи, – освобождает связанный с ним буфер.

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

Пример

Пусть файл example.txt содержит текст:

Пример:

2 + 3.5Е01 равно:

Необходимо прочитать арифметические данные из второй строки, операцию между ними, вычислить результат и дописать его в третью строку.

Соответствующая часть программы будет иметь вид:

Var

N1,N2,res: Double; {для чтения данных}

StrSgn: String [3]; { для строки с операцией}

F: TextFile; {файловая переменная}

Begin

AssignFile(F,'example.txt'); {Связать переменную F с файлом example.txt}

Reset(F); {Открыть файл example.txt для чтения}

ReadLn(F); {Пропустить слово "пример"}

Read(F,N1,StrSgn,N2); {Прочитать данные и строку операции}

Append(F); {Закрыть и открыть файл для добавления}

WriteLn(F); {Перейти на новую (третью) строку}

Case Sgn[2] of {Взять операцию – второй символ в строке}

’+’: res:= N1+N2;

’-’: res:= N1-N2;

’*’: res:= N1*N2;

’/’: res:= N1/N2;

end;

Write(F, FormatFloat('#.###E+00', res));

CloseFile(F);

end;

После работы данного блока программы содержимое файла example.txt примет вид:

Пpимеp:

2+3.5E01 равно:

3.7E+01





Поделиться с друзьями:


Дата добавления: 2016-11-23; Мы поможем в написании ваших работ!; просмотров: 777 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2460 - | 2139 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.