Запись в типизированный и текстовый файлы
Задача
Осуществить запись одинаковых данных в типизированные и текстовый файлы.
Сравнить размер файлов.
Решение
Описание переменных:
file_r, file_i, file_t – переменные связываемые с файлами для хранения действительных чисел, целых чисел и текста соответственно;
n – количество записываемых чисел;
a – текущее число.
Алгоритм решения задачи:
Сначала файловые переменные связываются с конкретными файлами на диске. Файлы открываются на запись. Если файлов не было, то они будут созданы.
У пользователя запрашивается количество вводимых чисел.
В цикле for считывается очередное число и записывается в три разных файла.
В конце файлы закрываются.
Программа на языке Паскаль:
var file_r: file of real; file_i: file of integer; file_t: text; i, n: integer; a: integer; begin assign(file_r,'c:/rfile.txt'); assign(file_i,'c:/ifile.txt'); assign(file_t,'c:/tfile.txt'); rewrite(file_r); rewrite(file_i); rewrite(file_t); write('n='); readln(n); for i:= 1 to n do begin write('a='); readln(a); write(file_r,a); write(file_i,a); write(file_t,a); end; close(file_r); close(file_i); close(file_t); readln end.
Примечания:
Размер типизированного файла из вещественных чисел всегда будет равен произведению количества записываемых чисел (n) и размеру памяти, отводимого под тип real (скорее всего 8 байт). Например, если записать в файл 5 чисел, то он будет равен 40 байтам.
Файл из целых чисел при тех же данных будет равен 10 байтам, если под каждое данное типа integer отводится 2 байта.
Размер текстового файла напрямую зависит от того, сколько символов-цифр было введено и не зависит от количества записываемых чисел. Так, если было введено 5 одноразрядных чисел, то файл будет равен 5 байтам, если же присутствовали два двухразрядных и три одноразрядных, то размер файла увеличится до 7 байт и т.д. (Под каждый символ выделяется 1 байт).