Файловый ввод/вывод
Функциональный язык программирования Лисп. Понятие потока. Основные функции для работы с файлами. Типы данных с которыми поддерживает работу файл. Внешний указатель формата файла. Очистка буфера потока. Создание и удаление файла. Закрытие потока.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 03.10.2008 |
Размер файла | 15,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4
Тема доклада: Файловый ввод/вывод.
Функциональный язык программирования Лисп поддерживает широкие возможности для работы с файлами. При этом вводится понятие потока с которым связан файл с одной стороны и какой-то символ с другой. Поток представляет собой некий абстрактный объект с которым мы можем работать не углубляясь в аппаратную и программную реализацию работы с данными.
Рассмотрим основные функции для работы с файлами:
OPEN filespec &key direction element-type if-exists if-does-not-exist external-format
Функция создает, открывает и возвращает поток файла заданного в filespec.
filespec - путь к файлу
direction - одно из:input, :output, :io, или :probe. По умолчанию:input. Режим открытия файла (чтение, запись, чтение/запись, поток создан но закрыт)
element-type - тип данных с которыми поддерживает работу файл. По умолчанию Character.
if-exists - поведение если файл уже существует (:error, :new-version, :rename, :rename-and-delete, :overwrite, :append, :supersede).
if-does-not-exist - поведение если файл не существует (:error, :create).
external-format - Внешний указатель формата файла. The default is :default.
Возвращает поток (stream).
(setq s (open “example.txt” :direction :io)); создает файл дле чтения/записи и связывает с ним символ s.
LOAD filespec
Эта функция загружает файл выражений и выполняет эти выражения. filespec - это строковая константа, которая представляет собой имя файла может включать префикс директории, например "/function/test1". Если операция успешно завершина, LOAD возвращает имя последней функции, определенной в файле. Если операция не выполнена, LOAD возвращает имя файла в виде строкового выражения.
WRITE-BYTE byte stream
Записывает байт в выходной поток. Тип данных должен быть изменен на unsigned-byte;
_(with-open-file (s "temp-byte" :direction :output :element-type 'unsigned-byte)(write-byte 101 s))
=> 101 ; в файле символ `е`
WRITE-CHAR char stream
Записывает символ в выходной поток;
_(with-open-file (s "temp" :direction :output)(write-char #\B s))
р B
WRITE-LINE string &optional stream &key start end
Записывает строку (ключевые слова :start и :end позволяют задавать диапазон записываемой строки (отсчет с нуля)); производит перевод каретки на новую строку.
_(with-open-file (s "temp" :direction :output )(write-line “Hello, world” s))
=>“Hello, world”
WRITE-STRING string &optional stream &key start end
Записывает строку но не добавляет новую линию в выходной поток;
_(with-open-file (s "temp" :direction :output )(write-string “Hello, world” s :start 3 :end 6))
=>“lo,”
READ-BYTE stream &optional eof-error-p eof-value
Читает байт с входного потока.
eof-error-p - по умолчанию nil. Oбобщенная булева переменная (nil - false , все остальное true).
eof-value--признак конца файла.
_(with-open-file (s "temp-bytes" :element-type 'unsigned-byte)(read-byte s))
=>101
READ-CHAR &optional stream eof-error-p eof-value recursive-p
Читает символ с входного потока. Возвращает (целое) ASCII код считываемого символа. Если не задано <описателя файла> и в буфере ввода клавиатуры нет символов, READ-CHAR ждет, чтобы вы ввели что-либо с клавиатуры (заканчивающееся RETURN). Hапример, добустим, что буфер клавиатуры пуст:
(read-char)
будет ждать какого-либо ввода. Если вы набрали "АВС", завершив ввод RETURN, READ-CHAR возвратит 65 (код AS0CII буквы "А" (латинской)). Следующие три обращения к READ-CHAR возвратят 66,67 и 10 (переход на новую строку) соответственно. Если затем последует еще одно обращение к READ-CHAR, она будет ждать ввода;
_(with-open-file (s "temp-bytes")(read-byte s))
=>#\e
READ-LINE &optional stream eof-error-p eof-value recursive-p
Читает строку. READ-LINE возвращает nil, иначе она возвращает строковое значение, которое было считано. Hапример, допустим, что F - это разрешенный указатель открытого файла:
(read-line f)
возвратит следующую введенную строку из файла или (если достигнут конец файла) nil.
PEEK-CHAR &optional peek-type stream eof-error-p eof-value recursive-p
Читает символ с потока так, что он доступен для следующей операции чтения. Аргумент peek-type позволяет перескочить к пробелу (Т) или какомуто отдельному символу(a character); /* ??? */
UNREAD-CHAR character &optional stream
Помещает символ назад на переднюю сторону входного потока, где он остается пока не прочитается снова;
LISTEN &optional stream
Возвращает Т если данные доступны на входном потоке;
READ-CHAR-NO-HANG &optional stream eof-error-p eof-value recursive-p
Если символ доступен на входном потоке, функция возвращает символ, иначе nil;
CLEAR-INPUT &optional stream
Флеширует входной поток, если это нужно;
FINISH-OUTPUT &optional stream
Флеширует выходной поток и ждет результата от адресата;
FORCE-OUTPUT &optional stream
То же что и FINISH-OUTPUT но не ждет результата;
CLEAR-OUTPUT &optional stream
Очистка буфера потока;
DELETE-FILE filespec
Удаляет файл;
_(with-open-file (s "delete-me.text" :direction :output :if-exists :error) (delete-file s)); создает и удаляет файл
=> T
FILE-POSITION &optional stream
Возвращает текущую позицию в файле связанным с потоком srteam;
FILE-POSITION &optional stream position-spec
Производит позиционирование в файле связанным с потоком srteam.
и возвращает Т если позиционирование удалость и NIL при неудаче;
(FILE-POSITION s 0) ; возврат к началу файла.
CLOSE &optional stream
Закрывает поток.
Для работы с файлами можно использовать и функции PRINТ, PRINС, PRIN1 и READ. Приведем простенький пример:
; открываем поток для записи
(setq out-stream (open "temp.txt" :direction :output))
(print 'abc out-stream) ;запись строки abc
ABC
(close out-stream)
T
; открываем поток для чтения
(setq in-stream (open "temp.txt" :direction :input)) #<INPUT-STREAM "temp.txt">
(read in-stream); считаем все с потока
ABC
(close in-stream)
T
Подобные документы
Функциональный язык программирования. Широкие возможности для работы с файлами. Понятие потока, с которым связан файл символ. Поток - абстрактный объект, с которым можно работать, не углубляясь в аппаратную и программную реализацию работы с данными.
доклад [10,2 K], добавлен 22.09.2008Проверка существования и статуса файла. Определение его размера. Открытие файла для чтения, записи, добавления. Закрытие файловых дескрипторов. Запись из переменной в файл. Загрузка файла из сети. Создание и удаление каталога. Функции работы с каталогами.
презентация [133,9 K], добавлен 21.06.2014Процедура ввода исходных данных в программу, вывод результатов работы программы на экран. Принцип организации хранения логически связанных наборов информации в виде файлов. Параметры характеристики файла, способы обращения к нему, соглашения по типу.
реферат [14,5 K], добавлен 06.12.2011Файловый ввод/вывод с использованием разных классов. Вызовы операционной системы. Использование вызовов операционной системы. Основные способы открытия файла. Замена файла, связанного со стандартными устройствами ввода/вывода. Операции чтения файла.
курсовая работа [1,1 M], добавлен 09.12.2016Файл как конечное количество последовательных байт, являющееся главной структурной единицей операционных систем, особенности и направления его использования, Основные режимы работы с файлами, порядок их открытия, принципы форматирования и закрытие.
презентация [382,2 K], добавлен 22.10.2013Основные этапы решения задач на ЭВМ. Элементы управления и пользовательская форма VBA. Ввод и вывод информации. Открытие и закрытие файла. Операторы цикла и подпрограммы. Реализация разветвляющихся алгоритмов в VBA. Типы данных, переменные и константы.
учебное пособие [1,4 M], добавлен 21.05.2009Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.
контрольная работа [1,3 M], добавлен 12.06.2009Описание типизированных файлов. Принципы работы с файлами, создание и открытие на запись нового файла. Чтение из файла, открытие существующего файла на чтение. Определение имени файла. Запись в текстовый файл. Описание множества и операции над ними.
реферат [86,4 K], добавлен 07.02.2011Принципы программирования файловой структуры в операционной системе Windows. Свойства и методы класса Tstream. Пример создания, чтения и записи потока. Чтение, запись и внутренняя структура файла. Пример чтения из файла, начиная с заданной позиции.
курсовая работа [251,6 K], добавлен 18.05.2011Алгоритм и код программы для создания исходного двоичного файла чисел с произвольным количеством элементов, чтения из файла действительных восьмибайтных элементов и подсчёта общего количества элементов файла. Вывод результата работы программы на экран.
контрольная работа [1,0 M], добавлен 23.11.2014