Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Unicode in datei schreiben (https://www.delphipraxis.net/69573-unicode-datei-schreiben.html)

remie 17. Mai 2006 09:56


Unicode in datei schreiben
 
Hi leute

ich muss so ziemlich jede sprache die es Gibt mit ihren Zeichen in eine Datenbank schreiben können,
die Datenbank ( Mysql ) kann ja utf-8 ohne Probleme aber Delphi kann es ja nicht so einfach.
da habe ich hier im Forum die "TntUnicodeControls" gefunden.

Wenn ich jetzt hingehe und an meinem Rechner das Eingabeschema auf Koreanisch stelle, kann ich auch wunderbar denen ihre Zeichen tippen. zum Testen ob das alles klappt wolle ich das eingegebene mal in eine Datei schreiben.
Wenn ich die dann aber die Datei schreibe und danach wieder auslesen will kommen nur . raus.

Code:
procedure TForm1.Button2Click(Sender: TObject);
var f    : System.text;
    daten : WideString;
    i    : Integer;
begin
  SaveDialog1.Execute;

  if NOT fileexists(SaveDialog1.FileName) then begin
    IF NOT fileexists(SaveDialog1.FileName) THEN BEGIN
      SYSTEM.ASSIGN(f,SaveDialog1.FileName);
      SYSTEM.REWRITE(f,SaveDialog1.FileName);
      SYSTEM.CLOSE(f);
    END;
    SYSTEM.ASSIGN(f,SaveDialog1.FileName);
    SYSTEM.APPEND(f);
    for i:=0 to tntedit1.Lines.Count-1 do begin
      WRITELN(f,tntedit1.Lines.ValueFromIndex[i]);
    end;
    SYSTEM.CLOSE(f);
  end;
end;
das is der Button der die Datei schreibt. muss ich da noch irgendwas setzen oder so ?

Danke mal für die Hilfe

Luckie 17. Mai 2006 09:57

Re: Unicode in datei schreiben
 
Versuch es mal mit einem FileStream anstatt mit den veralteten Pascal Routinen.

remie 17. Mai 2006 09:59

Re: Unicode in datei schreiben
 
wie meinen ?

Luckie 17. Mai 2006 10:00

Re: Unicode in datei schreiben
 
Delphihilfe Delphi-Referenz durchsuchenTFileStream.

sh17 17. Mai 2006 10:03

Re: Unicode in datei schreiben
 
Und bei Dir dann speziell TTntFileStream oder TTntStringList

himitsu 17. Mai 2006 10:06

Re: Unicode in datei schreiben
 
TextFile ist nicht Unicodetauglich ... hatte ich vor ein paar Tagen hier schonmal irgendwo gesagt.
das Read/Write/ReadLn/WriteLn nimmt Zwar WideStrings ntgegen, aber intern werden die in AnsiStrings umgewandelt und auch "nur" als ANSI in die Datei geschrieben, oder daraus gelesen.

remie 17. Mai 2006 10:18

Re: Unicode in datei schreiben
 
hm naja ok dan is mir klar warum es nicht gegangen ist.

aber jetzt hätte ich noch ne kurze frage zum verständnis:
procedure WriteBuffer(const Buffer; Count: Longint);
damit schreibe ich ja in dateien ... der buffer ist dan mein WideString aus dem TntRitchEdit oder ?
und was muss ich bei dem count mitgeben, wieviele Zeichen das sind oder Bits oder ...
das is mir noch nicht so ganz klar

sh17 17. Mai 2006 10:23

Re: Unicode in datei schreiben
 
bei WideString ist Count = Length * 2

remie 17. Mai 2006 10:28

Re: Unicode in datei schreiben
 
und was sollte ich dan da beim lesen ( REadBuffer) angeben ? da habe ich die Zeilenlänge ja nicht :gruebel:

himitsu 17. Mai 2006 10:41

Re: Unicode in datei schreiben
 
Entweder du ließt solange ein, bis du ein #0, #13, oder #10 findest (ReadLn macht das nicht anders),
oder du speicherst dir die Länge mit ab (z.B. einen Integer davor speichern, wo die Länge des nachvolgenden Strings drinsteht)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:58 Uhr.
Seite 1 von 2  1 2      

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