在Ada if语句中使用回车符和换行符
我有一个文本文件,我正在分裂成两个文件。我将逐行检查输入文件,查找CRLF,并使用if语句,在找到CRLF时执行操作。下面是使用CRLFs对输入文件的一个简短剪贴。我是Ada的新手,所以如果有更好的方法,请告诉我 如果可能的话,我希望能够在一个应用程序中使用ASCII.CR和ASCII.LF 我可以用下面的代码获得单独的CRs,但是我在尝试获取CRLF行时遇到了问题在Ada if语句中使用回车符和换行符,ada,Ada,我有一个文本文件,我正在分裂成两个文件。我将逐行检查输入文件,查找CRLF,并使用if语句,在找到CRLF时执行操作。下面是使用CRLFs对输入文件的一个简短剪贴。我是Ada的新手,所以如果有更好的方法,请告诉我 如果可能的话,我希望能够在一个应用程序中使用ASCII.CR和ASCII.LF 我可以用下面的代码获得单独的CRs,但是我在尝试获取CRLF行时遇到了问题 procedure readFrom is My_File : FILE_TYPE; File_Name : St
procedure readFrom is
My_File : FILE_TYPE;
File_Name : String := "input.txt";
CR : String := "" & ASCII.CR;
begin
open(My_File, In_File, File_Name);
create(out1, Out_File, "out1.txt";
create(out, Out_File, "out2.txt";
while not Ada.Text_IO.End_Of_File (My_File) loop
declare
line : String := Get_Line(My_File);
begin
if (line = CR) then
<*search the line and do stuff*>
end if;
end:
end loop:
Close(My_File);
end readFrom;
从中读取的过程是
我的文件:文件类型;
文件名:字符串:=“input.txt”;
CR:String:=“”&ASCII.CR;
开始
打开(我的文件,在文件中,文件名);
创建(out1,Out_文件,“out1.txt”;
创建(out,out_)文件“out2.txt”;
而不是Ada.Text\u IO.End\u Of_File(My_File)循环
声明
行:字符串:=获取行(我的文件);
开始
如果(直线=CR),则
如果结束;
完:
结束循环:
关闭(我的_文件);
结束读取;
Get_Line
已经去掉了行分隔符(在windows平台上是CRLF,在linux或其他*nix平台上是LF),因此您的方法不起作用。请尝试逐个字符读取
另外,ASCII
软件包已被弃用。最好使用Ada.Characters.Latin\u 1
(当然,最好让运行时决定使用哪一行终止符来处理
Get_行
,但我假设这是一个家庭作业,需要找到行的结尾?Get_行
已经去掉了行分隔符(在windows平台上是CRLF,或者在linux或其他*nix平台上是LF),因此您的方法不起作用。请尝试逐个字符读取
另外,ASCII
软件包已被弃用。最好使用Ada.Characters.Latin\u 1
(当然,最好让运行时决定使用哪一行终止符来处理
Get_line
,然后再处理该行,但我假设这是一个家庭作业,需要查找行尾?这不是一个真正的文本文件;不是混合使用行分隔符
最好使用
Ada.Streams.Stream\u IO
()并使用Character'Read
,直到出现End\u错误
异常。这不是一个真正的文本文件;不是混合使用行分隔符
使用
Ada.Streams.Stream\u IO
()使用Character'Read
直到你得到一个End\u错误
异常。谢谢你提供的信息。不,不是家庭作业,而是我被卡住的一个政府项目是Ada83。这是一个1980年投入使用的系统。谢谢你提供的信息。不,不是家庭作业,而是我被卡住的一个政府项目是Ada83。它是这是一个在1980年投入使用的系统,是我迄今为止所发现的东西的副本。