AGB  ·  Datenschutz  ·  Impressum  







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

Unicode in Stream speichern

Ein Thema von backdraft · begonnen am 15. Okt 2009 · letzter Beitrag vom 17. Okt 2009
Antwort Antwort
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
333 Beiträge
 
Delphi 11 Alexandria
 
#1

Unicode in Stream speichern

  Alt 15. Okt 2009, 21:48
Hallo zusammen,

ich bräuchte mal nen Tip, von jemanden, der sich mit Unicode ein bisschen mehr auskennt wie ich.

Ich muss einen UnicodeString in eine Datei speichern.
Für WideString habe ich bis jetzt folgendes verwendet:

Delphi-Quellcode:
  
Write(PWideChar(aValue)^, Length(aValue) * SizeOf(WideChar));
für Unicode würde ich es so umschreiben:

Write(PUnicodeChar(aValue)^, Length(aValue) * SizeOf(UnicodeChar)); Nur das es kein PUnicodeChar und UnicodeChar gibt

...

Mist, falsches Topic, bitte in richtiges Topic verschieben ...
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unicode in Stream speichern

  Alt 15. Okt 2009, 22:50
Delphi 2007 kennt keinen UnicodeString.

Von welchem Typ hat denn nun dein "UnicodeString" wirklich?

Ab Delphi2009 gibt es den Typen UnicodeString, welcher standardmäßig gleichbedeutend mit String ist
und diesen kannst du dort wie deinen WideString behandeln.

Denn auch dort gibt es keinen UnicodeChar und PUnicodeChar ... das sint und bleiben WideChar und PWideChar.

Von der Datengröße her entspricht der UnicodeString (UCS2 / UTF-16) dem WideString.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
333 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Unicode in Stream speichern

  Alt 16. Okt 2009, 07:34
Geht um Delphi 2010. Ok, wenn ich es wie WideString behandeln kann, kann ich ja die Routine davon nehmen.
Vielen Dank für die Info...

Oliver
Oliver
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Unicode in Stream speichern

  Alt 16. Okt 2009, 09:50
vorhin stand aber noch nichts von 2010

nja, der UnicodeString ist praktisch eine Mischung aus WideString und AnsiString.

* vom Inhalt ist es ein "WideString"
- also Unicode (UCS2 bzw. UTF-16)
* von der Speicherverwaltung arbeitet er wie ein AnsiString
- also er läuft über den Delphi-Speichermanager und verfügt über eine Referenzzählung
- der WideString ist nur eine Kapselung/Umleitung zum OLE32-String

(der WideString ist/war also eine für mein Empfinden eine Fehlkonstruction und ich hätte ihn schon von Anfang an gern wie einen Ansi-/UnicodeString umgersetzt gesehn ... und dafür dann einen "auffälligen" extra Typen für den OLE-String)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

Re: Unicode in Stream speichern

  Alt 16. Okt 2009, 11:21
Zitat von himitsu:
also Unicode (UCS2 bzw. UTF-16)
UnicodeString ist als UTF16 implementiert. UCS2 wird von ihm nicht unterstützt, da bei Konvertierungen immer UTF16 von/nach ANSI/UTF8/... genutzt wird.
  Mit Zitat antworten Zitat
17. Okt 2009, 07:56
Dieses Thema wurde von "alzaimar" von "Tutorials und Kurse" nach "Object-Pascal / Delphi-Language" verschoben.
Ist kein Tutorial, sondern eine Frage
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 19:46 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