나는 txt 파일을 열고 닫을 수 있다는 것을 배웠으며 여러 번 (append) 쓸 수있다. 하지만, 매번 새로운 라인에서 시작됩니다. 어쨌든 커서가 정확히 어디로 가야할까요? 감사합니다.Ada : 첨부 된 텍스트 파일의 백 스페이스
0
A
답변
5
String
유형의 스트림 및 스트림 속성 'Write
을 사용하십시오. 속성은 문자열 객체의 노출 된 데이터를 출력하는 프로 시저를 나타냅니다. 파일을 파일의 마지막 줄은 줄 끝으로 끝나지 않는 방법
$ cat Hello.txt
Hello, World!$
주 결과
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;
. Current_Output
에 쓰려면 Ada.Text_IO.Text_Streams
(LRM A.12.2)을 고려하십시오.
2
예. Ada.Text_IO
이 아닌 다른 I/O 패키지를 사용하십시오. 한 가지 옵션은 Ada.Direct_IO
이라는 일반 패키지를 적절한 문자 유형으로 인스턴스화하는 것입니다.
달콤한! 이제 반대의 문제가 생겼습니다. 연속적으로 한 줄에 쓰는 대신 캐리지 리턴을 어떻게 수행합니까? XD – Numnumberry
'Character'Write'이 그것을 할 것입니다. CR은 고정 된 서수 위치 (''Pos'')를'Character' 유형으로 가지므로, 그 위치와 함께 'Value'를 사용하는 것은 출력에 CR을 추가하는 한 가지 방법입니다. 좀 더 전통적인 이름은'ASCII' 패키지의'ASCII.CR'이다. – B98
나는 그것도 생각했다. 그러나 내 코드를 heres : write ("luck"); \t 열기 (F, Append_File, "Hello.txt"); \t Character'Write (Stream (F), ASCII.CR); \t 닫기 (F); 텍스트 파일에서 행운을 제외하고는 한 줄에 여러 줄을 인쇄했을 때 아무런 일도 일어나지 않습니다. – Numnumberry