Последние новости

Переход Германии на электронные паспорта второго поколения уже не загорами

Вот уже на протяжении нескольких лет страны Евросоюза постепенно переходят на электронные паспорта...

Мы начинаем

IT Библиотека начинает свою работу

Знаете ли вы что означает ICQ...

России наверно каждый человек,который пользуется Интернетом....

все новости

Доверяем

Реклама

32.Функционалы.Массивы.Работа с файлами.Входные и выходные потоки. , 10/09/2007

К списку статей

32.Функционалы.Массивы.Работа с файлами.Входные и выходные потоки. При вводе и выводе информации в Лиспе используется понятие потоков - stream. Для потока определены ИМЯ, операции открытия open операции закрытия clouse направления output и input.
Определение выходных и входных потоков.
Для открытия файла для записи задается его имя, производится операция open и указывается направление output:
(setq our-output-stream
(open "sesame" :direction :output))
Зададим
(setq s "e)
Можно вывести это значение в файл
(princ s our-output-stream);
Можно занести список
(print "(a b c d) our-output-stream)
Чтобы правильно закрыть поток необходимо в конец поместить
(terpri our-output-stream)
Затем файл закрывается
(close our-output-stream)
Можно посмотреть информацию в файле.
Откроем файл для чтения:
(setq our-input-stream
(open "sesame" :direction :input))
Прочитать информацию
(read our-input-stream)
Закроем файл
(close our-input-stream)
Чтение символов из файла.
Предположим, что в файле хранится символьная информация, необходимая нам для обработки. Причем нас интересует каждый символ в файле. До сих пор мы могли вводить только атомы, числа и списки.
Для чтения символов из файла будем использовать функцию
(READ-CHAR <входной поток>)
Данная функция позволяет читать печатные символы (CHAR) из файла. В качестве значения получается десятичное представление кода символа.  Используйте эту функцию для посимвольного ввода информации из файла для ее последующего анализа
Определим
(setq our-input-stream
(open "picture.spl" :direction :input))
Для чтения символа используем
(read-char our-input-stream)
Для восстановления содержимого файла применяется перекодировка
(setq x (read-char our-input-stream)
То содержимое x можно показать
  (cond (( = x 43) (prin1"+))
       (( = x 45) (prin1 "-))
       (( = x 10 ) (terpri)))
Можно представить информацию без искажений, если использовать цикл
(loop (progn   (setq x 
(read-char our-input-stream) )
(cond (( = x 43) (prin1"+))
      (( = x 45) (prin1 "-))
      (( = x 10 ) (terpri))))))
 Закрытие входного потока.
(close our-input-stream)
Для поиска конца файла можно анализировать ошибку чтения, но лучше знать длину файла до начала работы с ним.


Автор: it-library, количество прочтений: 4797 Наверх


  • 31.Функционалы.Массивы.Работа с файлами.Задание параметров при определении функций. При о...
  • 30.Функционалы.Массивы.Работа с файлами.Макросы. Это с...
  • 29..Функционалы.Массивы.Работа с файлами.Обратная блокировка. Обычн...
  • 28.Функционалы.Массивы.Работа с файлами.Массивы.
  • 27.Функционалы.Массивы.Работа с файлами.Обработка списков без разрушения. Append. Обычн...
  • 26.Функционалы.Массивы.Работа с файлами.Переменные и списки. Рассм...
  • 25.Функционалы.Массивы.Работа с файлами.Лямбда выражения. Струк...
  • 24.Функционалы.Массивы.Работа с файлами.Отображающий функционал MAPCAR. До си...
  • 23.Несколько терминальных ветвей.Несколько рекурсивных ветвей.

  • 22.Рекурсия.CDR рекурсия.Рассм...
  • 21.Как писать рекурсивные функции.При н...
  • 20.Трассировка.Прави...
  • 19.Рекурсия.Функц...
  • 18.Циклические предложения.DOTIMES.DOTIM...
  • 17.Циклические предложения.DO.DO...
  • 16.Циклические предложения.LOOP.

    Ци...

  • 15.Управляющие структуры.Дополнительные функции печати. PRINT...
  • 14.Управляющие структуры.Условный выход из функции: PROG RETURN.Встре...
  • 13.Управляющие структуры.Ввод и вывод информации.

  • 12.Управляющие структуры.Другие условные предложения.

    СO...

  • 11.Управляющие структуры.

    В ...

  • 10.Функции и предикаты.Логические функции.Для о...
  • 9.Функции и предикаты.Базовые предикаты.

    Пр...

  • 8.Функции и предикаты.Дополнительные функции обработки списков.

  • 7.Функции и предикаты.Свободные переменные.

  • 6.Функции и предикаты.Передача параметров. Глобальные и локальные переменные. В Лис...
  • 5.Функции и предикаты.Определение функций.

    Не...

  • 4.Интерпретатор лисп.Базовые функции.В Лис...
  • 3.Интерпретатор лисп.Использование символов в качестве переменных.Изнач...
  • 2.Интерпретатор лисп.Диалог с интерпретатором ЛИСП.

    Тр...

  • 1.Интерпретатор лисп.Элементарные понятия и структуры данных.
  • Увеличение губ рестилайном. Увеличение губ липофилинг. Техника увеличения губ. ; Готовый бизнес купить. Готовый бизнес терминалы. Продажа готового бизнеса нижний новгород.