Home Page  >>>  Free Your Mind  >>>  Python

Registrati su TheZion
Password Persa




Un COM con Python by neo

Creare un COM in Python. (ispirato da Python programming on Win 32 di Mark Hammond)

Quante volte in visual basic o in ASP si sente la mancanza di un migliore supporto delle stringhe come lo slicing o lo splitting?

Con PythonWin è possibile creare in poche righe di codice un COM capace di sopperire questa "lacuna".

Aprite python win e create un nuovo pyton script.

Inserite il codice seguente rispettando le indentature (fondamentali per il python).

class PythonUtilities:
       _public_methods_ =[ 'Splitta' ]
       _reg_progid_= "test.com"
       _reg_clsid_= "{386CC2B0-2235-11D5-A647-0020183C194B}"

       def Splitta(self, val, item=None):
              import string
              if item !=None:
                     item=str(item)
              return string.split(str(val),item)

if __name__=='__main__':
       print "registro il com..."
       import win32com.server.register
       win32com.server.register.UseCommandLine(PythonUtilities)


Alla riga 4 potrete notare la chiave di registro _reg_clsid_ il valore inserito deve essere generato "al volo" sulla macchina che registra il COM. Per avere un valore valido andate alla finestra interattiva di python e digitate:

import pythoncom
print pythoncom.CreateGuid()

L'interprete vi risponderà con qualcosa del genere

{23EEC7A2-3195-11D5-A66B-0020183C194B}

Copiatelo e incollatelo al posto del valore fornito con questo script.
Lo script è progettato per autoregistrarsi alla prima esecuzione, quindi lanciandolo otterrete un messaggio del tipo

registro il com...
successful registered test.com

A questo punto chiudete pythonwin e aprite visual basic (ma il discorso si applica pari pari anche per le asp).

Incollate il seguente codice.

Private Sub Form_Load()
              Set pippo = CreateObject("fede.com")
              stringa = "il python è una bomba"
              ciccio = pippo.splitta(stringa)

       For Each Item In ciccio
              MsgBox Item
       Next


End Sub

Se la registrazione del com è andata a buon fine, all'avvio del programma dovreste vedere una successione di msgbox, una per ogni parola della variabile stringa.
Il funzionamento di questo semplice COM può essere esteso senza quasi modifiche a qualsiasi problema dove il VB è carente.

Per liberare risorse (se non ne avete bisogno) potete poi rilanciare lo script aggiungendo --unregister come parametro di lancio.

 



Leggi commenti

Numero commenti inviati: 0