Автор: Пользователь скрыл имя, 07 Марта 2013 в 02:12, курс лекций
Лекция 1. Представление алгоритмов на языке Программирования ПаскальАВС.
Лекция 2. Построение линейных алгоритмов
Лекция 3. Алгоритмы, содержащие структуру ветвления.
Лекция 4. Алгоритмы, содержащие структурные операторы циклов.
...
Лекция 9. Файловый тип данных
f:mas;
{Имя файлового типа mas,который состоит из записей типа sesia, имя файловой переменной f. Пункт 1}
I,n,m:Integer;
Z:sesia; {простые переменные}
Begin
{создадим файл данных}
Assign(f,’c:\Other\masc.dat’); { Пункт 2}
Rewrite(f); { Пункт 3}
Writeln(‘Ввести количество студентов’);
Readln(n);
For i:=1 to n do
Begin
Writeln(‘Ввести фамилию ’,I,’ студента’);
Readln(z.fio);
Writeln(‘Ввести оценку по математике ’,I,’ студента’);
Readln(z.matem);
Writeln(‘Ввести оценку по информатике ’,I,’ студента’);
Readln(z.infor);
Writeln(‘Ввести оценку по философии ’,I,’ студента’);
Readln(z.filos);
Write(f,z); {Записали всю запись в файл f}
End;
Close(f);
{Используем данные из файла и выведем то, что требуется по условию задачи}
Assign(f,’c:\Other\masc.dat’); { Пункт 2}
Reset(f); { Пункт 3}
{Пока не конец файла будем читать из файла запись, проверять сдал ли студент все экзамены и если нужно выводить сообщения о нем на экран}
While not(eof(f)) do {пока не конец файла f}
Begin
Read(f,z); {читаем запись из файла и отправляем ее в переменную z}
If (z.matem<4) or (z.infor<4) or (z.filos,4)
Then Writeln(z.fio:15, z.matem:5, z.infor:5, z.filos:5);
End;
Close(f);
Readln;
End.
8.Понятие текстового файла данных.
Файл данных, который состоит из символьных строк, является текстовым файлом. Строки в файле могут быть разной длины. Поэтому в текстовом файле в конце каждой строки помещается специальный символ – конец строки. Для обозначения конца строки имеется специальная функция
EOLN(имя файловой переменной) |
Это, как правило, пара символов CR (перевод строки – код 13) и LF (возврат каретки – код 10).
Весь текстовый файл, как и любой другой, заканчивается маркером CTRL+Z, который определяет функция
EOF(имя файловой переменной) |
Поскольку строки могут быть разной длины, текстовые файлы могут обрабатываться только последовательно.
9.Объявление типа текстового файла.
Текстовые файлы можно объявить двумя способами:
1 способ
Type TEXT = FILE OF CHAR;
Var имя файловой переменной : TEXT;
Поскольку ТЕХТ – это стандартный идентификатор, такой же как Integer и другие, то описание файловой переменной текстового типа будет иметь следующий вид:
2 способ
Var имя файловой переменной : Text;
10.Создание текстового файла данных.
Все пункты создания текстового файла совпадают с пунктами создания типизированного файла. Отличием является пункт 4, где данные записываются в файл. Вместо процедуры Write используется процедура Writeln, так как окончание Ln говорит о начале новой строки.
Чтобы создать текстовый файл данных необходимо выполнить следующие действия:
1. Объявить файловый тип с помощью следующих строк:
Var имя файловой переменной : Text;
2. Установить связь между файловой переменной в программе и файлом данных на диске. Это делает процедура
Assign (имя файловой переменной, ‘ имя диска: путь к имени файла данных на диске ‘); |
3. Открыть файл для записи с помощью процедуры
Rewrite(имя файловой переменной); |
Эта процедура стирает то, что было записано ранее в данный файл и устанавливает указатель в начало файла, перед его первым элементом. Если набора данных не было, то будет создан новый набор данных.
4. Записать необходимую информацию в файл с помощью оператора
WriteLn(имя файловой переменной, список записываемых переменных); |
5. Закрыть файл с помощью процедуры
Close(имя файловой переменной); |
Задача. Создать текстовый файл, который состоит из строк делового письма. Если строка будет состоять из 5 пробелов, то запись строк в файл прекратить.
Пусть письмо будет следующего содержания:
«Уважаемый _____________________________
На ваш запрос №______ от ____________ 2009г.
отвечаем, что выполнить ваш заказ на данный момент
мы не можем из-за отсутствия запасных деталей.»
Program a1;
Uses Crt;
Type dl = String[60];
Var pismo:Text; {текстовая файловая переменная}
st:dl; {одна строка делового письма}
Begin
Assign(pismo, 'd:\aaa.doc');
{деловое письмо будет
Rewrite(pismo); {открыть файл pismo для записи}
st:=''; {сначала строка делового письма пустая}
Writeln('Набирать
строки письма, в конце каждой
строки нажимать клавишу Enter'
Repeat
Writeln(pismo,st); {записать строку в файл}
Readln(st);
{ввести следующую строку
Until st=' ';
Close(pismo); {закрыть файл pismo }
end.
Таким образом, можно создать трафарет некоторого письма, а затем им пользовать нужное количество раз. Трафарет письма будет находиться на диске d под именем aaa.doc.
11.Дополнение текстового файла новыми данными.
Чтобы в конец текстового файла добавить данные необходимо выполнить следующие пункты.
1. Объявить файловый тип с помощью следующих строк:
Var имя файловой переменной : Text;
2. Установить связь между файловой переменной в программе и файлом данных на диске. Это делает процедура
Assign (имя файловой переменной, ‘ имя диска: путь к имени файла данных на диске ‘); |
3. Открыть уже созданный текстовый файл для записи с помощью процедуры
Append(имя файловой переменной); |
Эта процедура устанавливает указатель в конец файла, после последней строки письма и позволяет заносить новые данные.
4. Записать необходимую информацию в файл с помощью оператора
WriteLn(имя файловой переменной, список записываемых переменных); |
5. Закрыть файл с помощью процедуры
Close(имя файловой переменной); |
Задача. Дополним предыдущее деловое письмо следующими фразами: «Если Вы хотите, мы можем заказать нужные детали за границей за дополнительную плату.»
Program a2;
Uses Crt;
Type dl = String[60];
Var pismo:Text; {текстовая файловая переменная}
st:dl; {одна строка делового письма}
Begin
Assign(pismo, 'd:\aaa.doc');
{деловое письмо будет
Append(pismo); {открыть уже созданный файл pismo для дополнения}
st:=''; {сначала строка делового письма пустая}
Writeln('Набирать
строки письма, в конце каждой
строки нажимать клавишу Enter'
Repeat
Writeln(pismo,st); {записать строку в файл}
Readln(st);
{ввести следующую строку
Until st=' ';
Close(pismo); {закрыть файл pismo } end.
12.Использование данных из файла.
Чтобы прочитать информацию из текстового файла необходимо выполнить следующие действия:
1. Объявить файловый тип с помощью следующих строк:
Var имя файловой переменной : Text;
2. Установить связь между файловой переменной в программе и файлом данных на диске. Это делает процедура
Assign (имя файловой переменной, ‘ имя диска: путь к имени файла данных на диске ‘); |
3. Открыть уже созданный текстовый файл для чтения с помощью процедуры
Reset(имя файловой переменной); |
Эта процедура устанавливает указатель на первый элемент ранее созданного файла данных и ничего не стирает.
4. Записать необходимую информацию в файл с помощью оператора
WriteLn(имя файловой переменной, список записываемых переменных); |
5. Закрыть файл с помощью процедуры
Close(имя файловой переменной); |
Задача. Прочитать письмо созданное в предыдущей задаче.
Program a3;
Uses Crt;
Type dl = String[60];
Var pismo:Text; {текстовая файловая переменная}
st:dl; {одна строка делового письма}
Begin
Assign(pismo, 'd:\aaa.doc'); {деловое письмо находится на диске d в файле aaa.doc}
Reset (pismo); {открыть уже созданный файл pismo для чтения}
Writeln(‘текст пиьма:’);
While not(eof(pismo)) do
Begin
Readln(pismo,st); {прочитать строку из файла}
Writeln(st); {вывести строку письма на экран}
End;
Close(pismo); {закрыть файл pismo }
end.
Вопросы для самопроверки.
1.Что такое логический файл?
2.Какого типа бывают файлы данных?
3.Чем отличается файл
данных последовательного
4.Какая особенность у типизированных файлов?
5.Как объявить тип
файловой переменной в
6.Как объявить файловую переменную в программе?
7.Что делает процедура Assign?
8.Что делает процедура Rewrite
9.Что делает процедура Reset?
10.Что делает процедура Write?
11.Что делает процедура Read?
12.Что делает процедура Close?
13.Что обозначает процедура Se
14.Что обозначает функция Eof?
15.Что такое текстовый файл данных?
16.Как объявить в
программе переменную
17.К файлам какого доступа относятся текстовые файлы?
18.Какая особенность у текстовых файлов?
19.Как объявить тип текстовой файловой переменной в программе?
20.Как объявить текстовую
файловую переменную в
21.Что делает процедура Writel
22.Что делает процедура Readln?
23.Что обозначает процедура Ap
24.Что обозначает функция Eof?
Информация о работе Лекции по "Языкам и методам программирования" (PascalABC)