:- use_module(library(charsio)).
:- use_module(library(lists)).
+:- use_module(library(pio)).
+:- use_module(library(dcgs)).
:- initialization(unit_test).
Cs = "a£\x2124\".
write_f :-
- open('x.txt', write, Stream, [type(binary)]),
- F = put_byte(Stream),
chars_utf8bytes("£\x2124\\x2764\\x1F496\\n", Bs),
- maplist(F, Bs),
- close(Stream).
-
-get_bytes(Stream, Res) :- get_bytes(Stream, [], Res).
-get_bytes(Stream, Acc, Res) :-
- get_byte(Stream, B),
- (B =:= -1 ->
- reverse(Acc, Res)
- ; get_bytes(Stream, [B|Acc], Res)).
+ maplist(char_code, Cs, Bs),
+ phrase_to_file(Cs, "x.txt", [type(binary)]).
read_f :-
- open('x.txt', read, Stream, [type(binary)]),
- get_bytes(Stream, Bs),
- chars_utf8bytes(Cs, Bs),
- write(Cs),
- close(Stream).
+ phrase_from_file(seq(Cs), "x.txt", [type(binary)]),
+ maplist(char_code, Cs, Bs),
+ chars_utf8bytes(Chars, Bs),
+ write(Chars).