Forum: Sonstige Fragen zu Delphi
by Uwe Raabe,
24. Sep 2015
Klar!
String-Typen (Delphi)
Interne Datenformate (Delphi) - Lange String-Typen
Die Länge in Zeichen eines Strings ist in x32- und x64 in den 4 Byte vor dem Inhalt abgelegt. Das allein beschränkt den String auf theoretisch maximal 4 Giga-Zeichen. Die max. ~2 GB Speicher sind eine Beschränkung des/der Compiler.
Forum: Sonstige Fragen zu Delphi
by Uwe Raabe,
24. Sep 2015
Auch unter 64 Bit ist der Speicherplatz für einen String auf 2 GB beschränkt, was ca. 2^30 Zeichen entspricht. Da beim Laden, wie auch beim Zugriff auf .Text, der gesamte Inhalt als String verwurstet wird, hat man hier eine natürliche Grenze erreicht. Die StringList könnte unter 64 Bit wohl noch mehr Daten aufnehmen, dann müssen die aber zeilenweise mit Add hinzugefügt werden. Alles, was den...
Forum: Sonstige Fragen zu Delphi
by Uwe Raabe,
24. Sep 2015
Das Array speichert aber auch nur Pointer auf die Strings. Der Speicher für alle Strings muss also auch nicht in einem Stück vorliegen.
Forum: Sonstige Fragen zu Delphi
by Uwe Raabe,
24. Sep 2015
Das hättest du aber einfacher haben können. Deine Implementierung ist weitestgehend identisch mit TStringList, lediglich das LoadFromFile und SaveToFile gehen etwas sparsamer mit dem Speicher um. In der bordeigenen StringList wird die Datei zunächst in einen lokalen Buffer gelesen und dann erst in die StringList übertragen. Das kann bei einer sehr großen Datei in 32-Bit schon mal zu einem...