Ja, man könnte jeden Spezialfall mit einer eigenen Abfrage programmieren. Ich persönlich hasse das aber. Lieber die Funktionen so allgemein, kurz und schnell wie möglich halten.
Zb. in meinem obigem Vorschlag würde bei Text = '';
while (S^ <> #0) ... do;
schon zuschlagen. D.h. eine einzigste Abfrage. Dann weiter:
Delphi-Quellcode:
D := S;
while (D^ <> #0) do ;
eine Zuweisung -> "MOV Reg1, reg2" und eine Abfrage wiederum.
Und am Schluß
SetString(Result, S,D - S);
eine Subtraktion "SUB ECX,EDX"und ein CALL _SetLength(EAX, EDX, ECX);
Damit ist der UNWAHRSCHEINLICHSTE Fall, das Text == '' ist, genügend abgedeckt. Viel wahrscheinlicher sind aber Strings <> '', und somit würde eine ständige vorherige und spezielle Abfrage auf Text = '' eher bremsen als sinnvoll sein.
Programmiere immer nur soviel wie absolut nötig ist, verkompliziere nicht die Logik mit Abfragen die vom Programmfluß eher am unwahrscheinlichsten sind. Als Resulat kommt eine Lösung heraus die man leicht versteht und gut optimiert und denoch kurz und bündig ist.
Momentan sehe ich echt keinen Grund bzw. weitere Möglichkeit meine Funktion weiter zu verbessern.
Gruß Hagen