Einzelnen Beitrag anzeigen

coly546

Registriert seit: 10. Mär 2008
35 Beiträge
 
RAD-Studio 2009 Arc
 
#1

Konsolenanwendung: Leerzeichen minus String rechnen.

  Alt 7. Okt 2008, 21:17
Hi,
ich habe folgende Tabelle "gestaltet":

Delphi-Quellcode:
Procedure P_Stunden_ausgeben;
var
  i: Integer;

begin
//1. Zeile
write(' ');write(#218);for i:=1 to 50 do write(#196);writeln(#191);
//2. Zeile
write(' ');write(#179);write(' STUNDENPLAN:');for i:=1 to 37 do write(' ');
writeln(#179);
//3. Zeile
write(' ');write(#179);for i:=1 to 14 do write(' ');write(#218);
for i:=1 to 10 do write(#196);write(#194);for i:=1 to 10 do write(#196);
write(#194);for i:=1 to 10 do write(#196);write(#194);
for i:=1 to 10 do write(#196);write(#194);for i:=1 to 10 do write(#196);
writeln(#191);
//4. Zeile
write(' ');write(#179);for i:=1 to 14 do write(' ');write(#179);
write('Montag');write(' ');write(#179);write('Dienstag');
write(' ');write(#179);write('Mittwoch');write(' ');write(#179);
write('Donnerstag');write('');write(#179);write('Freitag');
write(' ');writeln(#179);
//5. Zeile
write(' ');write(#179);for i:=1 to 14 do write(' ');write(#195);
for i := 1 to 54 do write(#220);writeln(#180);
//6. Zeile
write(' ');write(#179);for i:=1 to 14 do write(' ');write(#195);
for i:=1 to 10 do write(#196);write(#197);for i:=1 to 10 do write(#196);
write(#197);for i:=1 to 10 do write(#196);write(#197);
for i:=1 to 10 do write(#196);write(#197);for i:=1 to 10 do write(#196);
writeln(#180);
//7. Zeile
write(' ');write(#179);write(' 1. Stunde:');write(' ');write(#179);
write(Tag[1,1]);for i:=0 to [color=#ff0000]Anzahl_freier_Zeichen[/color]write(#179);


readln;

Das Problem ist, dass sich die Tabelle verzieht, sobald ein Feldinhalt bei zum Beispiel bei Montag(1.Stunde) größer als 10 Zeichen ist.
Ideal wäre, wenn ich den "Freiraum" berechen könnte. So das ich dann wo Anzahl_freier_Zeichen eine Variable hätte die immer die noch von 10 verbleibenden Zeichen angibt. Das habe ich auch schon mit folgender Prozedur probiert:

Delphi-Quellcode:
procedure P_Spalte(Text:String);
var i:Byte;


begin
 if Tag[1,1]=('') then
 for i:=1 to 10 do write(' ')
 else
 for i:=1 to (10-Anzleer) do write(' ');
end;
  Mit Zitat antworten Zitat