Регистрация | | запомнить |
 
 
ВК



Просматривают:   1 Анонимно





Обработка текста из Clipborda
print | #
Новичок
Присоединился:
2007/4/5 10:45
Откуда Московская обл.
Сообщений: 20
Offline
Уважаемые знатоки. Кто знает, тому это просто.
Задача такая. Из Excel копируется колонка с данными и вставляется в текстовый блок Corel для обработки. Как отделить текстовые блоки и обработать отдельно, которые отделяються переводом строки? Они так вставляються. Если существует более продвинутый способ передачи данных из Excel и их пакетной обработкой макросом в Кореле, буду еще более благодарен.

Опубликовано: 2008/1/16 17:50
(1) 2 3 »


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2008/1/15 10:05
Откуда Челябинск
Сообщений: 20
Offline
Цитата:

Как отделить текстовые блоки и обработать отдельно, которые отделяються переводом строки? Они так вставляються.


Вот тут я не понял. Тебе нужно с помощью VBA скопировать столбец из Excel в CorelDraw? А в CorelDraw объект какой нужен - Artistic Text или Paragraph Text? Сколько нужно объектов в CorelDraw - один (полностью содержание столбца) или объектов должно быть столько же, сколько ячеек в столбце Excel?
А если просто вставить, без VBA и по-быстрому, то, наверное, можно так: из Excel столбец перевести в текстовый файл, а из него вставить в CorelDraw.
Если я правильно тебя понял.

Опубликовано: 2008/1/17 6:03


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2007/4/5 10:45
Откуда Московская обл.
Сообщений: 20
Offline
Смысл такой. В Excel есть таблица с названиями файлов.
Пока я копирую по одной ячейки и вставляю в макрос Корела, т.е. в TextBoxt. Потом в Корел импортируеться заготовка с этим именем. Если выделить несколько столбцов и скопировав вставить в TextBoxt то названия файлов будут отделяться знаком перевода строки. Вот и нужно их отделить и по порядку обработать. Как выделить знак перевода строки?

Опубликовано: 2008/1/17 13:25


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2007/4/5 10:45
Откуда Московская обл.
Сообщений: 20
Offline
Вопрос снят. Нашел кодировку и перекодировку в Хелпе. Разбор вставленного текста стал делом техники.

Опубликовано: 2008/1/17 16:27


Re: Обработка текста из Clipborda
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40
Сообщений: 42
Offline
Скажите пожалуста, как сделать следующее:

есть текстовый файл 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

а как теперь по словам считать?

Опубликовано: 2008/2/8 14:49


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2008/1/15 10:05
Откуда Челябинск
Сообщений: 20
Offline
Цитата:
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

Опубликовано: 2008/2/8 15:52


Re: Обработка текста из Clipborda
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40
Сообщений: 42
Offline
спасибо.
а как (с помощью какого инструмента?) можно на экран вывести этот файл построчно + плюс некие коментарии к этим строкам??? Я вот пробовал Listbox но не смог разобраться с его синтаксисом...

Цитата:
aaa1 bbb1 m1 - строка обработана
aaa2 bbb2 m2 - строка не обработана
....
aaai bbbi mi - ошибка
...

Опубликовано: 2008/2/11 11:35


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2006/6/30 13:03
Сообщений: 10
Offline
как понял вопрос так и пишу:

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

Опубликовано: 2008/2/11 18:23


Re: Обработка текста из Clipborda
Пользователь 2 уровня
Присоединился:
2007/2/7 10:40
Сообщений: 42
Offline
Спасибо...

Подскажите еще такую штуку:

Как закрыть все открытые документы/проекты (кстате а как в Кореле называются graphic???)

Опубликовано: 2008/2/12 15:45


Re: Обработка текста из Clipborda
Новичок
Присоединился:
2006/6/30 13:03
Сообщений: 10
Offline
Application.Documents.Item(Index).Close - ну и в цикле их там закрываешь )) (Application.Documents.count - кол-во документов)
Application.ActiveDocument.Close - активный документ закрыть

Опубликовано: 2008/2/12 17:07


Re: Обработка текста из Clipborda
Титан - модератор
Присоединился:
2006/4/8 19:42
Сообщений: 152
Offline
типсы:
1. в ВБА слово Application. можно не использовать т.к. этот объект используется по умолчанию, т.е. можно писать Documents.Count.

2. во всех объектных массивах слово .Item тоже не обязательно - оно используется по умолчанию, например:
do while Documents.Count: Documents(1).Close: loop

Опубликовано: 2008/2/12 23:36



(1) 2 3 »




Форма быстрого ответа
ЛогинИмя   Пароль   Логин
Сообщение:          

      ПРИМЕР


 [далее...]
Уведомлять о сообщениях в теме.



[Настройки поиска]