- •Лабораторная работа №7а (додаткове завдання – виконання за бажанням) Тема: «Работа с файлами»
- •Assign(f:Text, Name:String) Assign(f:File,Name:String)
- •Reset(f, RecSize:Word) Пример
- •Процедура
- •Текстовый файл
- •Writeln – запись всех величин с обязательной установкой маркера конца строки в файл:
- •Параметр Size при вызове может быть опущен. В этом случае размер буфера соответствует SizeOf(Buf).
- •Типизированные файлы
- •Нетипизированные файлы
- •Задания
- •20. На диске сформирован файл, структура которого приведена в п.19.
- •На диске сформирован файл, структура которого представлена на рис.
Нетипизированные файлы
Такие файлы рассматриваются в Паскале как совокупность символов или байтов. Открытие файла с длиной записи DS осуществляется:
……..
Var
DS :LongInt;
UntypedFile :File;
………
BEGIN
……….
DS:=1;
Rewrite(UntypedFile,DS);
……….
Close(UntypedFile);
………..
Reset(UntypedFile.DS);
{или Reset(UntypedFile,1);}
По умолчанию – длина записи – 128 байт.
В ТурбоПаскале введены процедуры, поддерживающие операции ввода-вывода с более высокой скоростью, которые обеспечивают процедуры:
BlockRead(Var F:File;Var Buf;Count:Word{:Result:Word}).
Процедура считывает из файла F определенное число блоков в память, начиная с первого байта переменной Buf –буфер для накопления информации из файла F.
В Count – задается число считываемых блоков. В Result – после завершения процедуры определено число считываемых блоков.
В Result – записано, после завершения процедуры, - действительное число считанных записей.
Result может быть меньше Count . Если указан в вызове Result – в этом случае ошибка не произойдет. Для отслеживания ошибок ввода-вывода можно использовать опции {$I-}, {$I+} и функцию Ioresult.
Аналогично используют -
BlockWrite(Var F:File;Var Buf; Count:Word{;Result:Word});
Объем блока в байтах определяется по формуле: Count*RecSize, где RecSize – размер записи файла, заданный при его открытии. Суммарный объем разового обмена не должен превышать 64Кбайт.
Задания
1.Задан файл, в котором записана информация в следующем порядке:
ПВД-7;
Давление;
Температура;
ПВД-8;
Давление;
Температура;
ПВД-9;
Давление;
Температура;
ПВД-7;
Давление;
…………..
ПВД-9;
…………..
Температура.
Выбрать из файла и вывести на экран значения показаний давления по установке ПВД-7, найти минимальное и вывести на экран его значение.
2. То же, что в задании 1 – по ПВД-8.
3. Тоже,что в задании 2 – по ПВД-9.
4. То же, что в п.1 – по значению показаний температуры по ПВД-7.
5. То же,что в п.4 – по ПВД-8.
6. То же, что в п.5 – по ПВД-9.
7. То же, что в п.1 – найти значение максимальное.
8. То же, что в п.2 – найти максимальное значение.
9. То же, что в п.3 – найти максимальное значение.
10. То же, что в п.4 – найти максимальное значение.
11. То же, что в п 5 – найти максимальное значение.
12. То же, что в п.6 – найти максимальное значение.
13. То же, что в п.1 – среднее значение.
14. То же, что в п.4 – среднее значение
15. Упорядочить записи параметров установок (ПВД-7 - ПВД-9) в порядке убывания по значениям температуры.
16. То же, что в п .15 – в порядке возрастания.
17. Упорядочить записи параметров установок (ПВД-7 - ПВД-9) в порядке убывания по значениям давления.
18. То же, что в п.17 – в порядке возрастания.
19.На диске сформирован файл, структура которого:
-
Ф.И.О
Математика
Материаловедение
Химия
Программирование
Начертат. Геометрия
Ф.И.О
Математика
Материаловедение
Химия
Программирование
Начертат. геометрия
и т.д.
Выбрать и распечатать из файла информацию на экране об отличниках, сдавших сессию на «отлично», «хорошо» и «отлично» , сдавших сессию и имеющих одну и более «двоек».