Создать динамическую базу предложений строки - 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).

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы