Работа с файлами - 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
Листинг программы
  1. Program File_f1;
  2. var
  3. f1 : file of real;{файловая переменная }
  4. m: char
  5. st,s: string;
  6. x,y,z,v,k: real;
  7. begin
  8. writeln('Введите путь к файлу file.dat');
  9. readln(s);
  10. assign(ff,s); {связать с файлом file.dat файловую переменную f1 }
  11. reset(ff); {открытие файла для чтения}
  12. Seek(f1, 0) {устанавливам указатель на начало файла}
  13. while not eof (f1) do { пока не конец файла f1}
  14. begin
  15. {
  16. тут ступр
  17. }
  18. end;
  19. close (f1); { закрыть файл для чтения}
  20. end .

Решение задачи: «Работа с файлами»

textual
Листинг программы
  1. var f: file of real;
  2.     i: longword;
  3.     x, y, z, v, w: real;
  4. begin
  5.   assign(f, 'file.dat');
  6.   reset(f); {открытие файла для ЧТЕНИЯ И ЗАПИСИ, если файла ещё нет, здесь будет ошибка}
  7. //  writeln('Содержимое файла:');} {для контрольной печати}
  8.   for i := 0 to filesize(f) div 4 - 1 do {читаем по 4 переменных}
  9.     begin
  10.       seek(f, i * 4); {на позицию, кратную 4}
  11.       read(f, x); {читаем 4 переменных}
  12.       read(f, y);
  13.       read(f, z);
  14.       read(f, v);
  15. //      writeln(x:19, ' ', y:19, ' ', z:19, ' ', v:19);} {для контрольной печати}
  16.       w := x + y + z + v; {производим какое-то действие}
  17.       seek(f, i); {на позицию, кратную 1}
  18.       write(f, w) {пишем в файл затираем то, что было в этой позиции!)}
  19.     end;
  20.   truncate(f); {обрезаем файл с позиции, следующей за последней записью}
  21. {для контрольной печати}
  22. {  reset(f);
  23.   writeln('Преобразованный файл:');
  24.   for i := 0 to filesize(f) - 1 do
  25.     begin
  26.       read(f, x);
  27.       write(x:19, ' ')
  28.     end;
  29. }
  30.   close(f);
  31. //  readln {для контрольной печати}
  32. end.

Объяснение кода листинга программы

  1. Объявлены переменные:
    • f: файловый указатель типа file of real;
    • i: переменная типа longword;
    • x, y, z, v, w: переменные типа real.
  2. Файл 'file.dat' создан или открыт для чтения и записи с помощью функции assign(f, 'file.dat').
  3. Файл открыт для чтения и записи с помощью функции reset(f).
  4. Переменная i инициализируется значениями от 0 до filesize(f) div 4 - 1 (для чтения 4 переменных).
  5. В цикле for происходит чтение 4 переменных с помощью функций seek(f, i * 4) и read(f, x), read(f, y), read(f, z), read(f, v).
  6. Производится какое-то действие - сумма переменных x, y, z, v присваивается переменной w.
  7. Переменная i используется для позиционирования в файле с помощью функции seek(f, i).
  8. В позицию i записывается значение переменной w с помощью функции write(f, w).
  9. Файл обрезается с помощью функции truncate(f) до последней записи.
  10. Для контроля печати выводится содержимое файла до преобразования и после.
  11. Файл закрывается с помощью функции close(f).
  12. Для контроля печати выводится содержимое файла после преобразования.
  13. Ввод-вывод данных осуществляется с помощью функций readln и writeln.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут