Файлы
Задача 1
Создать текстовый файл и добавить в него три текстовые строки.
f :- open("myfile.txt", write, Stream),
write(Stream, "my string first"), nl(Stream),
write(Stream, "my string second"), nl(Stream),
write(Stream, "my string third"), nl(Stream),
close(Stream).
Запускаем программу.
f.
Задача 2
Создать текстовый файл и добавить в него целые числа на определённом отрезке.
true.
cycle(X, Y, Stream) :- N is X, write(Stream, N), X < Y, write(Stream, " "), X_NEW = X + 1, !, cycle(X_NEW, Y, Stream).
cycleTrue(X, Y, Stream) :- cycle(X, Y, Stream); true.
f :- open("myfile.txt", write, Stream), cycleTrue(10, 20, Stream), close(Stream).
Запускаем программу.
f.
Задача 3
Считать факты из файла и вывести их на экран через пробелы.
true.
cycle(MyStream) :- read(MyStream, X), !, not(X = end_of_file), write(X), write(" "), !, cycle(MyStream).
cycleTrue(MyStream) :- cycle(MyStream); true.
main :- open("myfile.txt", read, MyStream), cycleTrue(MyStream), close(MyStream).
Запускаем программу.
main.
Содержимое файла myfile.txt
aaa.
bbbbb.
ccc.
xxxxx.
zzz.
Задача 4
Считать факты из файла.
Провести фильтрацию считанных фактов по определённому критерию.
Вывести результат фильтрации на экран.
true.
myfilter(X) :- ok(X), write(X), write(" ").
myfilter(X) :- true.
ok(mmm).
ok(kkkkk).
ok(ccc).
cycle(MyStream) :- read(MyStream, X),
!, not(X = end_of_file),
!, myfilter(X), !,
cycle(MyStream).
cycleTrue(MyStream) :- cycle(MyStream); true.
main :- open("myfile.txt", read, MyStream),
cycleTrue(MyStream),
close(MyStream).
Запускаем программу.
main.
Содержимое файла myfile.txt
aaa.
bbbbb.
ccc.
xxxxx.
zzz.
kkkkk.
mmm.
qqqqq.
mmm.
ccc.
Задача 5
Осуществить посимвольное чтение из файла.
Вывести на экран считанные символы и их код.
true.
readWord(InStream):- get_code(InStream, N),
N > -1,
char_code(C, N),
writeNumberAndChar(N, C),
true.
writeNumberAndChar(N, C) :- nl, write("Number: "), write(N),
nl, write("Char: "), write(C),
nl, true.
cycle(Stream) :- readWord(Stream), cycle(Stream).
cycleTrue(Stream) :- cycle(Stream); true.
main :- open("myfile.txt", read, MyStream),
cycleTrue(MyStream),
close(MyStream),
nl,
true.
Запускаем программу.
main.
Last updated
Was this helpful?