Чтение из файла для макроса Corel Draw
В некоторых случаях для макросов Corel Draw данные вводятся не вручную через форму, а читаются из файла. Давайте разберемся, например, как прочитать файл Excel в формате csv (обычный текстовый файл, в котором разделителями являются точка с запятой) и вывести что-то на экран.
Предположим, что файл состоит из трех столбцов. Ширина, высота и количество. Это реальный рабочий пример входных данных, которые я обрабатывал для одного макроса. Что требуется первым делом? А первым делом нам надо получить имя файла, из которого будем читать данные.
Можно, конечно, заставить пользователя самого вбивать адрес файла в текстовое поле, но это будет непрофессионально. Тем более диалог выбора файла вызывается очень просто, буквально одной строкой:
sFileName = CorelScriptTools.GetFileBox("All Files (*.*)|*.*", "Select a file", 0, "c:\Temp\*.*")Далее читаем файл
Open sFileName For Input As #1 While Not EOF(1) Line Input #1, sLine a = Split(sLine, ";") For n = 1 To a(2) y = CInt(a(0)) x = CInt(a(1)) MsgBox x Next n Wend Close #1Что делает этот код? Он открывает файл для чтения, затем читает его построчно. Далее разбивает строку по точке с запятой (это наш разделитель) – заносит в массив, в переменные x и y заносит первые два элемента массива (не забудьте его инициализировать перед работой, да и вообще ввести все переменные - от имени файла и дальше).
А вот третий элемент массива является циклом, так как в нем содержится число повторений создания фигуры. В данном случае мы рисуем прямоугольник:
ActivePage.ActiveLayer.CreateRectangle smeshX, 0, x + smeshX, yПеременная smeshX высчитывается отдельно:
smeshX = smeshX + 5 + xВ итоге мы получаем ряд прямоугольников:
Если вам требуется помощь по макросам (не обязательно для Corel, можно и для Excel, к примеру), то пишите мне. За небольшую сумму вам будет оказана эта самая помощь.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Читайте также:
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.