Code:
repeat
zeichen := Copy(s, 1, 1);
nick := nick + zeichen;
while s[1] <> ' ' do
delete(s, 1, 1);
until s = '';
1. Repeat und While Schleifen zu mischen macht alles von der Logik her schwerer verständlich.
2. Was macht deine Variable Zeichen
Die ist lokal deklariert und wird nicht benutzt. Doch, sie wird ja doch benutzt, aber Dein Nick nicht. Ja, das meinte ich mit schwer verständlich. Da sieht man mal wie man mit 3 Variablen und 2 Schleifen in die Irre geleitet wird. Deshalb heute nicht mehr.
Nur noch soviel:
Wegen der Lesbarkeit verwende ich auch lieber mehr Variablen als weniger, aber dieses Bsp. ist ein klassischer Fall wie mans nicht machen sollte (meiner Meinung nach).
TIP: Übernehme mein Beispiel 1:1 und setze
innerhalb der Repeat und While Schleifen direkt unter das delete (st,1,1) ein
Bei mir ist noch ein Fehler, aber der ist schnell gefunden, hoffentlich aber von Dir.
Die While Schleife würde dann so aussehen:
Code:
while s[1] <> ' ' do begin
delete(s, 1, 1);
showmessage ('*'+st+'*');
end;
Dann siehst Du genau was passiert. Auch die ** machen einen Sinn, zumindest wenn man mit Lerzeichen hantiert.