AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Unicode in eine Textfile Speichern

Ein Thema von Domi · begonnen am 5. Okt 2006 · letzter Beitrag vom 8. Okt 2006
Antwort Antwort
Seite 1 von 2  1 2      
Domi

Registriert seit: 5. Okt 2006
3 Beiträge
 
#1

Unicode in eine Textfile Speichern

  Alt 5. Okt 2006, 20:59
Guten Tag,

Ich hoffe erstmal ich bin hier im richtigen Forum dafür, weil für euch ist die Frage wahrscheinlich ziemlich einfach, aber mein momentanes Wissen und Suchen in Hilfen übersteigt es.

Nun gut, also ich schildere das Problem recht simpel. Ich habe einen Unicode, also kyrillische Schriftzeichen zum Beispiel. Nun möchte ich diese Zeichen in einer Datei abspeichern, damit man sie später wieder abrufen kann. Jedoch gehen diese eben verloren wenn ich es in eine Datei abspeichere des Typs "Textfile"... und "file of widestring" ist ja nicht machbar... Ich hab mir überlegt die Datei so zu deklarieren dass sie ein Array of Char Zeichen darstellt.. aber irgendwie hab ich das auch nicht wirklich hinbiegen können. Vielleicht kann mir einer sagen ob dass der richtige Weg ist und ich mir da nur mehr Mühe geben sollte oder ob es eine andere Methode für sowas eigentlich recht einfaches gibt?

mfg
Domi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Unicode in eine Textfile Speichern

  Alt 5. Okt 2006, 21:18
Du könntest sie binär in eine Datei speichern, in einen Datenbank oder als RTF.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Unicode in eine Textfile Speichern

  Alt 5. Okt 2006, 21:21
Oder du nimmst eine Unicode-fähige Komponente, wie z.B. TntMemo aus den TNTControls. Damit einfach SaveToFile (wie bei ner normalen Memo auch), und man hat das Unicode-Gedöns in einer Textdatei.

TntStrings/TntStringlist kann man natürlich auch nehmen.
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#4

Re: Unicode in eine Textfile Speichern

  Alt 5. Okt 2006, 21:28
es gibt IMHO da 2 Möglichkeiten:
a) ne 3rd-Party-Komponente/Klasse nehmen, die das kann
b) selber machen

zu b) musst du aufpassen, dass je anch Unicode-Variante auch mal 16Bit nötig sind(UTF8<-->UTF16). Also n array of Char geht nur bedingt(UTF8 mit aufpassen bei nicht ASCII-Zeichen)... ggf. is auch ne Art Header möglich(das Teil hat noch irgend n Namen, weiß aber nicht mehr welchen), der die Art der Codierung angibt...

Wenn ich Blödsinn rede, korrigiert mich. Hab mit Unicode bisher relativ wenig gemacht...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Unicode in eine Textfile Speichern

  Alt 5. Okt 2006, 22:05
Zitat von r2c2:
ggf. is auch ne Art Header möglich(das Teil hat noch irgend n Namen, weiß aber nicht mehr welchen), der die Art der Codierung angibt
BOM = Byte Order Mark

Siehe auch: http://de.wikipedia.org/wiki/Byte_Order_Mark

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Domi

Registriert seit: 5. Okt 2006
3 Beiträge
 
#6

Re: Unicode in eine Textfile Speichern

  Alt 6. Okt 2006, 00:01
Puh.. danke für die vielen Antworten... leider hab ich ehrlich gesagt das meiste nicht verstanden und mich jetzt nochmal daran versucht mit Array of Widechar und naja hat geklappt . Also dann danke ich auf jeden Fall! Bin ich schonmal einen Schritt weiter .
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Unicode in eine Textfile Speichern

  Alt 6. Okt 2006, 06:45
Mit welchen Komponenten verwaltest/verarbeitest du die Texte den?
Markus Kinzler
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Unicode in eine Textfile Speichern

  Alt 6. Okt 2006, 09:24
Interessante Frage, Komponenten, die mit Unicode umgehen können, dürften auch Möglichkeiten haben diesen auf die Platte zu bringen.

Ansonsten geht es auch ohne zusätzlichen Aufwand mit den Delphi Hausmitteln. TFileStream frisst so ziemlich alles und mit UTF8Encode bzw. UTF8Decode kann man es wie normale Ansistrings behandeln. Dann funktioniert auch die Textfile.
  Mit Zitat antworten Zitat
Domi

Registriert seit: 5. Okt 2006
3 Beiträge
 
#9

Re: Unicode in eine Textfile Speichern

  Alt 6. Okt 2006, 11:19
Hi, tut mir Leid ich bin noch nicht soo erfahren mit Delphi und all seinen Funktionen, mach es erst seit so 1 1/4 Jahr halt in der Schule!

Nun gut also ich mache es so momentan,dass ich mir eben die TNTEdit felder reingeholt habe, weil ohne Widestrings geht es eben doch nicht und dann wird alles über Umwege die ja jetzt nicht soo wichtig sind dann in eine file of Widechar reingesteckt... also falls es wen interessiert das sieht beim speichern bei mir so aus:

Delphi-Quellcode:
    
    Liste.reset_next;
    AssignFile(Speicher,'Vok.txt');
    Rewrite(Speicher);



    for i:= 1 to Wortlaenge do
    begin
      wort[i] := (Liste.getelement as TVokpaar).GibRussisch[i];
      Write(Speicher,wort[i]);
    end;
    for i:= 1 to Wortlaenge do
    begin
      wort[i] := (Liste.getelement as TVokpaar).GibDeutsch[i];
      Write(Speicher,wort[i]);
    end;
    case (Liste.getelement as Tvokpaar).GibStatus of
      gekonnt: wort[1] := '1';
      selten: wort[1] := '2';
      nie: wort[1] := '3';
    end;
    Write(Speicher,wort[1]);
Ist wahrscheinlich nicht die eleganteste Art und Weise, aber das meiste andere übersteigt meine bekannten Kreise... Aber ich denke Streams werde ich noch demnächst lernen... irgendwann mal . Achja falls sich wer fragt, wofür das Programm ist, dass soll mal einen Russisch Vokabeltrainer darstellen. Ist auch schon fast bereit dazu angewendet zu werden .

mfg
Domi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

Re: Unicode in eine Textfile Speichern

  Alt 8. Okt 2006, 00:00
Über die Suche hätte man zwar den Grund auch nochmal finden können, aber ich sag's gern nochmal ._.

TextFile ist nicht unicodefähig
(das hast'e ja schon mitbekommen)

Der Grund:
Write/WriteLn nimmt zwar einen WideString (Unicode) an, wandelt dieses aber in Ansi um, bevor es in der Datei gespeichert wird.
Bei Read/ReadLn ist es dann andersrum.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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