На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

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




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

Читайте также:




Букмекеры, вилки и парсинг
Постепенное появление размытого изображения CSS


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.