Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Тип данных Boolean. Значения True, False в Pascal.

Мы рассмотрели с Вами целый тип данных (integer), вещественный тип (real), символьный (char). В этом уроке мы рассмотрим тип данных, который имеет большое значение в программировании. Логический типBoolean. Одной из особенностей этого типа данных ...

Применение логических операций с оператором IF.

В данном уроке мы рассмотрим применение логической операции And с условным оператором If.

Циклы и массивы

Тип данных Char.

Тип CHAR (литерный, символьный). Этот тип задает конечное упорядоченное множество символов (литер), допускаемое в конкретной реализации языка.

Арифметический цикл с рекуррентной зависимостью.

Многие циклические вычислительные процессы используют рекуррентные зависимости при решении различных математических задач.

Типизированный файл – это файл, в котором содержатся однотипные данные. Типизированный файл задается с помощью 2-х ключевых слов «file of». После слова «of» указывается тип файла, например integer, real, char, string и т.д. Тип файла может быть любым за исключением файлового типа (не может быть файла файлов) и комбинированного типа, один из компонентов которого имеет файловый тип.

В отличие от текстовых файлов, в типизированном файле информация хранится в двоичном представлении (в текстовом файле информация хранится в виде цепочки символов). Данный факт позволяет производить чтение и запись в файл более быстрым способом, т.к. отсутствует необходимость в преобразовании данных. Кроме того, в типизированном файле возможен прямой доступ к записям файла (в текстовом файле возможен только последовательный доступ).

Напишем программу, которая создаст своеобразную базу данных, хранящей сведения о студентах: их именах, номерах курса и групп.

Типизированные файлы в Паскаль.



Program file11;
uses crt;
Type Student = record
      fio: string [20];
      kurs, group: integer;
end;
var zap : student;
     f: file of student;
     name: string;
begin
clrscr;
Writeln ('Задайте имя файла');
Readln (name);
Assign (f, name);
Rewrite (f);
Writeln ('Введите фамилию и инициалы студента');
Readln (zap.fio);
While zap.fio <> ' ' do
Begin
Writeln ('Введите номер курса и группы');
Readln (zap.kurs, zap.group);
Write (f, zap);
Writeln ('Введите фамилию и инициалы следующего студента ');
Readln (zap.fio);
End;
Close(f);
Writeln ('Файл создан');
readln
End.


Строка №3-№6. Объявляем в программе тип Record и указываем для него компоненты. Первый компонент «fio» (строка №4) будет описывать фамилию и инициалы студента. Компоненты «kurs» и «group» будут описывать соответственно номер курса и номер группы.

Строка №7. Объявляем переменную «zap» и указываем для нее тип «Student». Теперь с помощью переменной «zap» мы можем обратиться к любому компоненту записи.

Строка №8. Создаем файловую переменную «f» и указываем для нее тип «Student». Таким образом, мы создаем файл записей, где будет храниться информация о студентах.

В строке №9 создаем переменную «name», которая понадобится нам для создания имени файла.

Строка №13. Вводим с клавиатуры имя файла. Это имя будет записано в переменную «name».

Строка №14. Связываем файловую переменную «f» с именем файла. Как и в случае с текстовыми файлами связывание файловой переменной с файлом производится с помощью процедуры Assign

Строка №15. Открываем файл для записи. Открытие типизированного файла для записи производится аналогично текстовым файлам с помощью процедуры Rewrite. Так как самого файла не существует, он будет создан автоматически и будет иметь имя, которое мы задали в строке №13.

Строка №17. После вывода на экран сообщения (строка №16) мы вводим значение для 1-ого компонента записи (фамилию и инициалы студента).

Строка №18. Записываем цикл. До тех пор пока не будет введено пустое значение для компонента «zap.fio» необходимо выполнять действия, записанные в строках №20 - №24. Знак <> означает неравно. После этого знака в апострофах записывается значение, которому не должен быть равен компонент «zap.fio». Внутри апострофов мы ставим знак пробела. Таким образом, цикл будет выполняться до тех пор, пока вместо фамилии очередного студента не будет нажата клавиша «пробел».

