Обработка текста из Clipborda
16/01/2008 17:50:36
#Link
Уважаемые знатоки. Кто знает, тому это просто.
Задача такая. Из Excel копируется колонка с данными и вставляется в текстовый блок Corel для обработки. Как отделить текстовые блоки и обработать отдельно, которые отделяються переводом строки? Они так вставляються. Если существует более продвинутый способ передачи данных из Excel и их пакетной обработкой макросом в Кореле, буду еще более благодарен.
Re: Обработка текста из Clipborda
17/01/2008 6:03:06
#Link
Цитата:
Как отделить текстовые блоки и обработать отдельно, которые отделяються переводом строки? Они так вставляються.
Вот тут я не понял. Тебе нужно с помощью VBA скопировать столбец из Excel в CorelDraw? А в CorelDraw объект какой нужен - Artistic Text или Paragraph Text? Сколько нужно объектов в CorelDraw - один (полностью содержание столбца) или объектов должно быть столько же, сколько ячеек в столбце Excel?
А если просто вставить, без VBA и по-быстрому, то, наверное, можно так: из Excel столбец перевести в текстовый файл, а из него вставить в CorelDraw.
Если я правильно тебя понял.
Re: Обработка текста из Clipborda
17/01/2008 13:25:25
#Link
Смысл такой. В Excel есть таблица с названиями файлов.
Пока я копирую по одной ячейки и вставляю в макрос Корела, т.е. в TextBoxt. Потом в Корел импортируеться заготовка с этим именем. Если выделить несколько столбцов и скопировав вставить в TextBoxt то названия файлов будут отделяться знаком перевода строки. Вот и нужно их отделить и по порядку обработать. Как выделить знак перевода строки?
Re: Обработка текста из Clipborda
17/01/2008 16:27:23
#Link
Вопрос снят. Нашел кодировку и перекодировку в Хелпе. Разбор вставленного текста стал делом техники.
Re: Обработка текста из Clipborda
08/02/2008 14:49:50
#Link
Скажите пожалуста, как сделать следующее:
есть текстовый файл aaa.txt
Цитата:
aaa1 bbb1 m1
aaa2 bbb2 m2
....
aaai bbbi mi
...
Количество строк не известно... Пусть их будет j
Я хочу организовать цикл по строкам от 1 до i
for i=1 to j
if mi=0 then
a:=aaai
b:=bbbi
Как считывать значения по словам???
как я понял построчно считывается так
Do While not EOF(f)
Line Input #f, myFileString
Loop
а как теперь по словам считать?
Re: Обработка текста из Clipborda
08/02/2008 15:52:38
#Link
Цитата:
izrukvruki wrote: Скажите пожалуста, как сделать следующее:
[...]
а как теперь по словам считать?
Задача для VB, для VBA решается так же.
Сорри - нет времени расписывать подробно и думать над кодом, что нужно - доработай сам. Все работает, по крайней мере в Corel'овском VBA. Вместо "C:\Temp\1.txt" вставь, что нужно:
Private Sub rtrt()
Dim aaa_ As Integer
Dim aaa_l As Integer
Dim aa As String
Dim bb As String
Dim mm As String
Dim k As Integer
Open "C:\Temp\1.txt" For Input As #3
While Not (EOF(3))
Line Input #3, A$
aa = ""
bb = ""
mm = ""
For k = 1 To 2
aaa_l = Len(A$)
' Здесь " " - разделитель. Если разделитель другой, то ставь нужный, напр. vbTab , "*" и пр.
aaa_ = InStr(1, A$, " ", vbTextCompare)
If aaa_ <> 0 And Trim(A$) <> "" Then
If k = 1 Then
aa = Left(A$, aaa_ - 1)
A$ = Right(A$, aaa_l - aaa_)
End If
If k = 2 Then
bb = Left(A$, aaa_ - 1)
mm = Right(A$, aaa_l - aaa_)
End If
Else
MsgBox "В строке нет разделителя, пропускаю", vbCritical, " Тесту - тест!"
GoTo per_1
End If
Next
MsgBox "aa = " & aa & "; " & "bb = " & bb & "; " & "mm = " & mm
per_1:
Wend
Close 3
End Sub
Re: Обработка текста из Clipborda
11/02/2008 11:35:21
#Link
спасибо.
а как (с помощью какого инструмента?) можно на экран вывести этот файл построчно + плюс некие коментарии к этим строкам??? Я вот пробовал Listbox но не смог разобраться с его синтаксисом...
Цитата:
aaa1 bbb1 m1 - строка обработана
aaa2 bbb2 m2 - строка не обработана
....
aaai bbbi mi - ошибка
...
Re: Обработка текста из Clipborda
11/02/2008 18:23:38
#Link
как понял вопрос так и пишу:
Sub mReadFile()
Dim tmp_str As String
Dim str_val() As String
Dim m_obj As Object
Dim m_file As Object
Dim ind_lv As Integer
ind_lv = 1
'Для отображения содержимого с несклькими столбцами лучше воспользовать ListView
'lv - это имя ListView на форме
lv.ColumnHeaders.Add 1, , "1", "70"
lv.ColumnHeaders.Add 2, , "2", "70"
lv.ColumnHeaders.Add 3, , "3", "70"
lv.ColumnHeaders.Add 4, , "Коментарий", "70"
' Че-то у меня Open работать не хотела
' Поэтому я сделал через объект
Set m_obj = CreateObject("Scripting.FileSystemObject")
Set m_file = m_obj.OpenTextFile("C:\1.txt", 1, False)
Do Until m_file.AtEndOfStream
tmp_str = m_file.ReadLine
If InStr(1, tmp_str, " ", vbTextCompare) > 1 And Trim(tmp_str) <> "" Then
str_val = Split(tmp_str, " ")
lv.ListItems.Add ind_lv, , str_val(0)
lv.ListItems.Item(ind_lv).SubItems(1) = str_val(1)
If UBound(str_val) >= 2 Then
lv.ListItems.Item(ind_lv).SubItems(2) = str_val(2)
End If
ind_lv = ind_lv + 1
End If
Loop
m_file.close
End Sub
Re: Обработка текста из Clipborda
12/02/2008 15:45:05
#Link
Спасибо...
Подскажите еще такую штуку:
Как закрыть все открытые документы/проекты (кстате а как в Кореле называются graphic???)
Re: Обработка текста из Clipborda
12/02/2008 17:07:49
#Link
Application.Documents.Item(Index).Close - ну и в цикле их там закрываешь )) (Application.Documents.count - кол-во документов)
Application.ActiveDocument.Close - активный документ закрыть
Источник: https://powerclip.ru/modules/newbb/viewtopic.php?topic_id=7038&start=0