Jak pozmieniać znaki w określonym miejscu pliku

Adam Boduch

Jeżeli chcemy zamienić dane znaki w określonym miejscu pliku, najprościej wczytać zawartość pliku do pamięci, a następnie wykonać żądane operacje. Najprościej skorzystać ze strumieni.

Procedura obejmie swoim zasięgiem 500 znaków zaczynając od 100 bajtów pliku:

procedure TForm1.ChangeCharsClick(Sender: TObject);
var
  F : TFileStream;
  Buff : array[0..1024] of char;
  iMuch : Integer;
begin
  F := TFileStream.Create('C:Scandisk.log', fmOpenReadWrite);
  try
    F.Position := 200; // ustaw na pozycji
    iMuch := F.Read(Buff, 500); // odczytaj znaki

    Buff := StringReplace(' ', '_', [rfReplaceAll]); // zastap spacje znakiem _

    F.Position := 100; // ustaw na poprzedniej pozycji
    F.Write(Buff, iMuch);  // zapisz nowa warosc
  finally
    F.Free;
  end;
end;

Zobacz też:

0 komentarzy