Einzelnen Beitrag anzeigen

gro

Registriert seit: 9. Jul 2004
Ort: Kärnten
17 Beiträge
 
Delphi 10.3 Rio
 
#1

Einzelnen Unicodestring an Datei anhängen

  Alt 6. Jun 2011, 11:35
Hallo liebe Delphianer
nach langer Zeit der Überlegung bin ich nun endlich von Delphi7 auf DelphiXE umgestiegen.

Ich bin jetzt dabei alle Projekte und Komponenten auf Unicode umzustellen und dabei bin ich auf ein kleines Problem getroffen für das ich etwas Hilfe benötigen würde.

In meinen alten Projekten schreibe ich Logfiles welche bei den Kunden teilweise eine Grösse von mehreren GB erreichen können.

Alter Code:

Code:
 
Procedure TFComponentTest.WriteLogline(const szFile, szLogline : string);
var
  F1 : textfile;

begin
  AssignFile(F1, szFile);
  TRY
    if (FileExists(szFile) = TRUE) then begin
      Append(F1);
    end
    else begin
      Rewrite (F1);
    end;

    writeln (F1, szLogline);
  FINALLY
    Closefile (F1);
  END;
end;
Soweit so gut. Aber jetzt zu mein Problem:
Ich muss jetzt z.B folgenden String in die Logdatei schreiben

Ģenerē vieną įmonė читаете вы его! ÆàëîáûÎáñëóæèâàíèå

Als Übergangslösung für diese Kriksikraksi-Zeichen habe ich jetzt folgendes Implementiert:

Code:
Procedure TFComponentTest.WriteLogline1(const szFile, szLogline : string);
var
  aFileList : TStringlist;
  Encoding : TEncoding;

begin
  TRY
    aFileList := TStringlist.Create;
    if (FileExists(szFile) = TRUE) then begin
      aFileList.LoadFromFile(szFile);
    end;

    aFileList.Text := aFileList.Text + szLogline;
    aFileList.SaveToFile(szFile, Encoding.Unicode);
  FINALLY
    aFileList.Free;
  END;
end;
Das funktioniert soweit auch recht gut. Nur die Performanze geht mir dabei total in den Keller, da ich bei jeden einzelnen Logeintrag die Datei neu einlesen muss.

Habt Ihr eine Idee wie ich dieses Problem ev. mit WriteLn lösen könnte?

MfG Pit
Peter (EDV = Ende der Vernunft)
  Mit Zitat antworten Zitat