2012-03-28 5 views
2

Nur Teil eines Codes hier, wo ich schreibe zwei Werte in eine Text Datei.Ada: Schreiben von Ausgaben Zahlen in einer Datei getrennt durch eine Registerkarte

Ada.Long_Float_Text_IO.Put (File => Output_File, Item => Out_2, Fore => 1, Aft => 4, Exp => 0); 
Ada.Text_IO.Put (Output_File, " "); 
Ada.Long_Float_Text_IO.Put (File => Output_File, Item => Out_3, Fore => 1, Aft => 4, Exp => 0); 

kann ich trennen diese Zahlen Out_2 und Out_3 von einem Raum wie im Code dargestellt. Die Ergebnisse geben (nach mehr Zahlen in den beiden Spalten zu schreiben):

-75.2340 421.5700 
1256.0000 15.4700 
-4568.9800 -118.2800 
3784.2100 0.0000 

Ich möchte wissen, ob es einen Weg gibt, eine Registerkarte Abstand zu spezifizieren, so dass ich so etwas wie dies in meinem Text haben kann Datei:

-75.2340  421.5700 
1256.0000 15.4700 
-4568.9800 -118.2800 
3784.2100 0.0000 

So die Zeichen steuern erzeugt die obige Ausrichtung?

Vielen Dank ...

Antwort

3

Für eine Registerkarte gibt es die obsolescent ASCII.HT oder Ada.Characters.Latin_1.HT.

Oder Sie könnten den Width Parameter zu Ada.Long_Float_Text_IO.Put und Freunde verwenden.

Edit: Es gibt keinen Width Parameter für echte Ausgabe! Sie könnten eine große Fore verwenden, die die Ausgabe effektiv rechtsbündig würde.

+0

@ Simon Wright Ja * Breite * funktioniert nur für Ganzzahlen und Aufzählungstypen. – yCalleecharan

+0

@ Simon Wright Ihre Lösung mit der 'Breite' scheint besser zu sein, da wir * Ausrichtung * auch mit der Dezimalstelle haben können. – yCalleecharan

2

Statt dieser dazwischen:

Ada.Text_IO.Put (Output_File, " "); 

Rufen Sie die Set_Col Verfahren statt, die die Ausgangsleitung Position in die angegebene Spalte bewegt. Z.B.

Ada.Text_IO.Set_Col(Output_File, 13); 
+0

@ Marc C Danke. Ich muss nur einen passenden Wert für die Spaltennummer finden. 1 Stimme nach oben. – yCalleecharan

Verwandte Themen