Работа с файлами - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д