Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Файлы(программы).docx
Скачиваний:
2
Добавлен:
27.09.2019
Размер:
29.27 Кб
Скачать

Файлы

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.