Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
8. Feb 2011
Ich bin mir relativ sicher, daß der Compiler nichts komprimiert.
Denn wozu soll das gut sein?
- er bekommt die Strings unkomprimiert
- er muß die Strings dann unkomprimiert abspeichern/verarbeiten
- beim Vergleichen von Strings macht sich schwieriger (falls es mal gleiche gibt, welche man dann als einen String verwalten könnte)
- das Debuggen des Compilers verbessert es auch nicht, da dann...
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
7. Feb 2011
Das meinte ich ja grade.
Delphi merkt in diesem Fall, daß es die selben "Strings" sind und erzeugt deshalb nur die erste Stringkonstante, wärend nachvolgend immer wieder die selbe Konstante genutzt wird ... es ist also immer nur eine lokale Konstante, egal wie oft man sie verwendet. :zwinker:
PS: So ähnlich wie du hatte ich damals auch meinen Testquellcode erzeugt. :lol:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
7. Feb 2011
SL.Add('abc');
SL.Add('abc');
SL.Add('abc');
SL.Add('abc');
Ich meine es so: 40.000 Mal das Selbe oder Alle unterschiedlich?
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
7. Feb 2011
40000 Add's ... Doch nicht etwa alles mit der "selben" String-Konstante? :roll:
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
7. Feb 2011
Sobald ein + drin vorkommt, wird jeder Teil als einzelnes Stringliteral verwaltet.
1024 ... war nicht schon bei 255 Zeichen Schluß?
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
4. Feb 2011
Eventuell auch mal resourcestring oder eben direkt die Ressourcen verwenden.
Bei Letzerem hat man die Zeilen noch dichter beieinander ... z.B. direkt in einer Textdatei, welche dann einfach nur noch über eine .RC/.RES ins Programm gelinkt wird.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
3. Feb 2011
Ja, es ist weniger geworden.
Nein, es gibt keine schöne Lösung im Quellcode, außer die Strings auszulagern ... z.B. in die Ressourcen oder in andere Prozeduren.
procedure blablaA(Result: TStrings);
begin
...
Result.Add('blabla');
Result.Add('blabla');
Result.Add('blabla');
...