2011-11-26 89 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'来读取整行,然后从结果字符串中读取字段。 –