我了解到你可以打开/关闭一个txt文件并多次写入(追加)。虽然,每次我这样做都是从新的一行开始的。无论如何,我可以回到光标离开的确切位置吗? 谢谢!
答案 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_Streams
(LRM A.12.2)。
答案 1 :(得分:2)
是。使用除Ada.Text_IO
之外的其他I / O包。一种选择可以是使用通过适当的字符类型实例化的通用包Ada.Direct_IO
。