
- •9. Перечисляемый тип данных. Строковый тип. Множества. Записи. Файлы
- •9.1. Перечисляемый тип данных
- •Var days: week;
- •9.2. Строковые данные. Типы Char и String
- •Var s1 : String[40];
- •Var Str1, Str2: String[20]; Ch1, Ch2 :Char;
- •Var s: String[20]; I:integer;
- •Var I: byte; begin
- •Var Str_1, Str_2, Str_3:string[10];
- •Insert('any', Str_3,5);
- •9.3. Множества
- •9.3.1. Описание и инициализация множеств
- •9.3.2. Предметные операции с множествами
- •9.3.3. Операции сравнения над множествами
- •9.3.4. Цикл типа For..In. Вывод множеств и их элементов.
- •Var d: week;
- •9.4. Записи
- •Var p_Data: Pers_Data;
- •Var p_Data: record fam:string[20]; adr:string[40]; tel:string[15];
- •Var woker_alpha: woker_firm;
- •Var woker_alpha: array [1..30] of Pers_Data;
- •9.5. Файлы
- •9.5.1. Описание файловых переменных
- •9.5.2. Стандартные операции с файлами. Связывание логических и физических файлов
- •9.5.3. Ввод и вывод данных из физических файлов. Вспомогательные действия
- •9.5.4. Примеры решения задач по обработке текстовых файлов
- •Var I:byte;n:integer; ft:text; FileName,st:string;
- •Var I,Lmas:integer; ft:text; FileName:string;
- •Var n,I:integer; ft:text; FileName:string;
- •Var str,w_s:string;
Var n,I:integer; ft:text; FileName:string;
procedure search_word (var ftext:text; var n:integer);
Var str,w_s:string;
begin{тело процедуры search_word }
writeln(' Vvedite slovo:'); read(w_s);
n:=-1;
reset(ftext); {открытие физического файла для чтения}
while not Eof(ftext) do
begin
inc(n);readLn(ftext,str);{наращивание счетчика, чтение строки из файла в строку str }
if pos(w_s,str)<>0 then {проверка вхождения слова в строку}
begin writeln('word ',w_s,' is fined in line’,n);close(ftext); exit end;
end;
writeln('NO'); close(ftext); {закрытие файла}
end;
begin {тело основной программы}
FileName:='c:\fpc\test.txt'; {задание имени физическому файлу}
assign(ft, FileName); {связывание логического и физического файлов}
rewrite(ft); {открытие файла для записи}
for i:=1 to 8 do writeln(ft,i*i+1);
search_word(ft,n);{вызов процедуры поиска слова, вводимого с клавиатуры, в заданном файле}
end.
Вопросы для проверки знаний.
1. Какую общую задачу решает файловый тип данных ?
2. Что понимают под физическим файлом и как задается его имя ?
3. Что понимают под логическим файлом и как задается его имя ?
4. Какие процессы называют записью и чтением файлов ?
5. Назовите три файловых типа в Паскале, каков синтаксис их описания ?
6. Что представляют собой типизированные файлы ?
7. Что представляют собой текстовые файлы ?
8. Назовите основные группы действия с файлами.
9. Как осуществляется связывание логического и физического файлов.
10. Какие имена зарезервированы за внешними устройствами ПК в MS DOS ?
11. Что означают стандартные имена физических файлов INPUT и OUTPUT ?
12. Какие процедуры и функции применяют для подготовки физических файлов к вводу – выводу ?
13. Какие процедуры и функции используют для ввода и вывода данных из файлов ?
14. Какие действия относят к вспомогательным при работе с файлами и какие процедуры и функции применяют для их выполнения ?
Практические задания.
1. Отладить программу из примера 4 п.9.5. Модифицировать процедуру в ней таким образом, чтобы она выполняла поиск строки, задаваемый с клавиатуры, в заданном текстовом файле.
2. Разработать функцию NumWord, которая подсчитывает количество слов в заданном текстовом файле при условии, что слова в строке могут разделяться пробелами, запятыми и точками, а слова в разных строках разделяются признаком конца строки. Также разработать текст основной программы для отладки и тестовых испытаний функции NumWord.
.