Чтение из файла для макроса 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 - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, макросы, CorelDraw, VBA




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




Мотивирующие книги
Гистограмма на Java
Наш в другом мире, или юмористическое фэнтези