从Ada中的文件读取记录?
每当我从Ada中的文件中读取记录时,总是会收到一个错误。该程序的目标是(从文件中)读取一个整数,该整数表示需要记录的项目数,即姓氏(最多)12个字母,名(最多)12个字母和浮点值,然后将其存储到记录中 这是来自阿达吉德: record2.adb:32:04:调用中的参数列表无效(详细信息请使用-gnatf) 我的代码:从Ada中的文件读取记录?,ada,Ada,每当我从Ada中的文件中读取记录时,总是会收到一个错误。该程序的目标是(从文件中)读取一个整数,该整数表示需要记录的项目数,即姓氏(最多)12个字母,名(最多)12个字母和浮点值,然后将其存储到记录中 这是来自阿达吉德: record2.adb:32:04:调用中的参数列表无效(详细信息请使用-gnatf) 我的代码: info1.dat的内容(没有额外的空格或行,仅从“L”到“0”): 我的问题是Get_行,我知道。LastName用空格填充,填充了12个字符,FirstName也是如此。然
info1.dat的内容(没有额外的空格或行,仅从“L”到“0”):
我的问题是Get_行,我知道。LastName用空格填充,填充了12个字符,FirstName也是如此。然后,一般来说,它的值采用浮点值。我到底做错了什么?基本上,您使用读取字符串的Get_行来尝试读取记录的实例 因为这看起来像是家庭作业(没关系),我给你一个提示: 尝试逐个读取字段
这还不足以完全解决您的问题,但它会让您走得更远,从这一点上,您可以尝试解决其余问题。我将使用
get\u Line
读取整行,然后从结果字符串中读取字段。
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;
LastName FirstName 4.00