Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
30. Mär 2022
Das tut es ja jetzt schon, wenn man es entsprechend lädt. Also nicht mit Zuweisung von Text, CommaText oder LoadFromFile bzw. LoadFromStream. Die würden in der Tat 64-Bit Strings erfordern.
Eben, das knallt dann halt. Das ist aber meiner Meinung nach durchaus OK. Es ist eigentlich nicht zu rechtfertigen, dass man, nur um solche Sonderfälle abzudecken, den ganzen Unterbau auf 64-Bit...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
30. Mär 2022
Die Frage wollte ich eigentlich auch stellen. Allein schon das Hantieren mit 2GB Strings ist schon heikel genug. Bei jedem Copy-on-Write werden da mal eben weitere 2GB am Stück belegt. Einige Dinge sollte man mit so großen Strings einfach nicht machen. 64-Bit hin oder her, das ist einfach Verschwendung und schreit schon wegen der Performance nach einem anderen Ansatz. Computer sind zwar...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Mär 2022
Wenn du dich hierauf beziehst:
dann betrifft dieser Aufwand natürlich Embarcadero, sollten sie irgendwann mal 64-Bit-Strings unterstützen wollen. Für den Anwender (also uns) sollte das weitestgehend transparent sein.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Mär 2022
Da ist in der Tat was dran. Rein von der Speicherstruktur sehe ich da kein wirkliches Hindernis. Allerdings gibt es etliche Stellen im Source, bei denen implizit eine String-Länge und auch die Indizierung mit 32-Bit angenommen wird. Das ist ein nicht zu unterschätzender Aufwand, unweigerlich begleitet von potentiell signifikanten Fehlerquellen.
Übrigens ist WideString auch keine Alternative...
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
29. Mär 2022
Das fände ich jetzt aber sehr unfair gegenüber den anderen Anwendungen.
Forum: Algorithmen, Datenstrukturen und Klassendesign
by Uwe Raabe,
28. Mär 2022
Das ist teilweise immer noch so: Platform-dependent integer types
LongInt entspricht bei 32-Bit und bei 64-Bit Windows einem 32-Bit Wert, bei 64-bit POSIX (incl. iOS und Linux) aber einem 64-Bit Wert. Wie Sebastian schon sagte, hat man sich da an den entsprechenden Vorgaben seitens Intel und Microsoft orientiert. In C# ist ein int halt immer ein 32-Bit Wert - in Objective C aber nicht.