[risolto] Problemi con parametri
Inviato: venerdì 8 luglio 2011, 0:10
Salve a tutti,
ho da poco intrapreso la programmazione per cercare di dare un piccolo contributo al miglioramento di opeoffice.
Ho creato delle macro in basic per cominciare a familiarizzare con il linguaggio.
Il mio problema e' nel passaggio di parametri in una procedura/funzione, alle volte funziona alle volte non; non capisco.
posto una semplice macro :
Dim Doc,Sheet As Object
Dim inputs As String
Dim stringa,stringa1,stringa2 As String
Dim Trovato As Boolean
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(3, 3)
inputs=cell.string
scorpora(inputs,stringa,stringa1,stringa2,trovato)
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(0, 0)
Cell.String =stringa
Cell = Sheet.getCellByPosition(0, 1)
Cell.String =stringa1
Cell = Sheet.getCellByPosition(0, 2)
Cell.String =stringa2
Cell = Sheet.getCellByPosition(0, 3)
Cell.String =trovato
End Sub
Sub scorpora(ByVal funz As String, str As String, str1 As String, str2 As String, trov As Boolean)
Dim flag,flag1 As String
Dim posiz,conta,inizio As Integer
flag = funz
flag1=mid(flag,2,2)
if (flag1="ma" ) or (flag1="ma") then
trov=true
posiz=4
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
flag1=mid(flag,posiz,1)
Loop
string=mid(flag,4,posiz-4)
conta=0
posiz=posiz+1
inizio=posiz
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
conta=conta+1
flag1=mid(flag,posiz,1)
Loop
string1=mid(flag,inizio,conta)
conta=0
posiz=posiz+1
inizio=posiz
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
conta=conta+1
flag1=mid(flag,posiz,1)
Loop
string2=mid(flag,inizio,conta)
Else
trov=false
End If
End Sub
la subroutine funziona correttamente come voglio io(gia' testata).
Pero' quando si ritorna dalla subroutine le stringhe(str,str1,str2) sono vuote.
Dopo tante prove ha funzionato una volta soltanto,poi non ha più funzionato.
Utilizzo la versione OOo 3.3,
secondo voi dove sbaglio?
Grazie per l'attenzione.
ho da poco intrapreso la programmazione per cercare di dare un piccolo contributo al miglioramento di opeoffice.
Ho creato delle macro in basic per cominciare a familiarizzare con il linguaggio.
Il mio problema e' nel passaggio di parametri in una procedura/funzione, alle volte funziona alle volte non; non capisco.
posto una semplice macro :
Dim Doc,Sheet As Object
Dim inputs As String
Dim stringa,stringa1,stringa2 As String
Dim Trovato As Boolean
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(3, 3)
inputs=cell.string
scorpora(inputs,stringa,stringa1,stringa2,trovato)
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(0, 0)
Cell.String =stringa
Cell = Sheet.getCellByPosition(0, 1)
Cell.String =stringa1
Cell = Sheet.getCellByPosition(0, 2)
Cell.String =stringa2
Cell = Sheet.getCellByPosition(0, 3)
Cell.String =trovato
End Sub
Sub scorpora(ByVal funz As String, str As String, str1 As String, str2 As String, trov As Boolean)
Dim flag,flag1 As String
Dim posiz,conta,inizio As Integer
flag = funz
flag1=mid(flag,2,2)
if (flag1="ma" ) or (flag1="ma") then
trov=true
posiz=4
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
flag1=mid(flag,posiz,1)
Loop
string=mid(flag,4,posiz-4)
conta=0
posiz=posiz+1
inizio=posiz
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
conta=conta+1
flag1=mid(flag,posiz,1)
Loop
string1=mid(flag,inizio,conta)
conta=0
posiz=posiz+1
inizio=posiz
flag1=mid(flag,posiz,1)
Do While flag1<>":"
posiz=posiz+1
conta=conta+1
flag1=mid(flag,posiz,1)
Loop
string2=mid(flag,inizio,conta)
Else
trov=false
End If
End Sub
la subroutine funziona correttamente come voglio io(gia' testata).
Pero' quando si ritorna dalla subroutine le stringhe(str,str1,str2) sono vuote.
Dopo tante prove ha funzionato una volta soltanto,poi non ha più funzionato.
Utilizzo la versione OOo 3.3,
secondo voi dove sbaglio?
Grazie per l'attenzione.