Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Delphi 2009: String, UnicodeString oder WideString? (https://www.delphipraxis.net/148286-delphi-2009-string-unicodestring-oder-widestring.html)

romber 26. Feb 2010 17:27


Delphi 2009: String, UnicodeString oder WideString?
 
Hallo!

Nachdem ich hier im Forum einige wiedersprechende Äußerungen zu den o.g. Datentypen gelesen habe, bin ich jetzt ein wenig verwirrt und möchte endlich wissen, welches von o.g. Datentypen ich verwenden soll. Ich benutze Delphi 2009 und arbeite an einem Projekt, dass mit Unicode-Daten zu tun hat. Z.B. bekomme ich von einem HTTP-Webservice die Unicode-Daten geliefert, lade diese in einem String und gebe für weitere Bearbeitung weiter. Welchen der o.g. String-Typen soll ich dabei deklarieren? Welche Unterschied zwischen String und UnicodeString und String und WideString in Delphi 2009?

daywalker9 26. Feb 2010 18:24

Re: Delphi 2009: String, UnicodeString oder WideString?
 
[edit] About String Types
A string represents a sequence of characters. Delphi supports the following predefined string types.

String types

Type Maximum length Memory required Used for
ShortString
255 characters
2 to 256 bytes
Backward compatibility

AnsiString
~2^31 characters
4 bytes to 2GB
8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, Unicode characters, etc.

UnicodeString
~2^30 characters
4 bytes to 2GB
Unicode characters, 8-bit (ANSI) characters, multi-user servers and multi-language applications

WideString
~2^30 characters
4 bytes to 2GB
Unicode characters; multi-user servers and multi-language applications. UnicodeString is generally preferred to WideString, except for COM applications.

romber 26. Feb 2010 19:04

Re: Delphi 2009: String, UnicodeString oder WideString?
 
Vielen Dank für die schnelle Antwort!
Diese Informatinen habe ich auch gefunden. Was ist dann mit dem einfachen String?
Wie ich schon erwähnt habe, habe ich bereits viele Informationen über diese Typen gelesen, manchmal widerspachen sich die Informationen. Deswegen brauche ich jetzt eine konkrete Aussage. Was muss ich in meinem Fall benutzen: String, UnicodeString, WideString oder sonst noch was?

daywalker9 26. Feb 2010 19:10

Re: Delphi 2009: String, UnicodeString oder WideString?
 
On the Win32 platform, the compiler interprets string (when it appears without a bracketed number after it) as UnicodeString.

Wenn du zB

ANSI-String

Delphi-Quellcode:
var
 MeiNString : String[200];

UnicodeString

Delphi-Quellcode:
var
 MeiNString : String;

romber 26. Feb 2010 19:18

Re: Delphi 2009: String, UnicodeString oder WideString?
 
Also string?

daywalker9 26. Feb 2010 19:20

Re: Delphi 2009: String, UnicodeString oder WideString?
 
Ja, damit machst du nichts falsch. Unicode Daten machen kein Problem mit dem typ "string"

romber 26. Feb 2010 19:20

Re: Delphi 2009: String, UnicodeString oder WideString?
 
Vielen Dank!

cookie22 26. Feb 2010 19:50

Re: Delphi 2009: String, UnicodeString oder WideString?
 
Zitat:

Zitat von daywalker9
On the Win32 platform, the compiler interprets string (when it appears without a bracketed number after it) as UnicodeString.

Wenn du zB

ANSI-String

Delphi-Quellcode:
var
 MeiNString : String[200];

UnicodeString

Delphi-Quellcode:
var
 MeiNString : String;

dein ansi string ist aber ein short string.

ein ansi string ab d 2009 sieht so aus:
Delphi-Quellcode:
var
 MeiNString : AnsiString;

himitsu 26. Feb 2010 20:20

Re: Delphi 2009: String, UnicodeString oder WideString?
 
programmintern:

die "systemabhängigen" Typen

> String, Char, Integer, Cardinal

somit paßt es sich immer an den Compiler an
(z.B. ist der String bis D2007 ein AnsiString und ab D2009 ist es ein UnicodeString)


programmextern oder wenn man geziehlt einen bestimmten Typen benötigt:

(also beim Speichern, Datenübertagung oder der Komunikation mit DLLs, COM-Services und anderen externen Interfaces)

die statischen Typen

> ShortString (String[x]), AnsiString, WideString, UnicodeString, LongInt (und Co.), PAnsiChar, PWideChar

alles entsprechend der Anforderungen an die Daten und Speicherveraltung

ATS3788 3. Nov 2014 16:20

AW: Delphi 2009: String, UnicodeString oder WideString?
 
Ich weiß das dies ein alter Eintrag ist,
aber es passt ganz gut.

ein string wurde früher so gespeichert

Byte 1 die länge des strings
Byte 2 fortlaufend der Inhalt des strings
OK

wie ist das Heute Mit string und WideString

bei string
Byte1 + Byte 2 länge des strings
Byte 3 + Byte 4 fortlaufend der Inhalt des strings

ist das richtig ?

und wie wird ein Widestring gespeichert ?
was ist der Unterschied zum string ?

und wird der AnsiString wie der alte String gespeichert ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 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