На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Turbo Prolog 2.0. Fronttoken , Помогите дописать лабораторную работу
    Задание:

    1. Составьте программу копирования файла. При вводе имени файла осуществлять проверку на его существование.
    2. Составьте программу, в которой вводится с терминала путь и имя файла, а затем грамматическим разбором с помощью предиката fronttoken формируется файл с тем же именем, но с другим типом.

    т. е.
    существует файл Old.txt
    нужно получить 2 файла с новым именем New.txt и New.db8

    При чем, если я введу полный путь - программа тоже бы работала.
    Пример C:\OLD\Old.txt
    получить
    допустим
    D:\New.txt
    D:\New.db8

    Вот код программы, написал НЕ через fronttoken, но надо реализовать именно с помощью этого предиката. Помогите плиз.

    ExpandedWrap disabled
      domains
          file= starf; novf
      predicates
          any_key
          file_copy(string, string)
          read_write
      clauses
          read_write:-
              readchar(C),!,
              write(C),
              read_write.
          read_write.
          any_key:-
              write(" press any key"),nl,
              readchar(_).
          file_copy(Old, New):-
              existfile(Old),
              not(existfile(New)),
              not(concat(Old,"",New)),
              openread(starf, Old),
              openwrite(novf, New),
              filemode(starf, 0),
              filemode(novf, 0),
              readdevice(starf),
              writedevice(novf),
              read_write,
              readdevice(keyboard),
              writedevice(screen),
              closefile(starf),
              closefile(novf).
          file_copy(Old, New):-write("Ne kopiruem ", Old, " as ", New),nl.
      goal
          makewindow(1,15,30,"SOZDANIE I KOPIROVANIE FILE",0,0,25,80),
          write("Vvod starogo imeni file"),nl,
          readln(Old),
          write("Vvod novogo imeni file"),nl,
          readln(New),
          file_copy(Old, New),
          str_len(New, L),
          L1=L-3,
          frontstr(L1, New, S, _),
          concat(S, "db8", New1),
          file_copy(Old, New1),  
          any_key,
          removewindow.
      Попробуйте задать свой вопрос здесь
      http://www.progz.ru/f10/
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0146 ]   [ 14 queries used ]   [ Generated: 18.07.25, 00:33 GMT ]