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