File io 在ada中读取自由格式输入的文件
我需要从如下文件中获取输入:File io 在ada中读取自由格式输入的文件,file-io,ada,File Io,Ada,我需要从如下文件中获取输入: keyword1 123456a keyword2 small hard sour keyword2 midsize firm bland keyword2 large hard sour keyword1 2234567 keyword1 3234567 keyword1 4234567 keyword2 small soft sour keyword1 123456a
keyword1 123456a
keyword2 small hard sour
keyword2 midsize firm bland
keyword2 large hard sour
keyword1
2234567
keyword1 3234567
keyword1 4234567
keyword2
small
soft
sour
keyword1 123456a
keyword2 midsize hard bland
keyword1 123456A
keyword2 large firm sweet
keyword1 AAAAAAA
keyword2 midsize hard bland
keyword1 BBBBBBA
keyword2 large firm sweet
假设文件名为test.dat,如下所示:
keyword1 123456a
keyword2 small hard sour
keyword2 midsize firm bland
keyword2 large hard sour
keyword1
2234567
keyword1 3234567
keyword1 4234567
keyword2
small
soft
sour
keyword1 123456a
keyword2 midsize hard bland
keyword1 123456A
keyword2 large firm sweet
keyword1 AAAAAAA
keyword2 midsize hard bland
keyword1 BBBBBBA
keyword2 large firm sweet
我需要检测关键字1并读取接下来的七个字符串,然后我需要检测关键字2并读取接下来的三个字符串,依此类推。正如您所看到的,在文件中的任何字符串前后都可以有任意数量的空白
我是艾达的新手。请帮忙。看看GNAT.AWK。这可能是自动执行此解析的最简单方法之一。比如:
procedure On_Keyword1 is
begin
Put_Line ("Field1 = " & GNAT.AWK.Field (2));
end On_Keyword1;
procedure On_Keyword2 is
begin
Put_Line ("Word1=" & GNAT.AWK.Field (2)
& " Word2=" & GNAT.AWK.Field (3)
& " Word3=" & GNAT.AWK.Field (4));
end On_Keyword2;
GNAT.AWK.Register (1, "Keyword1", On_Keyword1'Access);
GNAT.AWK.Register (1, "Keyword2", On_Keyword2'Access);
你需要什么样的帮助?到目前为止,您尝试了什么?您遇到了什么问题?我想逐行读取,然后用空格分隔符标记字符串,但两个字符串之间可以有任意数量的空格。这是一个合理的开始。
Ada.Strings
中有一些函数,比如Index
可以用来查找模式(或非空格字符)的索引等。