Создать динамическую базу предложений строки - Prolog
Формулировка задачи:
Пожалуйста,помогите решить задачку: Дана строка (до 64 Кбайт) в текстовом файле. Создать динамическую базу предложений данной строки. По номеру предложения выдавать его на экран. Для создания интерфейса использовать стандартные средства.
Необходимо написать на turbo prolog
Решение задачи: «Создать динамическую базу предложений строки»
textual
Листинг программы
domains
file = datafile
predicates
create_a_random_access_file
write_read_more(real,real,string)
pad_string(string,string,integer)
goal
create_a_random_access_file.
clauses
create_a_random_access_file :-
write("Please enter filename:"),nl,
readln(Filename),
openwrite(datafile,Filename),
closefile(datafile),
openmodify(datafile,Filename),
write("Type in data string."),nl,
readln(Dstring),
write_read_more(1,0,Dstring),
closefile(datafile).
write_read_more(_,_,"done") :-
nl, write(" Press the space bar."),
readchar(_),exit.
write_read_more(Num,Index,Dstring) :-
writedevice(datafile),
filepos(datafile,Index,0),
pad_string(Dstring,Padstring,38),
str_int(Numstring,Num),
concat(Numstring,". ",Fstring),
concat(Fstring,Padstring,Kstring),
concat(Kstring,"\10\13",Lstr),
write(Lstr),
writedevice(screen),
write("Type in data string"),nl,
readln(Dstring1),
Num1 = Num + 1,
Index1 = Index + 40,
write_read_more(Num1,Index1,Dstring1).
pad_string(Instring,Instring,Length) :-
str_len(Instring,Testlength),
Testlength >= Length,!.
pad_string(Instring,Padstring,Length) :-
concat(Instring," ",Newstring),
pad_string(Newstring,Padstring,Length).