В существующем типизированном файле, элементами которого являются отдельные слова, изменить на заданное слово: В) s-e слово. Г) последнее слово — Pascal(Паскаль)

program Project1;
 
type
  TStrRec = string[15];
 
const
  Fn = 'data.dat';
  N = 10;
 
var
  F : file of TStrRec;
  S : TStrRec;
  i, Num : Integer;
begin
  Assign(F, Fn);
 
  //Создаём/пересоздаём файл.
  Rewrite(F);
  Writeln('Перечень слов в файле:');
  //Записываем в файл N слов.
  for i := 1 to N do begin
    Str(i, S);
    S := 'Слово ' + S;
    Write(F, S);
    if i > 1 then Write(', ');
    Write(S);
  end;
  Writeln;
 
  //Открываем файл.
  Reset(F);
 
  //Изменить слово с номером Num.
 
  repeat
    Writeln('Задайте номер слова для изменения ', 1, '..', N, ':');
    Readln(Num);
  until (Num >= 1) and (Num <= N);
 
  //Перемещаем файловый указатель на элемент с заданным номером.
  //Num - 1 - потому что позиции элементов в файле нумеруются от нуля.
  Seek(F, Num - 1);
  //Читаем слово. При этом файловый указатель сместится к следующему слову.
  Read(F, S);
  //Возвращем файловый указтель в прежнее положение.
  Seek(F, Num - 1);
  //Изменяем слово.
  S := '(' + S + ')';
  Write(F, S);
 
  Writeln('Слово изменено');
 
  //Изменить последнее слово.
  Writeln('Изменить последнее слово...');
 
  //Открываем файл. При этом файловый указатель сбрасывается в ноль.
  Reset(F);
  //Номер последнего слова в файле.
  Num := FileSize(F);
  //Num - 1 - потому что позиции элементов в файле нумеруются от нуля.
  Seek(F, Num - 1);
  //Читаем слово. При этом файловый указатель сместится к следующему слову.
  Read(F, S);
  //Возвращем файловый указтель в прежнее положение.
  Seek(F, Num - 1);
  //Изменяем слово.
  S := '(' + S + ')';
  Write(F, S);
 
  Writeln('Слово изменено');
 
  Writeln('Содержимое файла после изменений. В скобках изменённые слова:');
  Reset(F);
  i := 0;
  while not Eof(F) do begin
    i := i + 1;
    Read(F, S);
    if i > 1 then Write(', ');
    Write(S);
  end;
 
  //Закрваем файл.
  Close(F);
 
  Readln;
end.

Leave a Comment

+ 79 = 87