Читаем Введение в Автолисп полностью

Если путь к файлу не указан, Автолисп просматривает доступные директории в следующем порядке: текущая директория, директория текущего рисунка, директории, указанные в переменных окружения, директория, в которой расположены программные файлы Автокада.

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

(close дескриптор_файла). Функция закрывает файл и возвращает nil. Аргумент дескриптор_файла должен соответствовать таковому в функции open. После закрытия дескриптор файла не изменяется, но он имеет силу только при открытии файла.

(findfile имя_файла). Функция отыскивает файл в доступных директориях и, если находит, возвращает его дескриптор, в противном случае возвращает nil.

<p>7.2. Функции преобразования</p>

Функции преобразования играют существенную роль при чтении файлов. Их основная задача - преобразование строковых констант в числовые и наоборот.

(ascii строка). Функция преобразует первый символ строки в целочисленную константу, соответствующую коду ASCII для этого символа.

(ascii "А”) возвращает 65,

(ascii “BIG”) возвращает 66,

(ascii “а”) возвращает 97.

(atof строка) преобразует строку в вещественное число.

(atof “67.5”) возвращает 67.5,

(atof “45”) возвращает 45.0.

(atoi строка) преобразует строку в целое число.

(atoi “45”) возвращает 45,

(atoi “67.5”) возвращает 67.

(chr целое_число) преобразует целое число в соответствующий символ таблицы ASCII, представляя его как строку.

(chr 65) возвращает “А”,

(chr 66) возвращает “В”,

(chr 97) возвращает “а”.

(itoa целое_число) преобразует целое число в соответствующую ему строку.

(itoa 65) возвращает “65”,

(itoa -20) возвращает “-20”.

<p>7.3. Извлечение данных из файла</p>

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

(read строка). Функция возвращает первый атом или список, принадлежащий строке, сохраняя при этом тип переменной.

(read “hello”) возвращает атом HELLO,

(read “hello there”) возвращает строку HELLO,

(read “(a b с) d”) возвращает список (А В С),

(read “1.2300”) возвращает вещественное 1.23,

(read “87 3.2”) возвращает целое 87.

Следующие две функции позволяют просматривать базы данных и файлы и впоследствии обрабатывать извлеченные данные средствами Автолиспа.

(read-char [дескриптор_файла]). Функция считывает первый символ из строки, введенной с клавиатуры, или из открытого файла, определенного дескриптором, и возвращает код ASCII этого символа. При повторном обращении к функции считывается следующий символ и так далее. Если дескриптор файла не указан, общение осуществляется с командной строкой.

Пусть буфер командной строки пуст. На вызов (read-char) Автолисп не реагирует, ожидая действий оператора. Ввод в командную строку последовательности ABC Enter возвращает 65 (десятичный ASCII-код символа А). Последующие три вызова функции возвращают последовательно 66, 67, 10 (код перевода строки). Следующий вызов функции устанавливает компьютер в режим ожидания. Важно помнить, что функция Автолиспа не является командой Автокада, поэтому ее нельзя вызвать повторно клавишей Enter или правой клавишей мыши, она всегда должна вводиться явно.

(read-line [дескриптор_файла]). Функция считывает строку с клавиатуры или из файла. Ее действие аналогично предыдущему: каждый последующий вызов приводит к чтению очередной строки, что позволяет просмотреть весь файл.

(strcat строка1 [строка2] ...). Функция возвращает строку, представляющую собой сцепление строк строка1, строка2 и т.д.

Примеры:

(strcat “Auto” “CAD”) возвращает “AutoCAD”,

(strcat “fi” “le”) возвращает “file”.

(strlen [строка]) возвращает целое число, соответствующее числу символов в строке.

(strlen "file”) возвращает 4,

(strlen "file” “desk” “top”) возвращает 11,

(strlen) возвращает 0.

(substr строка начало [длина]). Функция возвращает подстроку строки, начинающуюся с позиции начало и захватывающую количество символов, соответствующее длине. Аргументы начало и длина должны быть целыми числами.

(substr “abcde” 2) возвращает “bcde”,

(substr “abcde” 2 1) возвращает “b”,

(substr “abcde” 3 2) возвращает “cd”.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных