Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File io 在ada中读取自由格式输入的文件_File Io_Ada - Fatal编程技术网

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
可以用来查找模式(或非空格字符)的索引等。