Работа с файлами - Free Pascal (88)
Формулировка задачи:
Требуется открыть файл для чтения считать 1 строку и занести в 4 обьявленные переменные значения ( например x=4.35 одна переменная ,y=12.421 вторая z=0.34 третья и v=134.35 четвретая) выполнить с ними вычисление и заменить старую строку на новою.
Далее читать 2 строку занести знач переменных в 4 переменных (x,y,z,v)выполнить с ними вычисление и заменить старую строку на новою. и так далее до конца файла.
Инф в файле в формате :
4.35,12.421,0.34,134.35
7.31,72.521,0.38,141.30
Program File_f1; var f1 : file of real;{файловая переменная } m: char st,s: string; x,y,z,v,k: real; begin writeln('Введите путь к файлу file.dat'); readln(s); assign(ff,s); {связать с файлом file.dat файловую переменную f1 } reset(ff); {открытие файла для чтения} Seek(f1, 0) {устанавливам указатель на начало файла} while not eof (f1) do { пока не конец файла f1} begin { тут ступр } end; close (f1); { закрыть файл для чтения} end .
Решение задачи: «Работа с файлами»
textual
Листинг программы
var f: file of real; i: longword; x, y, z, v, w: real; begin assign(f, 'file.dat'); reset(f); {открытие файла для ЧТЕНИЯ И ЗАПИСИ, если файла ещё нет, здесь будет ошибка} // writeln('Содержимое файла:');} {для контрольной печати} for i := 0 to filesize(f) div 4 - 1 do {читаем по 4 переменных} begin seek(f, i * 4); {на позицию, кратную 4} read(f, x); {читаем 4 переменных} read(f, y); read(f, z); read(f, v); // writeln(x:19, ' ', y:19, ' ', z:19, ' ', v:19);} {для контрольной печати} w := x + y + z + v; {производим какое-то действие} seek(f, i); {на позицию, кратную 1} write(f, w) {пишем в файл (и затираем то, что было в этой позиции!)} end; truncate(f); {обрезаем файл с позиции, следующей за последней записью} {для контрольной печати} { reset(f); writeln('Преобразованный файл:'); for i := 0 to filesize(f) - 1 do begin read(f, x); write(x:19, ' ') end; } close(f); // readln {для контрольной печати} end.
Объяснение кода листинга программы
- Объявлены переменные:
- f: файловый указатель типа file of real;
- i: переменная типа longword;
- x, y, z, v, w: переменные типа real.
- Файл 'file.dat' создан или открыт для чтения и записи с помощью функции assign(f, 'file.dat').
- Файл открыт для чтения и записи с помощью функции reset(f).
- Переменная i инициализируется значениями от 0 до filesize(f) div 4 - 1 (для чтения 4 переменных).
- В цикле for происходит чтение 4 переменных с помощью функций seek(f, i * 4) и read(f, x), read(f, y), read(f, z), read(f, v).
- Производится какое-то действие - сумма переменных x, y, z, v присваивается переменной w.
- Переменная i используется для позиционирования в файле с помощью функции seek(f, i).
- В позицию i записывается значение переменной w с помощью функции write(f, w).
- Файл обрезается с помощью функции truncate(f) до последней записи.
- Для контроля печати выводится содержимое файла до преобразования и после.
- Файл закрывается с помощью функции close(f).
- Для контроля печати выводится содержимое файла после преобразования.
- Ввод-вывод данных осуществляется с помощью функций readln и writeln.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д