|
Тектсовые файлы.
-Информация представлена в текстовом представлении (ASCH-кодах).
-Порции информации разделены на строки,каждая строка заканчивается совокупностью символов #13#10.Строки могут быть разной длины,могут быть пустыми.
-Весь файл заканчивается символом ^Z(#26)конец файла.
-при записи чисел,.строк и булевских величин они переводятся в символьный вид.
-при считывании числа автоматически переводятся в машинное представление.
В памяти:
_________#13#10___________#13#10____#13#10#26
Набор с клавиатуры:
_______________,|
____________,|
____________,|
*Z
Процедуры и функции для обработки файлов.
1.Assign(F,NameF);-Связывает логический файл F с именем физческого файла NameF.Если файл находится не в текущем каталоге,то надо указывать полное имя файла.
Где NameF –строковая константа или строковая переменная.
Var F:Text;
NameF:string[30];
Begin
Writeln(‘Ведите имя файла’);
Readln(NameF);
Assign(F,Namef);
2.Close(F);-закрытие файла.
3.Eof(F)= True,если конец файла,false,иначе.
4.ЫуулУща(F)=True,если конец файла виден через символы табуляции,пробелы,конец строки,false,иначе.
5.Eoln(F)=true,если конец строки,false,иначе.
6.Seek Eoin(F)-true,если конец строки или через символы табуляции,пробелы,false,иначе.
4 и 6 –функции для работы с числовыми текстовыми файлами.
ПАросмотр файла.
Пусть файл создан и надо считать его компоненты.
Reset(F)-открывает файл на считывание,указатель устанавливает на
Первый компонент.Один файл можно открывать несколько разю.
Read(F,c1,c2,…cn);- c1,c2,…cn-числа,строки,литеры.Считывает и указатель файла остается в текущей строке.
Readln(F);-переводит указатель на начало новой строки с любого места текущей.
Readln(F,c1,c2,…,cn);-объединяет действия двух ердыдущих процедур.
Схема просмотра файла.
Var F:Text;
NameF:string[30];
Begin
Writeln(‘введите имя файла’);
Readln(NameF);
Assign(F,NameF);
Reset(F);
While not Eof (F) do
Begin
<считать строку>**
<обработать>
End;
**1)Readln(F,s);string;{считывание всей строки}
2)Readln(F,s1,s2…);{считывание строки по частям}
3)While not Eoln(F) do
Begin
Fead(c);
<обработка>
Nd;
Readln(F);
ПРИМЕР.Пусть в текстовом файле записана матрица A(N,M).Считать матрицу из файла.
Reset(F);
For i:=1 to M do {считывание строки}
ReadF,A[I,j];
Readln(F);{переход на следующую строку}
End.
Форматирование текстового файла в программе.
Данные,полученные на этапе счета программы,следует оформить в виде текстового файла.
REWRITE(F);{открывает файл на запись}
Если он сушществовал,то уничтожает в нем информацию.
Если он не существовал,то создается.
WRITE(F,v1,v2…vn);-запись в файл.Где v1,v2…vn-константы,перерменные или выражения следующих типов:числовой,литерный,булевский,строковый.
WRITELN(F);-ПОСЛЕ ЗАПИСИ V1,V2…VN ПРИФОРМИРОВЫВАЕТСЯ КОНЕЦ СТРОКИ.
WRITELN
(F,v1,v2…vn);-объединение двух предыдущих.
Вывод в файл может быть форматным..
Допполнитекльные процедуры для обработки текстового файла.
APPEND(F);-открытие файла на дозапись информации в конец файла.Файл должен существовать.
FLUSH(F);=принудительная запись содержимого буфера в файл.
Корректировка текстового файла в программе.
Если корректирующее действие не затрагивает включение информации в конец файла,то надо создавать вспомогательный текстовый файл.В него записывается измененная информация,старый файл уничтожается,а новый переименовывается.
ERASE(F)-стирает физическй файл,связвнный с файловой перемнной F.
REANAME(F,<НОВ. ИМЯ>)-физический файл связанный с файловой переменной F поучает <нов.имя>.Где <нов имя > строковая переменная или константа
Обе процедуры работают для закрытых файлов.
Нетипизированные файлы.
Ввод-вывод
Procedure blockread (var <ф.п>:file;_);чтение | для нетипизированного файла
Procedureblockwrite (var <ф.п>:file;_);запись |
Операйии над нетипизированными файлами.
Зпись,блок,буфер
Нетипизированный файл для программы –всего лишь последовательность байтов.
Запись-минимальная единица,которую можно считать или записать в файл.Для программы это последовательность байтов заданной длины.
Длина записи определяется программистом исходя из того,какую группу данных он хотел б считывать или записывать за одно обращение к внешнему устройству(одно целое число,массив чисел,массив строк,запись,record и т.д).Для оптимизации временных характеристик программы лучше брать длину записи кратной 512(длина кластера).
Указывается длина записи при открытии файла.
Блок-сосокупность заданного числа записей,считываемых или аписываемых за 1 обращение к диску.Таким образом,блок может состоять из одной или более записей.Число записей в блоке задается в процедурах ввода-вывода.
Буфер-переменная участвующая в обмене с диском.Знаечние именно этой переменной считывается или записывается в файл.т.е ее содержимое –это упомянутый блок записей.Имя этой переменной указвается в процедурах ввода-вывода.
Дата добавления: 2015-08-29; просмотров: 27 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
№1 Предмет теории вероятностей. Наблюдаемые нами события (явления) можно подразделить на следую-щие три вида: достоверные, невозможные и случайные. Достоверным называют событие, которое обязательно | | | Фотоинструкция по использования промо-кода peterburgru на сайте проката гидроциклов от компании «Мистер Гидрика»: |