Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism Datei als UTF8 datei speichern (https://www.delphipraxis.net/101035-datei-als-utf8-datei-speichern.html)

r4pt0r 7. Okt 2007 13:52


Datei als UTF8 datei speichern
 
Ich nutze zzt. den code

//Speichern
Memo2.Lines.SaveToFile('C:\file.iim');
.iim wird von einem programm benötigt, das zugleich noch UTF-8 brauch.
Standartmäßig wird jedoch in Ascii gespeichert, wie kann ich das zu UTF8 ändern?
:-D
ich hoffe,ich habe mich genau genug ausgedrückt *hoff*

Gruß

r4pt0r

*Allen einmal zuwink* :)

marabu 7. Okt 2007 14:05

Re: Datei als UTF8 datei speichern
 
Herzlich willkommen in der Delphi-PRAXiS, raptor.

Du solltest deine Delphi-Version angeben oder in deinem DP-Profil eintragen.

Du kannst die Zeilen deines Memos nach UTF8 konvertieren:

Delphi-Quellcode:
procedure SaveLinesUTF8(lines: TStrings; fn: TFileName);
var
  i: Integer;
  s: TStrings;
begin
  s := TStringList.Create;
  try
    for i := 0 to Pred(lines.Count) do
      s.Add(AnsiToUtf8(lines[i]));
    s.SaveToFile(fn);
  finally
    s.Free;
  end;
end;
Getippt und nicht getestet.

Freundliche Grüße vom marabu

r4pt0r 7. Okt 2007 19:37

Re: Datei als UTF8 datei speichern
 
ich hab den code noch nicht vollständig verstanden, jedoch lasse ich ihm mir von jemandem erklären, der ein wenig mehr verständnis dafür aufbringen kann ;)

danke nochmal für deine schnelle hilfe :)

gruß r4pt0r

Bernhard Geyer 7. Okt 2007 20:46

Re: Datei als UTF8 datei speichern
 
Und was verstehst Du nicht? :gruebel:

WordsBG 7. Okt 2007 21:29

Re: Datei als UTF8 datei speichern
 
Zitat:

Zitat von Bernhard Geyer
Und was verstehst Du nicht? :gruebel:

TFileName? Das eine Variable vom Typ TStrings mit TStringList Erstellt wird (ok, klar es geht, ist aber mieser Stil).

Probieren wir's mal so:
Delphi-Quellcode:
procedure SaveLinesUTF8(Lines: TStrings; FileName: String);
var
  i: Integer;
  TempStrings: TStrings;
begin
  TempStrings := TStrings.Create;
  try
    for i := 0 to Lines.Count - 1 do
      TempStrings.Add(AnsiToUtf8(lines[i]));
    // Wandle jede Zeile des Quell-TStrings in UTF8 um
    // und füge sie in eine neue StringList ein.
    TempStrings.SaveToFile(fn);
  finally
    TempStrings.Free;
  end;
end;
Ob das jetzt geht kann ich jetzt nicht sagen, weil TStrings dürfte ja eigentlich nur String nicht WideString speichern.

xaromz 7. Okt 2007 21:50

Re: Datei als UTF8 datei speichern
 
Hallo,
Zitat:

Zitat von WordsBG
TFileName? Das eine Variable vom Typ TStrings mit TStringList Erstellt wird (ok, klar es geht, ist aber mieser Stil).

nein, das ist nicht schlechter Stil, das ist OOP. Ganz im Gegenteil wird Dein geposteter Code nicht funktionieren, da TStrings zu großen Teilen abstrakt ist.
Und TFileName ist zwar nur ein Alias Auf AnsiString, aber auch dieses ist üblich und sinnvoll, erhält man doch auf diese Weise kostenlos eine Semantik.

Gruß
xaromz

r4pt0r 8. Okt 2007 19:45

Re: Datei als UTF8 datei speichern
 
funzt alles prächtig, vielen Dank jungs :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz