AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Typ. Dateien und Unicode

Ein Thema von samy99 · begonnen am 26. Jan 2010 · letzter Beitrag vom 26. Jan 2010
Antwort Antwort
samy99

Registriert seit: 20. Sep 2008
2 Beiträge
 
Delphi 5 Professional
 
#1

Probleme mit Typ. Dateien und Unicode

  Alt 26. Jan 2010, 15:24
Guten Tag

Bin von einer älteren Delphi Version auf Delphi 2010 umgestiegen und bin daran einige meiner Projekte in die neue Version zu konvertieren.

Ich verwende dabei eine Record-Datei in die nun diverse Strings gespeichert werden sollen. Früher waren dies normale Ansi-Strings, neu sollten diese natürlich auch Unicode unterstützen.

Wenn ich so vorgehe, wie in diesem Code-Beispiel, werden die Unicode-Strings in Ansi-Strings umgewandelt, und dabei die weiteren Information zerstört bzw. gehen verlohren. String ist Unicode String[x] ist Ansistring...

Delphi-Quellcode:
type

 RTest = record
    Str1:String[20];
    Comts:String[30];
    id:longint;
  end;

Procedure Test(filename:string);
var
  f: file of RTest;
  a: RTest;
begin
  a.Str1:='Test1';
  a.Comts:='Test...';
  id:=1000;
  AssignFile(f,filename);
  Rewrite(f);
  Write(f,a);
  CloseFile(f);
end;
Wie kann ich einfach und sicher Unicode-Strings in einer solchen Datei speichern?

Vielen Dank für einen Tipp.

Mit freundlichen Grüssen
Sam
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Probleme mit Typ. Dateien und Unicode

  Alt 26. Jan 2010, 15:39
Tach

Zitat von samy99:
String[x] ist Ansistring
Njain, es ist ein ShortString.

Zwar gleiche "Char"-Größe, aber andere Speicherverwaltung.


Ein paar Threads dazu:
http://www.delphipraxis.net/internal...t.php?t=166999
http://www.delphipraxis.net/internal...t.php?t=164911
http://www.delphipraxis.net/internal...t.php?t=159877


Nativ hat Delphi/Pascal diesbezüglich also nichts für Unicode zu bieten, abgesehn von einem statischen WideChar-Array.


Eine andere Lösung wäre UTF8, so macht es Delphi selber. (die Klassennamen werden in der RTTI weiterhin als ShortString gespeichert, aber beim Auslesen werden diese als UTF8 behandelt und nach Unicode umgewandelt)
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:15 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