AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Delphi 2009: String, UnicodeString oder WideString?
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 2009: String, UnicodeString oder WideString?

Ein Thema von romber · begonnen am 26. Feb 2010 · letzter Beitrag vom 3. Nov 2014
Antwort Antwort
Seite 1 von 2  1 2      
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 18:27
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?
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 19:24
[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.
Lars
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#3

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:04
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?
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#4

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:10
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;
Lars
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#5

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:18
Also string?
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#6

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:20
Ja, damit machst du nichts falsch. Unicode Daten machen kein Problem mit dem typ "string"
Lars
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:20
Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von cookie22
cookie22

Registriert seit: 28. Jun 2006
Ort: Düsseldorf
936 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 20:50
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Delphi 2009: String, UnicodeString oder WideString?

  Alt 26. Feb 2010, 21:20
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
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#10

AW: Delphi 2009: String, UnicodeString oder WideString?

  Alt 3. Nov 2014, 17:20
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 ?
Martin MIchael
  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 14:08 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