我需要从这样的文件中获取输入:
让我们说文件名是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
我需要检测keyword1并读取接下来的七个字符串然后我需要检测keywords2并读取下三个字符串,依此类推。如您所见,文件中任何字符串前后都可以有任意数量的空格。
我是ada的新手。请帮忙。
答案 0 :(得分:1)
看看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);