Надо добавлять в ЛогоМиры то, чего там не хватает. Не зря же он является расширяемым языком. Если кого-то из более опытных программистов возникнут предложения по оптимизации моих процедур прошу вносить исправленные в эту тему. Читатели форума должны получать самое лучшее!
Процедуры от Никиты
Сообщений 1 страница 5 из 5
Поделиться22011-02-08 17:21:57
Известно, что в ЛогоМирах 3.0 есть возможность работы с файлами MS Excel. Цитирую справку:
Открывает определенный файл и определенный лист Microsoft Excel. Первым входным параметром должно быть имя файла Excel. Вторым входным параметром должно быть имя листа.
Это о процедуре открой_лист_Excel (openworksheet). Сообщаю так же, (этого в справке нет) что если в книге с данным именем нет такого листа, то программа его создаёт.
Теперь о стандартной процедуре закрой_лист_Excel:
Сохраняет и закрывает файл и определенный лист Microsoft Excel. Первым входным параметром должно быть имя файла Excel. Вторым входным параметром должно быть имя листа.
При попытке ввести процедуру предложенным образом выдаётся сообщение об ошибке: Не знаю что делать с "книга.
В справке ошибка. закрой_лист_Excel вводится без входных параметров.
Отредактировано Никита (2011-02-08 17:22:48)
Поделиться32011-02-08 17:49:27
Кроме открытия и закрытия в работе с Excel есть всего две процедуры: возьми_ячейку и установи_ячейку.
Входные параметры это координаты ячеек: номер строки и номер столбца.
Но этих двух процедур чрезвычайно недостаточно для работы с Excel в ЛогоМирах 3.0!!!
Нужно ещё хотя бы копировать и вставлять блок ячеек.
Сколько входных параметров должно быть в процедуре копирования блока ячеек?
4. Координаты левой верхней ячейки, высота и ширина блока.
это копируй_блок :строка :столбец :высота :ширина
пусть "обмен []
пусть "ряд []
пусть "ячейка "
повтори :ширина
[повтори :высота
[пусть "ячейка возьми_ячейку :строка :столбец
пусть "ряд вксп :ячейка :ряд пусть "строка :строка + 1]
пусть "строка :строка - :высота
пусть "обмен вксп :ряд :обмен
пусть "столбец :столбец + 1
пусть "ряд []]
конец
Процедура сохраняет блок ячеек в глобальной переменной "обмен.
Теперь процедура для вставки этого блока ячеек:
это вставь_блок :строка :столбец
перебор [ряд :обмен]
[перебор [ячейка :ряд]
[установи_ячейку :строка :столбец :ячейка
пусть "строка :строка + 1]
пусть "строка (:строка - сколько :ряд)
пусть "столбец :столбец + 1]
конец
А теперь, для того, чтобы Вы полнее поняли суть этих процедур, я предлагаю Вам домашнее задание: Поменяв между собой два слова в трёх строках процедуры вставь_блок превратите её в процедуру транспонирования.
Поделиться42011-02-22 21:25:04
Обращаю всеобщее внимание на то, что в Excel вы можете задать формулы взаимодействия ячеек, задавать входные данные из ЛогоМиров 3.0 и считывать результат в Ваш проект.
Поделиться52011-03-19 18:01:26
Допустим, у нас есть список, элементами которого являются числа.
установи_слагаемые [1 1 1 1 1 1]
Мы хотим получить сумму всех элементов этого списка.
покажи (сумма слагаемые)
показывает
сумма не допускает [1 1 1 1 1 1] на входе,
что не удивительно.
покажи (сумма 1 1 1 1 1 1)
показывает 6,
как и должно быть.
Моя процедура "сумматор"
покажи сумматор слагаемые
показывает 6.
Отредактировано Никита (2011-03-19 18:03:40)