Количество строк в файле — Visual Prolog

      Комментарии к записи Количество строк в файле — Visual Prolog отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 3 мес., 1 неделя назад.

  • Автор
    Сообщения
  • #3893

    Чтобы определить количество строк в файле мы можем подсчитать число символов перевода строки ('\n'), однако можно проще — вызывать встроенную функцию readln до тех пор пока не кончится файл и подсчитать число вызовов. Функция readln читает до конца строки, поэтому мы и получим правильный результат:

    domains
      file = infile
    predicates
      lines_number(integer)
    clauses
      lines_number(0):-
        eof(infile), !.
       lines_number(Number):-
        readln(_String),
        lines_number(TailNumber),
        Number = TailNumber + 1.
    goal
      openread(infile,"f1.txt"), readdevice(infile),
      lines_number(Number),
      closefile(infile).

    Обратите внимание, что функция написана так, что файл должен быть открыт и установлен в качестве устройства ввода до начала работы функции. Когда функция завершится каретка в файле будет перемещена на конец.

Для ответа в этой теме необходимо авторизоваться.