- •Практическая работа Тема: Обработка типизированного файла
- •Порядок выполнения работ
- •Содержание отчета:
- •8. Теоретическая часть
- •8.2. Функции обработки типизированного файла
- •Физическое удаление записи с использованием дополнительного файла.
- •У даление записи без использования дополнительного файла.
- •8.10. Функции обработки:
- •8.11. Работа с файлами
- •9. Типовые ошибки
- •Примеры .
- •10.1. Примеры описание типа в языках программирования
- •10. Контрольные вопросы
- •Литература
8.10. Функции обработки:
Ввод данных табличный
Ввод данных простой.
Ввод данных произвольный (справки)
Вывод данных табличный
Вывод данных простой
Вывод данных произвольный (справки)
Физическое удаление записей без использования дополнительного файла.
Физическое удаление записей с использованием дополнительного файла.
Логическое удаление записей.
Восстановление записей.
Сжатие записей.
Вставка с использованием дополнительного файла.
Вставка без использования дополнительного файла.
Изменение записи.
Сортировка записей без использования индексного массива.
Сортировка записей с использованием индексного массива.
Поиск по нескольким полям.
8.11. Работа с файлами
Обобщенный алгоритм работы файлом:
Открытие файла
Обработка в соответствии с задачей,
Закрытие файла
Таблица стандартных функций работы с файлами в Pascal и C/С++.
Операции |
Pascal |
C |
С++ |
|||||||
Открытие файла: |
Assign(F,’FILE1.DAT’) (имя файла, файловые переменные) Reset ( var F [size: word] ) (чтение) Rewrite ( var F [size: word]) (запись) Append (var F: Text) (добавление) |
fp = fopen (filname,”” ). FILE *fp; режим обработки и вид файла(t b), параметры режимы: r- w- a- |
|
|||||||
Закрытие файла освобожде-ние файловой переменной и буфера памяти. |
Close(f) |
fclose (fp) |
|
|||||||
Функции последовательного доступа: чтение из файла, запись в файл. |
|
|
|
|||||||
А) поэлементная обработка |
Read( [var F: Text;] [v1,v2,…,Vn] ) Write([var F:Text;] [V1,V2,…Vn] ) |
Getc(FILE *fp) Puts(int ch, FILE *fp) Возвращает int fgets ( ) fputs( ) и т.д. |
|
|
||||||
Б) поблочная обработка |
BlockRead (file,Buf,N, Result) BlockWrite(file,Buf,N,Result) file - файловая переменная buf – Памяти обмена информации n - число компонентов, result - число полностью обработанных компонентов |
fread(buf,c,bytes,fp) fwrite(buf,c,bytes,fp) buf - указатель на область памяти, откуда будет проис-ходить обмен информацией c - сколько единиц записи bytes - Длина каждой единицы записи в байтах fp - указатель файла |
|
|
||||||
В) Форматный ввод/вывод |
См. А |
fscanf(FILE *fp,const char * string) fprintf (FILE *fp,const char * string) |
|
|
||||||
Функции произвольного доступа |
|
|
|
|
||||||
Переустановка файлового указателя. |
seek ( ) Точка отсчета, всегда начало файла. |
fseek (FILE *fp, long, int to) количество байт от точки отчета, где to – точка отсчета: - начало файла SEEK_SET - конец файла SEEK_END - текущее значение SEEK_CUR |
|
|
||||||
Определения отступа указателя от начала файла |
|
Ftell(FILE *fp) |
|
|
||||||
Размер файла. |
Filesize(f) |
- |
|
|
||||||
Определение конца файла |
Eof(f) |
Eof(fp) EOF |
|
|
||||||
Отсекание информации от файлового указателя до конца файла |
Truncate(f) |
|
|
|