Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Rotate T 180 z_axis -- и повернем чайник.

b = bitmap 160 120 filename:"c:\\t.avi" -- Создадим битовую карту

for i =1 to 10 do -- Организуем цикл по кадрам

(at time i -- Устанавливаем временной

-- контекст,

render 160 120 to:b -- выводим результат в

-- битовую карту,

Save b -- и сохраняем ее.

) -- Если сохранить ПОСЛЕ цикла,

-- запишется только последний кадр.

Close b -- Закроем выходной файл. Это так же

-- освободит ссылку на битовую карту

-- и занимаемую ей память.

Второй пример читает битовую карту из файла и выводит в окно интерпретатора программу, которая сама создает такую же карту, что и прочитанная. Вы можете скопировать полученную программу в свой скрипт и использовать, например, при создании кнопки с картинкой

(

b = selectbitmap () -- Откроем исходный файл

bname="bitmap_"+(getfilenamefile b.filename) -- Определим имя функции

w=b.width -- Определим высоту и ширину картинки

h=b.height

format "----------\nfn load_% = (\n" bname -- Определение функции

format "local % = bitmap % %\n" bname w h -- Создание карты в

--функции

-- запись функции, распаковывающей данные о пикселях

format "fn unpack val = for p in val collect (r = p/256^2; g = p/256-r*256; b = mod p 256; color r g b)\n"

for r = 0 to h-1 do -- Для каждой строки карты

-- получим функцию для записи колонок карты

(format "setpixels % [0,%] (unpack #(" bname r

pixels=getpixels b [0,r] w -- чтение колонки карты

for c=1 to w do -- цикл по пикселям

(p=pixels[c] -- получим пиксель

-- Упакуем цветовые данные в целое число

format "%" (((p.r as integer)*256+(p.g as integer))*256+(p.b as integer))

if c!= w then -- Если пиксель не последний

format ", " -- поставим запятую

Else

format "))\n" -- иначе перейдем на новую строку

)

)

format "return %\n" bname -- возврат битовой карты

format ")\n----------\n" -- завершение функции

)

 

 

Потоки

 

Файловый поток

Класс файловый поток предоставляет средства для ввода и вывода в текстовый файл.

 

Литералы

Литералов для файлового потока не предусмотрено

 

Конструкторы

Функция

createFile Символьная_строка

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

openFile Символьная_строка_1 mode: Символьная_строка_2

Первая строка – имя открываемого файла, вторая – необязательный именованный параметр, означающий режим открытия. Второй параметр может принимать одно из двух значений. “a” означает открытие для добавления записей в файл, “r” – открытие только для чтения.

Можно открыть зашифрованный файл, используя функцию

openEncryptedFile Символьная_строка Целое_число

Символьная строка задает имя файла, число – ключ шифровки. О том, как создаются зашифрованные файлы, речь еще впереди.

 

Свойства

Свойств у файловых потоков нет.

 

Методы

Для чтения данных из файлового потока предусмотрен целый ряд функций.

readLine Файловый_поток

читает и возвращает очередную строку из файлового потока.

readChar Файловый_поток

читает из файлового потока очередной символ и возвращает его в виде символьной строки.

readChars Файловый_поток Число

читает из указанного файлового потока количество символов, указанное вторым параметром.

readDelimitedString Файловый_поток Символьная_строка

читает символы из файлового потока до тех пор, пока не встретит указанную вторым параметром строку или конец файла.

skipToString Файловый_поток Символьная_строка

просматривает файл до тех пор, пока не встретит символьную строку, заданную вторым параметром и позиционирует указатель чтения/записи за ней. Если строка в файле не встретилась, возвращает undefined.

skipToNextLine Файловый_поток

позиционирует указатель чтения/записи на начало следующей строки.

filePos Файловый_поток

возвращает текущую позицию указателя чтения/записи.

seek Файловый_поток Число

устанавливает указатель чтения/записи в позицию, указанную вторым параметром.

eof Файловый_поток

возвращает true, если достигнут конец файла, в противном случае false.

flush Файловый_поток

записывает все данные, содержащиеся в буфере, на диск.

close Файловый_поток

записывает все данные, содержащиеся в буфере, на диск и закрывает файл.

readValue Файловый_поток

читает и возвращает значение операнда из текстового файла.

readExpr Файловый_поток

читает и выполняет выражение из текстового файла.

execute Файловый_поток

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

Разница между readValue и readExpr иллюстрируется следующим примером. Роль файлового потока для простоты будет играть строковый

s = stringstream “random 0.0 1.0; random red blue”

readValue s

readValue s

seek s 0

readExpr s

readExpr s

seek s 0

execute s

Результаты выполнения

random () читается и возвращается название функции

random

0.0 читается и возвращается ноль

OK результат выполнения функции seek

0.494995 читается и выполняется выражение

random 0.0 1.0

(color 94.1571 0 25.2922) читается и выполняется выражение

random red blue

OK результат выполнения функции seek

(color 39.3391 0 137.636) читается и выполняется весь поток,

возвращается результат последнего выражения

Для вывода в файловый поток применяются функции print и format. Файловый поток при этом указывается именованным параметром to. Например

s = createFile “MyFile.txt”

str = “MyString”

print str to:s

close s

 


Дата добавления: 2015-10-31; просмотров: 117 | Нарушение авторских прав


Читайте в этой же книге: Операторы цикла do и while | Создание функций, локальных внутри структуры | Символьные строки | Логические (Булевы) значения | Точка в трехмерном пространстве | Точка в двумерном пространстве | Произвольный поворот | Матрица произвольных размеров | Прямоугольник | Интервал времени |
<== предыдущая страница | следующая страница ==>
Методы для работы с g-буфером| Строковый поток

mybiblioteka.su - 2015-2024 год. (0.01 сек.)