Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Delphi Inhalt einer TStringList in ein dynamisches String Array (https://www.delphipraxis.net/133577-inhalt-einer-tstringlist-ein-dynamisches-string-array.html)

himitsu 5. Mai 2009 10:13

Re: Inhalt einer TStringList in ein dynamisches String Array
 
nein, WideStrings werden von der CompilerMagic an die WinAPI weiterrereicht und dann auch automatisch reservier/freigegeben, allerdings besitzen sie keine Referenzzählung,


also bei
Delphi-Quellcode:
Var S, S2: WideString;

S := S2;
wird nicht nur ein winziger Referenzzähler verändert, so wie bei Ansistring,
sondern es wird eine komplett neue Kopie des gesamten Strings angefertigt und an S übergeben.


[add]
Length wird sozusagen an SysStringLen weitergeleitet (wobei das optimiert wurde, da kurz vor dem OLEString die Größe steht, also wird diese einfach direkt ausgelesen und durch 2 geteilt, da Größe in Byte)

und der Rest wird an SysAllocStringLen, SysReAllocStringLen und SysFreeString
weitergeleitet,
also wenn eine WideString-Variable initialisiert/finalisiert oder irgendwo verändert wird

sirius 5. Mai 2009 10:20

Re: Inhalt einer TStringList in ein dynamisches String Array
 
Man könnte auch sagen, bei widestrings ist der imaginäre Referenzzähler immer 1. Und sobald eine Variable vom Typ WideString ihre Gültigkeit verliert wird der String freigegeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 Uhr.
Seite 2 von 2     12   

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