Forum: Die Delphi-IDE
by Uwe Raabe,
1. Dez 2012
Laut Dokumentation kann ein String in Delphi maximal 2 GB belegen - unabhängig von eventuell höherem Speicherausbau oder 32/64-Bit Compiler. Die Anzahl der möglichen Zeichen und somit der maximale Wert für SetLength ergibt sich daraus. Dabei muss der benötigte Speicher für String-Verwaltung (Länge, Referenz-Zählung) evtl. noch berücksichtigt werden.
Forum: Die Delphi-IDE
by Uwe Raabe,
1. Dez 2012
Nur eine Vermutung: die automatische Referenzzählung bei Strings wirkt nur bei direkten Zuweisungen? Daher arbeitet das SetLength mit dem übergebenen StringPointer (das TStream.Read macht das sowieso).