2011-11-26 132 views
0

每當我從Ada的文件中讀取記錄時,我總會遇到錯誤。該程序的目標是從一個文件中讀取一個整數,該整數是需要記錄多少項目,姓氏由(最多)12個字母組成,姓氏由(至多)12個字母組成的名字,和一個浮點值,然後將它們存儲到一條記錄中。從Ada的文件中讀取記錄?

這是從AdaGIDE:

record2.adb:32:04:呼叫無效的參數列表(使用-gnatf瞭解詳細信息)

我的代碼:


with Ada.Text_IO, Ada.float_Text_IO, ada.Integer_Text_IO; 
use Ada.Text_IO, Ada.float_Text_IO, ada.Integer_Text_IO; 

procedure Record2 is 

    TYPE Testrec IS 
     record 
     test1 : string (1..12); 
     test2 : string (1..12); 
     test3 : float; 
    END RECORD; 

    T: Testrec; 
    Lt: Integer; 
    numitem: integer; 

    random1: Ada.Text_IO.File_Type; 

begin -- Record2 

    Ada.Text_IO.Open(File => random1, Mode => Ada.Text_IO.In_File, Name => "info1.dat"); 

    Get_Line(File => random1, Item => Testrec, Last => Lt); 

    Put(T.test1); 
    Put(T.Test2); 
    Put(T.Test3); 

end Record2; 

info1.dat的內容(沒有多餘的空格或行,從「L」到「0」):

LastName FirstName 4.00 

我的問題是Get_Line,我知道。 LastName用空格填充,填充12個字符,FirstName也是如此。然後,浮動物通常被視爲其價值。我究竟做錯了什麼?

回答

1

基本上,你正在使用Get_Line,其內容,嘗試讀取記錄的一個實例。

因爲這看起來像一個家庭作業(這是好的),我會給你一個提示:

嘗試單獨閱讀領域。

這還不足以完全解決您的問題,但它會讓您更進一步,從這點開始,您可以嘗試解決其餘問題。

+3

我會使用'Get_Line'來讀取整行,然後從結果字符串中讀取字段。 –