![]() |
Der String
hoi,
kann mir jemand erklären wie der typ(?) aufgebaut ist? wieso heisst er "string" und nicht "TString" und wie sieht der aufbau des typs aus? Da er nicht ordinal ist frag ich mich wie das ganze aussieht |
Re: Der String
string ist Original-Pascal, deshalb nicht TString.
Damals war es ein ShortString also das erste Byte eine Laengenangabe. Der moderne Delphi-String ist eigentlich eher eine Klasse. Er wird immer dynamisch alloziiert (automatisch durch den Compiler). Der Zeiger auf den String zeigt nicht auf den Anfang des alloziierten Bereichs sondern zwei Integer weiter. dort steht ein C-String, also die Zeichen mit einem abschliessenden #0-Zeichen. Die beiden verborgenen Integer enthalten die Laenge des strings (das was Length zurueckliefert) und einen Referenzzaehler. Bei einer Zuweisung S2 := S1; wird nur der referenzzaehler erhoeht. Erst wenn S2 veraendert wird, wird eine eigene Kopie angelegt. Deshalb ist auch ein Zugriff wie S2[3] eher ein Zugriff auf eine property, denn es wird intern eine Funktion aufgerufen. Das ist auch deshalnb noetig, da der Leerstring durch einen nil-Pointer repraesentiert wird. |
Re: Der String
Hallo Pseudemys Nelsoni,
Zitat:
Ein Pascal String ist eigentlich nichts anderes als ein "array of Char", nur das man sich damals gedacht hat, man kommt mit 255 Zeichen aus und hat die Länge der Zeichenkette in Byte 0 des Strings versteckt. Da aber ein Byte nur den Maximalwert 255 annehmen kann, waren Pascal Strings schnell am Ende im Gegensatz zu C Strings. Die begannen bei dem Byte 0 und waren beendet wenn eine binäre 0 gefunden wurde. Heute sieht das anders aus, mit Huge Strings, aber das kannst Du selber nachlesen … bye Claus |
Re: Der String
danke für die ausführliche erklärung ;)
btw: ich fragte nicht wieso "string" "string" heisst sondern warum das "T" nicht davor steht, da es doch ein typ ist.. mfg ^^ |
Re: Der String
Hallo Pseudemys Nelsoni,
weil man es damals nicht so genau genommen hat? bye Claus |
Re: Der String
Es heisst string, weil es ein keyword von Pascal ist.
Das T vor Typen ist sowieso nur Gewohnheit, die von Borland initiiert wurde. Es hat keine semantische Bedeutung in Delphi. |
Re: Der String
Zu Roberts gelungenen Ausführungen gibt es
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz