Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
«Програмування із 
застосуванням записів та 
файлів» 
Delphi.
«Программирование с использованием 
записей и файлов» 
План темы: 
1. Тип данных «Запись». 
2. Тип данных «Файл». 
3. Процедуры и функции для работы с 
файлами. 
4. Компоненты OpenDialog и SaveDialog. 
5. Примеры программирования с 
использованием записей и файлов.
1. Тип данных «ЗАПИСЬ». 
•Запись – это структурированный 
тип данных, состоящий из 
фиксированного числа 
компонентов одного или 
нескольких типов. 
•Определение типа записи 
начинается идентификатором 
RECORD и заканчивается 
зарезервированным словом END. 
•Между ними заключен список 
компонентов, называемых 
полями, с указанием 
идентификаторов полей и типа 
каждого поля.
ПРИМЕР ОПИСАНИЯ ЗАПИСИ: 
TYPE 
Car = RECORD 
Number : integer; 
Marka : string[20]; 
Probeg : integer; 
Rashod : real; 
END; 
VAR 
M,V : Car;
ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: 
•Обращение к значению поля 
осуществляется с помощью 
идентификатора переменной и 
идентификатора поля, 
разделенных точкой. Такая 
комбинация называется 
составным именем. Например, 
чтобы получить доступ к 
полям записи Car, надо 
записать: 
M.Number, M.Marka, 
M.Probeg, M.Rashod
ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: 
•Для присваивания полям 
значений можно 
использовать оператор 
присваивания: 
M.Number:=1678; 
M.Marka:='ГАЗ-24'; 
M.Probeg:=212100;
ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: 
• Один раз указав переменную типа запись 
в операторе WITH, можно работать с 
именами полей как с обычными 
переменными, т.е. без указания перед 
идентификатором поля имени переменной, 
определяющей запись. 
WITH <переменная типа запись> DO 
<оператор>; 
• Пример: 
Присвоить значения полям записи Car с 
использованием оператора WITH. 
WITH M DO BEGIN 
Number := 5543; 
Marka := 'ГАЗ-21'; 
Probeg := 212100; 
Rashod := 8.5; 
END;
МАССИВЫ ЗАПИСЕЙ 
• В ряде задач удобно использовать 
массивы из записей. Их можно 
описать следующим образом: 
TYPE 
Person = RECORD 
FIO : string[20]; 
Age : byte; 
Prof: string[30] 
END; 
VAR 
List : array[1..50] of Person; 
• Обращение к полю FIO i-го элемента 
массива: List[i].FIO
ПРИМЕР ОБРАБОТКИ ЗАПИСЕЙ 
• Из массива записей List (описание 
на предыдущей странице) вывести 
данные для тех, кто моложе 25-и 
лет. 
BEGIN 
… 
For i := 1 to N do 
If List[i].Age < 25 then begin 
{…Вывод FIO, Age, Prof} 
end; 
END.
2. Тип данных «ФАЙЛ» 
На практике программам часто приходится 
обрабатывать большие объемы данных. 
Вводить их каждый раз с клавиатуры не 
выгодно, поэтому данные размещаются в 
файлах на диске и при необходимости 
читаются программой. 
• Файл - это структурированный тип 
данных состоящий из последовательности 
компонентов одного типа.
Файлы 
Типизированные Нетипизированные Текстовые
2. Тип данных «ФАЙЛ» 
• Компонентами типизированного файла 
являются величины одного из базового 
типа (Integer, Real и др.). 
• Чаще всего такими компонентами 
являются «записи». Файл с записями 
называют также базой данных. 
• Такие файлы удобны для хранения и 
обработки больших объемов данных.
2. Тип данных «ФАЙЛ» 
• Компонентами нетипизированного файла 
являются блоки данных фиксированной 
длины. 
• Размер блока обычно 128 байт или 512 
байт. 
• Такие файлы применяются для 
увеличения скорости чтения/записи 
информации из файла, копирования, 
печати, передачи данных по сети и др.
2. Тип данных «ФАЙЛ» 
• Компонентами текстового файла 
являются строки. 
• Длина строки 0..255 символов. 
• Каждая строка завершается символами 
окончания строки с кодами 13, 10. 
• Такие файлы удобны тем, что их 
информация может быть прочитана 
любой программой, предназначенной для 
просмотра и редактирования текстовой 
информации.
• Для связи с файлом в программе 
объявляется файловая переменная. В 
зависимости от файлового типа описание 
будет следующим: 
• для типизированных файлов: 
f1 : file of zap; 
f2 : file of integer; 
• для нетипизированных файлов: 
f3 : file; 
• для текстовых файлов: 
f4 : TextFile;
• Для указания связи файловой 
переменной с конкретным файлом 
применяется процедура 
AssignFile(файловая переменная 
,<имя файла>). Например: 
AssignFile(f1, ’myfile.dat’); 
• Одна переменная одновременно не 
может указывать на два файла, но 
одну переменную сначала можно 
связать с одним файлом, потом с 
другим.
Открытие файла: 
• Rewrite (файловая переменная) - открыть 
файл для записи, если указанный файл не 
существует, то создается новый файл; если 
указанный файл существует, то его 
содержимое стирается. 
• Reset (файловая переменная) - открыть 
существующий файл для записи и чтения; 
если указанный файл не существует, 
возникает ошибка. 
• Append (файловая переменная) - открыть 
текстовый файл для добавления данных, 
если указанный файл не существует, 
возникает ошибка.
Чтение-запись из файла: 
• Read (<файловая переменная>, <список 
переменных>) - чтение данных из 
файла и присвоение их значений 
указанным переменным. 
• Write(<файловая переменная>, <список 
эл-тов вывода>) - запись данных в 
файл. 
• Для файла вводится понятие 
«текущее положение указателя». 
При чтении или записи одного 
компонента файла указатель 
перемещается на единицу.
• Seek (файловая переменная, N) - 
установить положение указателя 
файла на компонент с номером N 
(к текстовым файлам не 
применяется). 
• Eof (файловая переменная) - возвращает 
значение истинно, если указатель 
находится в конце файла. 
• FilePos (файловая переменная) - 
возвращает текущий номер 
указателя.
• FileSize (файловая переменная) - 
возвращает количество всех 
компонентов в файле. 
• Close (файловая переменная) - 
закрытие файла. 
• Rename(файловая переменная, 
новое имя) - переименование 
закрытого файла. 
• Erase (файловая переменная) - 
удаление закрытого файла.
Связать файловую 
переменную с файлом. 
Открыть файл. 
Чтение - запись из файла. 
Закрыть файл.
• Вывести на экран содержимое текстового файла 
doc1.txt. 
VAR 
F:TextFile; 
S:String; 
BEGIN 
AssignFile(F,’doc1.txt’); 
Reset(F); 
While not Eof(F) do begin 
Read(F,S); 
{…Вывод строки S на экран.} 
End; 
Close(F); 
END.
3. Компоненты OpenDialog и SaveDiaog. 
•Диалоговые окна для выбора открываемого или 
сохраняемого файла организуются в Delphi с 
помощью компонентов OpenDialog и SaveDialog.
3. Компоненты OpenDialog и SaveDiaog. 
•Основные свойства этих компонентов: 
DefaultExt - Расширение, которое добавляется к имени 
файла, если пользователь его пропустил. 
FileName - Начальное имя файла. 
Filter - Фильтр имени файла. 
Filterlndex - Номер активного фильтра. 
InitialDir - Начальный каталог, открываемый при 
первом появлении окна диалога. 
Options - Параметры, определяющие внешний вид и 
поведение окна диалога. 
Title - Заголовок окна диалога.
3. Компоненты OpenDialog и SaveDiaog. 
•Метод Execute у обоих компонентов выполняет 
диалог открытия или сохранения файла и 
возвращает значение True, если пользователь 
выбрал файл. Полный маршрут к файлу 
запоминается в значении свойства FileName. 
Пример: 
If OpenDialog1.Execute then begin 
AssignFile(f, OpenDialog1.FileName); 
Reset(f); 
end;
3. Компоненты OpenDialog и SaveDiaog. 
•Внешний вид окна диалога открытия файла:

