Работа с файлами - 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 .

Код к задаче: «Работа с файлами - Free Pascal (88)»

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.

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


СОХРАНИТЬ ССЫЛКУ