5)Извлечение из файла строки, заканчивающиеся точкой
domains
file=df;tf
predicates
read_write
point(file,file)
clauses
point(df,tf):-eof(df).
point(df,tf):-not(eof(df)),readln(Str),
str_len(Str,L),L2=L-1,
frontstr(L2,Str,_,P),P=".",
write(Str,"\10"),point(df,tf).
point(df,tf):-not(eof(df)),readln(Str),
str_len(Str,L),L2=L-1,
frontstr(L2,Str,_,P),P<>".",
point(df,tf).
read_write:-write("Enter df name:"),nl,
readln(F1),
write("Enter tf name:"),nl,
readln(F2),
openread(df,F1),
openwrite(tf,F2),
readdevice(df),
writedevice(tf),
point(df,tf),
closefile(df),
closefile(tf),
file_str(F1,Str2),
write(Str2),
file_str(F2,Str3),
write(Str3).
goal
clearwindow,
read_write.
____________________________________________________________
6)Все строки файла усечь до заданной длины
domains
file=df;tf
predicates
read_write
usech(file,file,integer)
clauses
usech(df,tf,N):-eof(df).
usech(df,tf,N):-not(eof(df)),readln(Str),
frontstr(N,Str,Usech,_),
write(Usech,"\10\13"),usech(df,tf,N).
read_write:-write("Enter df name:"),nl,
readln(F1),
write("Enter tf name:"),nl,
readln(F2),
write("Enter new lenth:"),nl,
readint(N),
openread(df,F1),
openwrite(tf,F2),
readdevice(df),
writedevice(tf),
usech(df,tf,N),
closefile(df),
closefile(tf),
file_str(F1,Str2),
write(Str2).
goal
clearwindow,
read_write.
_______________________________________________________________
7)Из файла извлечь сроки длина которых > заданной
domains
file=df;tf
predicates
read_write
izvlrch(file,file,integer)
clauses
izvlrch(df,tf,N):-eof(df).
izvlrch(df,tf,N):-not(eof(df)),readln(Str),
str_len(Str,L),
L > N,
write(Str,"\10\13"),izvlrch(df,tf,N).
izvlrch(df,tf,N):-not(eof(df)),readln(Str),
str_len(Str,L),
L <= N,
izvlrch(df,tf,N).
read_write:-write("Enter df name:"),nl,
readln(F1),
write("Enter tf name:"),nl,
readln(F2),
write("Enter lenth:"),nl,
readint(N),
openread(df,F1),
openwrite(tf,F2),
readdevice(df),
writedevice(tf),
readln(Str),
izvlrch(df,tf,N),
closefile(df),
closefile(tf),
file_str(F1,Str2),
write(Str2),
file_str(F2,Str3),
write(Str3).
goal
clearwindow,
read_write.
8)Соединение 2-ух файлов
domains
file=tf;df1;df2
predicates
read_write
clauses
read_write:-write("Enter df1 name:"),nl,
readln(F1),
write("Enter df2 name:"),nl,
readln(F2),
write("Enter tf name:"),nl,
readln(F),
openread(df1,F1),
openread(df1,F2),
openwrite(tf,F),
writedevice(tf),
closefile(df),
file_str(F1,Str1),
file_str(F2,Str2),
concat(Str1,Str2,Str),
write(Str),
closefile(tf).
goal
clearwindow,
read_write.
_______________________________________________________________
9)Из входной строки, содержащей последовательность слов (например, женские имена), разделенных пробелами, получить предложения с заданным именем функтора (например, женщина), аргументом которого являются слова входной строки. Каждое предложение должно располагаться в отдельной строке и заканчиваться точкой. Предложения записать в файл, а затем из файла вывести на экран дисплея.
domains
file=df
kstr,fstr=string
predicates
words(string)
create_a_file
clauses
create_a_file:-clearwindow,
write("Input file name"),nl,
readln(F1),
write("Input a string :"),nl,
readln(Str),
openwrite(df,F1),
writedevice(df),
words(Str),
closefile(df),
openread(df,F1),
readdevice(df),
print,
closefile(df).
words("").
words(Str):-fronttoken(Str,Word,Ost),
concat("women(",Word,Temp),
concat(Temp,").\13\10",Fword),
write(Fword),
words(Ost).
print:- eof(df).
print:- readln(Str),write(Str),nl,print.
goal
create_a_file.
__________________________________________________