Форум сайта python.su
0
День добрый.
Только начинаю своё знакомство с Python и сразу столкнулся с проблемой.
Есть скрипт на VBS который взаимодействует с открытым COM портом программы.
Если не сложно то покажите как она будет выглядеть на python, а там по примеру разберусь что и как. А то пока мучаюсь с win32com.client и не особо выходит.
——————————–
set App = CreateObject( “CT.Application” ) ‘ создаем объект e3.series
set Job = App.CreateJobObject ’ создаем объект Проект
set Dev = Job.CreateDeviceObject ‘ создаем объект Изделие в проекте
set Txt = Job.CreateTextObject ’ создаем объект Текст
set Sym = Job.CreateSymbolObject
Kav(“Символ_Вилка”)
Kav(“Символ_Розетка”)
Function Kav(sym_name)
AllSym = Job.GetSymbolIds(SymID, sym_name)
msgbox AllSym
for i=1 to AllSym
Sym.SetID SymID(i)
AllTxt = Sym.GetTextIds(TxtID,100)
Txt.SetID TxtID(1)
a = (“''” & Txt.GetText & “''”)
'a=sym_name
AllTxt = Sym.GetTextIds(TxtID,1006)
Txt.SetID TxtID(1)
Txt.SetText (a)
next
End Function
——————————–
Офлайн
221
…сообщение удалено так как неверно прочитал топик.
Отредактировано JOHN_16 (Окт. 30, 2012 00:51:52)
Офлайн
25
JOHN_16
Скорее всего ТС иммет в виду другой COM
Офлайн
221
s0rg Да вы правы, утро - наверное еще не проснулся, прочитал топик неверно. Сообщение сотру.
Офлайн
173
Выглядеть будет примерно так (в комментариях моменты, на которые нужно обратить внимание):
# -*- coding: utf-8 -*- # ^^^^^^^ - чтобы можно было использовать русские символы import win32com.client App = win32com.client.Dispatch("CT.Application") Job = App.CreateJobObject() # нужны скобки # ... и т.д. # функцию нужно определить до непосредственного использования def Kav(sym_name): # результаты функции не записываются в параметр, # а возвращаются как кортеж AllSym, SymIDs = Job.GetSymbolIds(sym_name) # цикл в Python можно записывать проще for sym_id in SymIDs: Sym.SetID(sym_id) AllTxt, TxtID = Sym.GetTextIds(100) # ... и т.д. Kav("Символ_Вилка") Kav("Символ_Розетка") # возможно нужно передавать Юникод # Kav(u"Символ_Розетка")
Отредактировано reclosedev (Окт. 30, 2012 07:34:03)
Офлайн
0
reclosedevБольшое спасибо.
Выглядеть будет примерно так (в комментариях моменты, на которые нужно обратить внимание):
Отредактировано Neolane (Окт. 30, 2012 09:50:55)
Офлайн
173
NeolaneЧто значит “не передаётся”, ошибка какая-то пишется или результат не такой? У меня нет документации по е-кубу под рукой, может там нет такого параметра?
Но в стровке AllSym, SymIDs = Job.GetSymbolIds(sym_name), параметр sym_name не передаётся почему то.
Офлайн
0
reclosedevНу грубо говоря результат на такой,
Что значит “не передаётся”, ошибка какая-то пишется или результат не такой? У меня нет документации по е-кубу под рукой, может там нет такого параметра?
Офлайн