Ada:附加文本文件中的退格

Num*_*rry 0 file ada cursor backspace

我了解到你可以打开/关闭一个txt文件并多次写入(追加).虽然,每次我这样做都是从新的一行开始的.无论如何,我可以回到光标离开的确切位置吗?谢谢!

B98*_*B98 5

使用'Write类型的流和流属性String.该属性表示将输出字符串对象的裸数据的过程.

with Ada.Streams.Stream_IO;

procedure Write_Appending is

   use Ada.Streams.Stream_IO;

   F : File_Type;

   procedure Write_Hello is
   begin
      String'Write (Stream (F), "Hello, ");
   end Write_Hello;

   procedure Write_World is
   begin
      String'Write (Stream (F), "World");
   end Write_World;

begin
   Create (F, Name => "Hello.txt");
   Write_Hello;
   Write_World;
   Close (F);

   -- forgot "!", append it at the end of the file.
   Open (F, Mode => Append_File, Name => "Hello.txt");
   Character'Write (Stream (F), '!');
   Close (F);
end Write_Appending;
Run Code Online (Sandbox Code Playgroud)

产生的文件

$ cat Hello.txt 
Hello, World!$ 
Run Code Online (Sandbox Code Playgroud)

请注意文件的最后一行如何不以行终止符结束.写作时Current_Output,请考虑Ada.Text_IO.Text_Streams(LRM A.12.2).