В цикле будут выполняться поочередно 4 действия:

  • Строка №20. Выводим на экран сообщение.
  • Строка №21. Вводим с клавиатуры через пробел номер курса и номер группы.
  • Строка №22. В файловую переменную «f» заносим содержимое записи «zap».
  • Строка №23. Выводим на экран сообщение.
  • Строка №24. Вводим с клавиатуры фамилию и имя студента.

Эти строки будут повторяться в цикле, пока на предложение ввести фамилию и инициалы студента мы просто нажмем пробел. После этого файл будет закрыт (строка №26) и на экран будет выведено сообщение (строка №27).

tipizirovannihe fayjlih

tipizirovannihe fayjlih.

После запуска программы нам необходимо ввести имя файла. Я ввел имя «programs\students.dat». Автоматически в директории «C:\FPC\2.2.2\bin\i386-win32\Programs» создается файл с таким именем.
После этого необходимо ввести фамилии студентов и номера курсов и групп. Я ввел данные для двух студентов Путина и Медведева. На очередное сообщение ввести фамилию студента я нажал пробел.


Дополнение к материалу.

Следует отметить, что типизированные файлы нельзя создать в текстовом редакторе, как мы делали это для текстовых файлов. Если мы откроем файл «students.dat» в директории «C:\FPC\2.2.2\bin\i386-win32\Programs» с помощью блокнота, то увидим непонятные символы.


Предыдущая статья : Использование типа Record в текстовых файлах.
Оглавление : Уроки Паскаль. Файлы.
Следующая статья : Уроки Паскаль. Файлы.


Комментарии  

 
+12 # Арменчик 05.05.2012 19:05
нормально написано, но мало)
 
 
+8 # Мартин 03.09.2012 13:02
Спасибо! Только благодаря вашей статье и
разобрался:)
 
 
+4 # Серёжа 11.12.2012 17:14
Послушай, а почему когда в строке 21 ввёл с клавиатуры, а потом в строке 22 записал в файл, Но когда ввёл в (24) фамилию, почему не надо записать фамилию в файл?
 
 
+5 # Андрей 15.12.2012 18:35
норм) а в каком расширении файлы лучше открывать,
потому что в .txt цыфры не выводит?
 
 
+1 # витя 02.03.2013 09:34
Очень хорошо написано, спс, очень помог :D
 
 
0 # кеша 10.06.2014 16:46
:-) норм только мало вот
 
 
+2 # Кот в сапогах 25.03.2015 16:01
@Серёжа, во-первых, на строке 22 ты не просто имя записываешь, а имя+курс+группу т.к. ты звписывешь целый zap в файл. Во-вторых, фамилия введенная на строке 24 будет записана на той же строке 22 строку когда ты следующий раз проидешься по циклу.
 
 
+2 # Кот в сапогах 25.03.2015 16:07
А так да, мало по типизированным файлам-то, надо как минимум программу чтобы обратно прочитывала из этого файла. Хорошим упражнением по типизированным файлам будет написание программы телефонной книги, где ты можешь подавить имя+телефон, вывести все имя+телефон из файла на экран, сделать поиск номера телефона по имени и удаление контакта.
 
 
+3 # Кот в сапогах 25.03.2015 16:08
где ты можешь добавить имя+телефон*
 
 
+1 # шы 16.12.2016 07:25
куда инвестировать свой многочилсенный капитал увожаемые товарищи
 
 
-1 # Сергей 30.11.2021 13:00
У меня всё что приведено в разделе по работе с текстовым редактором "Блокнот", ничего не работает, блокнот не открывается ничего в него не записывается, и ни какие действия не производятся. У меня установлена Windows 10 x64, а Pascal версия 3.2.0. Программа создаётся, закрывается, но при запуске запускается и тут же сворачивается, и ни каких действий не производит.
 
 
0 # Друзья 30.11.2021 14:49
Все содержимое нужно записать в паскаль файл и открыть в Паскале
 
   ГлавнаяПаскальФайлы в ПаскальТипизированные файлы в Паскаль.