从Ada中的文件中读取记录?

时间:2011-11-26 06:18:29

标签: ada

每当我从Ada中的文件中读取记录时,我总是会收到错误。该程序的目标是(从文件)读取一个整数,该整数是需要记录的项目数,由(最多)12个字母组成的姓氏,由(最多)12个字母组成的名字,和浮点值,然后将它们存储到记录中。

这是来自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 个答案:

答案 0 :(得分:1)

基本上,您正在使用Get_Line(读取字符串)来尝试读取记录的实例

因为这看起来像是家庭作业(没关系),我会给你一个提示:

尝试单独阅读字段。

这还不足以完全解决你的问题,但它会让你更进一步,从那时起你可以尝试解决剩下的问题。