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

时间:2017-02-19 02:55:34

标签: file cursor ada backspace

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

2 个答案:

答案 0 :(得分: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;

生成的文件

$ cat Hello.txt 
Hello, World!$ 

注意文件的最后一行不是以行终止符结尾的。要写信至Current_Output,请考虑Ada.Text_IO.Text_StreamsLRM A.12.2)。

答案 1 :(得分:2)

是。使用除Ada.Text_IO之外的其他I / O包。一种选择可以是使用通过适当的字符类型实例化的通用包Ada.Direct_IO