Файловий введення висновок

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Тема доповіді: Файловий введення / висновок.
Функціональна мова програмування Лісп підтримує широкі можливості для роботи з файлами. При цьому вводиться поняття потоку, з яким пов'язаний файл з одного боку і якийсь символ з іншого. Потік являє собою якийсь абстрактний об'єкт, з яким ми можемо працювати, не заглиблюючись в апаратну і програмну реалізацію роботи з даними.
Розглянемо основні функції для роботи з файлами:
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
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Доповідь
14.1кб. | скачати


Схожі роботи:
Файловий вводвивод
Обвинувальний висновок
Обвинувальний висновок 2
Аудиторський висновок
Аудиторський висновок 2
Обвинувальний висновок
Шлюб і його висновок
Висновок бджолиних маток
Санітарно-епідеміологічний висновок
© Усі права захищені
написати до нас