Thema: Delphi String länger als 4 KB

Einzelnen Beitrag anzeigen

choose

Registriert seit: 2. Nov 2003
Ort: Bei Kiel, SH
729 Beiträge
 
Delphi 2006 Architect
 
#9

Re: String länger als 4 KB

  Alt 22. Nov 2003, 18:04
Du hast die lokale Variable aString nicht initialisiert. Versuche aString:= ''; oder Initialize(aString); Erklärung: Zu einem String werden die Stringdaten selbst, ein Längenwert (Nein, nicht im Byte[0], dann wären ja nur 255 Zeichen möglich) und ein Referenzzähler abgespeichert. Der Ort, wo diese Daten zu finden sind, wird als "Pointer" in der Variable aString abgelegt. Wenn Du Code in der Form anotherString:= aString; schreibst, wird tatsächlich nur dieser "Pointer" kopiert und der Referenzzähler des Strings inkrementiert.
In Deinem Fall "zeigte" aString an eine zufällige Stelle, so dass die dort vorhanden Werte interpretiert und verändert worden sind (sehr gefährtlich ).

Edit: Habe mir gerade den ASM-Code angesehen: Strings scheinen immer initialisiert zu werden, auch das Kopieren wird in solchen Fällen korrekt abgefangen...
gruß, choose
  Mit Zitat antworten Zitat