More Related Content

09 rec file

  • 1. «Програмування із застосуванням записів та файлів» Delphi.
  • 2. «Программирование с использованием записей и файлов» План темы: 1. Тип данных «Запись». 2. Тип данных «Файл». 3. Процедуры и функции для работы с файлами. 4. Компоненты OpenDialog и SaveDialog. 5. Примеры программирования с использованием записей и файлов.
  • 3. 1. Тип данных «ЗАПИСЬ». •Запись – это структурированный тип данных, состоящий из фиксированного числа компонентов одного или нескольких типов. •Определение типа записи начинается идентификатором RECORD и заканчивается зарезервированным словом END. •Между ними заключен список компонентов, называемых полями, с указанием идентификаторов полей и типа каждого поля.
  • 4. ПРИМЕР ОПИСАНИЯ ЗАПИСИ: TYPE Car = RECORD Number : integer; Marka : string[20]; Probeg : integer; Rashod : real; END; VAR M,V : Car;
  • 5. ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: •Обращение к значению поля осуществляется с помощью идентификатора переменной и идентификатора поля, разделенных точкой. Такая комбинация называется составным именем. Например, чтобы получить доступ к полям записи Car, надо записать: M.Number, M.Marka, M.Probeg, M.Rashod
  • 6. ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: •Для присваивания полям значений можно использовать оператор присваивания: M.Number:=1678; M.Marka:='ГАЗ-24'; M.Probeg:=212100;
  • 7. ОБРАЩЕНИЕ К ПОЛЯМ ЗАПИСИ: • Один раз указав переменную типа запись в операторе WITH, можно работать с именами полей как с обычными переменными, т.е. без указания перед идентификатором поля имени переменной, определяющей запись. WITH <переменная типа запись> DO <оператор>; • Пример: Присвоить значения полям записи Car с использованием оператора WITH. WITH M DO BEGIN Number := 5543; Marka := 'ГАЗ-21'; Probeg := 212100; Rashod := 8.5; END;
  • 8. МАССИВЫ ЗАПИСЕЙ • В ряде задач удобно использовать массивы из записей. Их можно описать следующим образом: TYPE Person = RECORD FIO : string[20]; Age : byte; Prof: string[30] END; VAR List : array[1..50] of Person; • Обращение к полю FIO i-го элемента массива: List[i].FIO
  • 9. ПРИМЕР ОБРАБОТКИ ЗАПИСЕЙ • Из массива записей List (описание на предыдущей странице) вывести данные для тех, кто моложе 25-и лет. BEGIN … For i := 1 to N do If List[i].Age < 25 then begin {…Вывод FIO, Age, Prof} end; END.
  • 10. 2. Тип данных «ФАЙЛ» На практике программам часто приходится обрабатывать большие объемы данных. Вводить их каждый раз с клавиатуры не выгодно, поэтому данные размещаются в файлах на диске и при необходимости читаются программой. • Файл - это структурированный тип данных состоящий из последовательности компонентов одного типа.
  • 12. 2. Тип данных «ФАЙЛ» • Компонентами типизированного файла являются величины одного из базового типа (Integer, Real и др.). • Чаще всего такими компонентами являются «записи». Файл с записями называют также базой данных. • Такие файлы удобны для хранения и обработки больших объемов данных.
  • 13. 2. Тип данных «ФАЙЛ» • Компонентами нетипизированного файла являются блоки данных фиксированной длины. • Размер блока обычно 128 байт или 512 байт. • Такие файлы применяются для увеличения скорости чтения/записи информации из файла, копирования, печати, передачи данных по сети и др.
  • 14. 2. Тип данных «ФАЙЛ» • Компонентами текстового файла являются строки. • Длина строки 0..255 символов. • Каждая строка завершается символами окончания строки с кодами 13, 10. • Такие файлы удобны тем, что их информация может быть прочитана любой программой, предназначенной для просмотра и редактирования текстовой информации.
  • 15. • Для связи с файлом в программе объявляется файловая переменная. В зависимости от файлового типа описание будет следующим: • для типизированных файлов: f1 : file of zap; f2 : file of integer; • для нетипизированных файлов: f3 : file; • для текстовых файлов: f4 : TextFile;
  • 16. • Для указания связи файловой переменной с конкретным файлом применяется процедура AssignFile(файловая переменная ,<имя файла>). Например: AssignFile(f1, ’myfile.dat’); • Одна переменная одновременно не может указывать на два файла, но одну переменную сначала можно связать с одним файлом, потом с другим.
  • 17. Открытие файла: • Rewrite (файловая переменная) - открыть файл для записи, если указанный файл не существует, то создается новый файл; если указанный файл существует, то его содержимое стирается. • Reset (файловая переменная) - открыть существующий файл для записи и чтения; если указанный файл не существует, возникает ошибка. • Append (файловая переменная) - открыть текстовый файл для добавления данных, если указанный файл не существует, возникает ошибка.
  • 18. Чтение-запись из файла: • Read (<файловая переменная>, <список переменных>) - чтение данных из файла и присвоение их значений указанным переменным. • Write(<файловая переменная>, <список эл-тов вывода>) - запись данных в файл. • Для файла вводится понятие «текущее положение указателя». При чтении или записи одного компонента файла указатель перемещается на единицу.
  • 19. • Seek (файловая переменная, N) - установить положение указателя файла на компонент с номером N (к текстовым файлам не применяется). • Eof (файловая переменная) - возвращает значение истинно, если указатель находится в конце файла. • FilePos (файловая переменная) - возвращает текущий номер указателя.
  • 20. • FileSize (файловая переменная) - возвращает количество всех компонентов в файле. • Close (файловая переменная) - закрытие файла. • Rename(файловая переменная, новое имя) - переименование закрытого файла. • Erase (файловая переменная) - удаление закрытого файла.
  • 21. Связать файловую переменную с файлом. Открыть файл. Чтение - запись из файла. Закрыть файл.
  • 22. • Вывести на экран содержимое текстового файла doc1.txt. VAR F:TextFile; S:String; BEGIN AssignFile(F,’doc1.txt’); Reset(F); While not Eof(F) do begin Read(F,S); {…Вывод строки S на экран.} End; Close(F); END.
  • 23. 3. Компоненты OpenDialog и SaveDiaog. •Диалоговые окна для выбора открываемого или сохраняемого файла организуются в Delphi с помощью компонентов OpenDialog и SaveDialog.
  • 24. 3. Компоненты OpenDialog и SaveDiaog. •Основные свойства этих компонентов: DefaultExt - Расширение, которое добавляется к имени файла, если пользователь его пропустил. FileName - Начальное имя файла. Filter - Фильтр имени файла. Filterlndex - Номер активного фильтра. InitialDir - Начальный каталог, открываемый при первом появлении окна диалога. Options - Параметры, определяющие внешний вид и поведение окна диалога. Title - Заголовок окна диалога.
  • 25. 3. Компоненты OpenDialog и SaveDiaog. •Метод Execute у обоих компонентов выполняет диалог открытия или сохранения файла и возвращает значение True, если пользователь выбрал файл. Полный маршрут к файлу запоминается в значении свойства FileName. Пример: If OpenDialog1.Execute then begin AssignFile(f, OpenDialog1.FileName); Reset(f); end;
  • 26. 3. Компоненты OpenDialog и SaveDiaog. •Внешний вид окна диалога открытия файла: