result := Format('%-3.3s %-28.28s %-5.5s', [S_Linie, S_Ziel, S_Laenge]);
Für Strings (%s) :
- = Linkbündig
*. = Minimallänge (aufgefüllt mit Leerzeichen)
.* = Maximallänge (mehr wird abgeschnitten)
Danke für die Erklärung - irgendwie ist die Hilfe da nicht so präzise
Aber was soll eigentlich ein Argumentfehler sein?
Ok - das war etwas laienhaft ausgedrückt.
Zitat:
Delphi-Quellcode:
SetLength(S_Text, 40);
S_Text := StringOfChar(#32, length(S_Text));
Das ist ein klein bissl sinnlos/doppeltgemoppelt.
S_Text := StringOfChar(#32, 40);
Ja und Nein! - Ich gib gern Längen nur einmal an. Wenn ich die Länge dann verändere, verändert sich automatisch alles mit.
(Ok - da es hier genau 40 sind, hätte man auch 40 reinschreiben können)
3 + 1 + 28 + 1 + 5 = 38
In #1 hatte ich 29 ausgerechnet, aber auch das reicht noch nicht.
Ich muss gestehen - ich hab mich selbst verhaut - ich bin auch auf weniger Stellen gekommen, als ich wollte.
Habs dann erst bemerkt, als ich den String an ein LCD-Modul gesendet hatte (daher auch die 40 = max. Zeichen pro Zeile)
(Man sollte so spät nicht mehr rechnen)
Ach ja, du kannst deine Variable "Länge" jetzt auch
S_Länge
nennen.
Das ist mir bekannt - aber ich kann mich damit nicht anfreunden - ich bleib lieber bei ae, ue oder oe
Und wieso sind Linie und Länge eigentlich keine Integer?
"Linie" und "Länge" werden aus einer StringGrid-Zeile gelesen. Daher der String.
Da ich es weiter dann auch als String benötige, wandle ich es nicht unnötigerweise erst in einen Integer.
Auserdem ist Linie keine Zahl - sondern eine Linien-Angabe einer U-Bahn