Файлы
1) Извлечение из файла сторк с заглавными
2) Дублирование строк файла
3) Разбиение файла на 2 по границе строк
4) Максимальная строка
5) Извлечение из файла строки, заканчивающиеся точкой
6) Все строки файла усечь до заданной длины
7) Из файла извлечь сроки длина которых > заданной
8) Соединение 2-ух файлов
9) Из входной строки, содержащей последовательность слов), разделенных пробелами, получить предложения с заданным именем функтора
10) Из текстового файла удалить пустые строки
1)Извлечение из файла сторк с заглавными буквами
domains
file=df;tf
predicates
read_write
big(file,file)
proverka(string)
clauses
proverka("").
proverka(Str):-frontchar(Str,Char,Ost),
Char>='A',Char<='Z',
write(Str,"\10").
proverka(Str):-frontchar(Str,Char,Ost),
Char<'A',
proverka(Ost);
frontchar(Str,Char,Ost),
Char>'Z',
proverka(Ost).
big(df,tf):-eof(df).
big(df,tf):-not(eof(df)),readln(Str),
proverka(Str),
big(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),
big(df,tf),
closefile(df),
closefile(tf),
file_str(F1,Str2),
write(Str2),
file_str(F2,Str3),
write(Str3).
goal
clearwindow,
read_write.
_______________________________________________________
2)Дублирование строк файла
domains
file=df;tf
predicates
read_write
dubl(file,file)
clauses
dubl(df,tf):-eof(df).
dubl(df,tf):-not(eof(df)),readln(Str),
write(Str,"\10\13",Str,"\10\13"),
dubl(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),
%readln(Str),
%write(Str),
dubl(df,tf),
closefile(df),
closefile(tf),
file_str(F1,Str2),
write(Str2).
goal
clearwindow,
read_write.
3)Разбиение файла на 2 по границе строк (не корректно!)
domains
file=df;tf1;tf2
list=string*
predicates
read_write
file_in_list(file,list)
razb(list,list,list)
clauses
razb([],[],[]).
razb([H1,H2|T],[H1|T1],[H2|T2]):-razb(T,T1,T2).
file_in_list(df,[]):-eof(df).
file_in_list(df,[H|T]):-not(eof(df)),readln(H),file_in_list(df,T).
read_write:-write("Enter df name:"),nl,
readln(F1),
write("Enter tf1 name:"),nl,
readln(F2),
write("Enter tf2 name:"),nl,
readln(F3),
openread(df,F1),
openwrite(tf1,F2),
openwrite(tf2,F3),
readdevice(df),
writedevice(tf1),
readln(Str),
%write(Str),
file_in_list(df,L),
razb(L,L1,L2),
write(L1),
writedevice(tf2),
write(L2),
closefile(df),
closefile(tf1),
closefile(tf2),
file_str(F1,Str2),
write(Str2).
goal
clearwindow,
read_write.
___________________________________________________________
4)Максимальная строка
domains
file=df;tf
predicates
max(file,file,string)
read_write
clauses
max(df,tf,Str):-eof(df),write(Str).
max(df,tf,Str):-not(eof(df)),str_len(Str,Len),
readln(Str2),str_len(Str2,Len2),
Len>Len2,
max(df,tf,Str).
max(df,tf,Str):-not(eof(df)),str_len(Str,Len),
readln(Str2),str_len(Str2,Len2),
Len<=Len2,
max(df,tf,Str2).
read_write:-write("Enter df:"),nl,
readln(F),
openread(df,F),
write("Enter tf:"),nl,
readln(F2),
openwrite(tf,F2),
readdevice(df),
writedevice(tf),
readln(Str),
max(df,tf,Str),
closefile(df),
closefile(tf),
file_str(F,Str1),
file_str(F2,Str2),
write(Str1),nl,
write(Str2).
goal
clearwindow,
read_write.