Wenn rechtsbündige Formtierung für Dich OK ist, dann gibt es eine sehr einfache Lösung:
Const Spaltenbreite = 10;
Const NachKommaStellen=2;
begin
Writeln(‚Spalte 1‘:Spaltenbreite,‚Spalte 2‘:Spaltenbreite,‚Spalte 3‘:Spaltenbreite);
Writeln(1.234567:Spaltenbreite:NachKommaStellen,12345.234567:Spaltenbreite:NachKommaStellen,0.0:Spaltenbreite:NachKommaStellen);
Readln;
end.
Für linksbündige und zentrische Formatierungen müsstest Du Dir eine kleine FUnktion programmieren, die rechts bzw. vorne und rechts Leerzeichsn anängt bis eine bestimmte Länge erreicht ist.
Function TextFeldLinks(Var S:String,var Zeichen:Char, var Laenge:Integer):String;
Function TextFeldMitte(Var S:String,var Zeichen:Char, var Laenge:Integer:String);
Aufruf wäre dann:
Writeln(TextFeldLinks(‚Bla‘,10),TextFeldMitte(‚Bla‘));
Den Code der Funktion schreibe ich jetzt nicht mehr auf, das ist ausgesprochen simpel, und es gibt diverse Ansätze, meiner wäre vermutlich eine While Schleife (leicht zu lesen, kann man auch als Rekursion formulieren), die das übergebene Zeichen so lange hinten (für linksbündige Formatierung bzw. zentrisch: vorne und hinten) anhängt bis die Länge erreicht ist. Vorteil der eigenen Funktion ist auch, dass Du selbst bestimmen kannst was passieren soll, wenn der übergebene Text von vornherein zu lang ist.
Armin.
,