Нахождение в текстовом файле строк, в которых есть некоторое ключевое слово - Prolog

Узнай цену своей работы

Формулировка задачи:

Помогите мне пожалуйста. Нахождение в текстовом файле строк, в которых есть некоторое ключевое слово.

Решение задачи: «Нахождение в текстовом файле строк, в которых есть некоторое ключевое слово»

textual
Листинг программы
DOMAINS
 
    list_string = string*
    file = myfile   
    
 PREDICATES
 
    nondeterm result    
    nondeterm work_file(string,list_string)
    nondeterm make_list(string,char,list_string)
    nondeterm read_list(list_string)
    nondeterm find_words(string,list_string)
    save_to_file(string,list_string)
    transform(char,char)
    write_list(list_string)     
        
 CLAUSES  
  
    work_file(Namefile,List):-
        nl,
        write(" Create a file? (Y / N) "), nl,
        write(" By default, the processing of strings will be performed in an already created file "), nl,
        readchar(C),
        make_list(Namefile,C,List).     
        
    make_list(Namefile,C,List):-
        transform(C,C1),
        C1 = 'y',
        write(" Enter a list of strings: "), nl,
        read_list(List),
        save_to_file(Namefile,List),!.
    make_list(Namefile,_,List):-
        existfile(Namefile),
        openread(myfile,Namefile),
        readdevice(myfile),
        read_list(List),
        readdevice(keyboard),
        closefile(myfile);
        write(" The file does not exist. It is recommended to create it. "), nl,
        make_list(Namefile,'y',List).
        
    write_list([]).
    write_list([H|T]):-
        write(H),nl,
        write_list(T).
        
    transform('Y','y').
    transform('y','y').
    
    read_list([H|T]):-
        readln(H),
        H <> "",
        read_list(T).
    read_list([]).
    
    save_to_file(Name,List):-
        openwrite(myfile,Name),
        writedevice(myfile),
        write_list(List),nl,
        writedevice(screen),
        closefile(myfile).
        
    find_words("",[]).
    find_words(Str,[Word|T]):-
    fronttoken(Str,Word,Ost_str),
    frontchar(Word,C,Ost),
    find_words(Ost_str,T).
    find_words(Str,T):-
    fronttoken(Str,_,Ost),
    find_words(Ost,T).
        
        result:-  
        write("   Find strings in a text file that have a certain keyword. "), nl,
        work_file("FILE_6.txt",List1),
    write(" Strings before processing: "), nl,
    write_list(List1),nl,
    readchar(_),
    write("Enter the keyword:  "),
    readln(Str),nl,
    write(" Strings after processing: "), nl,
    readchar(_),!.
      
 GOAL
        result.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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