Thema: Delphi String-Klasse?

Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#12

Re: String-Klasse?

  Alt 4. Sep 2005, 12:40
Zitat von jbg:
Zitat:
C-String, Delphi-AnsiString, LPSTR (PChar)
Das ist schonmal nur ein Typ.
Aua, aufhören. Das tut echt weh!
Vielleicht solltest du dir doch lieber nochmal das Wissen anlesen. C-String und PChar sind gleich, ja - mein Fehler -, aber der Delphi-AnsiString ist ein komplett anderes und compilergestütztes Konstrukt.

+ 2 Stringtypen

Zitat von jbg:
Zitat:
BSTR, Delphi-WideString, LPWSTR (PWideChar)
Und das ein weiterer
Ja, ein weiterer Irrtum. BSTR ist genau wie der Delphi-WideString ein "counted string", wobei wie beim Delphi-WideString die Offsets negativ sind. Unterschied ist die interne Struktur die an diesen negativen Offsets liegt. Im Falle von BSTR ist dies nur ein DWORD. Beim Delphi-WideString (und auch AnsiString) sind dies noch mehr Member, Reference Count und Reservierter Speicher, soweit ich mich entsinne. Es handelt sich also tatsächlich um 3 verschiedene Stringtypen.
Übrigens: BSTR != OLESTR. LPOLESTR entspricht LPWSTR!

+ 3 Stringtypen

Zitat von jbg:
Zitat:
Delphi-ShortString
Und noch einer.
Richtig, ist auch ein anderer Typ.

+ 1 Stringtyp

Zitat von jbg:
Zitat:
UNICODE_STRING, STRING, ANSI_STRING, OEM_STRING ...
Toll, dann füg auch noch MYFAVORITE_SELF_CREATED_STRING hinzu.
Polemik bringt nichts, denn diese Typen wirst du sogar in deinem PSDK finden. Dort ist zB UNICODE_STRING als LSA_UNICODE_STRING deklariert.

+ 1 Stringtyp (weil sich die Pointertypisierung nur unterscheidet bin ich mal großzügig)

= 7 Stringtypen

Wohlgemerkt, dies sind nur jene, die mir auf die Schnelle einfielen. Es könnte noch andere geben.

Zitat von jbg:
Und wenn man es genau nimmt, dann gibt es nur einen Typ von String. Alles andere ist reine Interpretation.
Aua.

Zitat von tommie-lie:
Und wenn Olli mit C-String den Typ String aus der C++-Standardbibliothek meint, ist das wieder was anderes als der Delphi-AnsiString und der LPSTR.
Nein, ich meinte tatsächlich den der PChar entspricht. War mein Fehler. Ansonsten hätte ich std::string geschrieben. Ist aber eine Klasse genau wie CString aus den MFC oder wxString aus den wxWidgets.

Zitat von tommie-lie:
Zugegeben, zu BSTR fällt mir im Augenblick nichts ein
Ist counted.

Zitat von malo:
Wenn man es genau nimmt, dann gibt es keine Strings. Strings werden in Delphi nur durch Compilermagic erstellt. Im Grunde sind das alles nur Char-Arrays
Dann darf man es aber nicht zu genau nehmen

Zitat von Gandalfus:
Das ist kein Problem sondern ein Feature.
  Mit Zitat antworten Zitat