PDA

View Full Version : [VB] Moduli e Funzioni


leadergl
25-09-2004, 06:56
raga ho creato un modulo nel mio progetto VisualBasic 6, ho però un problema ovvero se all'interno di una funzione che si trova nel modulo voglio effettuare un'operazione su una stringa con la funzione Mid, questa non funziona ed il VB mi restituisce questo errore:

"Invalid Procedure Call or Argument"

questa è la mia procedure:

Public Function f_modflex(esadecimale$, valore, bit)
Dim binario1 As String
Dim binario2 As String
Dim iLunghezza As Integer
Dim iTemp As Integer

binario2 = "0010"
binario1 = "00000000"

iLunghezza = Len(binario2)
If iLunghezza < 8 Then
iTemp = 9 - iLunghezza
Mid(binario1, iTemp, iLunghezza) = binario2
Else
binario1 = binario2
End If

End Function


Perchè quel Mid non mi funziona?
Premetto che questa funzione è richiamata dalla mia FormPrincipale...help

VICIUS
25-09-2004, 07:14
Non ricordo bene vb pero Mid è una funzione. Nel tuo codice stai cercando di esguagliare una chiamata di funzione ad una variabile :confused: forse volevi mettere il risultato in binario2 ?

ciao ;)

leadergl
25-09-2004, 07:28
praticamente la

Mid(binario1, iTemp, Lughezza) = binario2

va a sostituire in Binario1, all'altezza iTemp i caratteri che si trovano in Binario2, che è lungo ad esempio 3

Es.

Binario1="00000000"
Binario2="11"

la nuova binario1 potrà essere ad esempio:

Binario1="00110000"

ho sostituito ad alcuni caratteri di binario1 quelli di binario2, nella form principale tutto mi funziona, ma appena la metto in un modulo va tutta rotoli.....help

matpez
25-09-2004, 10:53
Inanzitutto impara a mettere i parametri come dio comanda e non come ti viene più voleco la scrittura del codice...

Per esempio:

Public Function f_modflex(byval esadecimale as string, byval valore as integer, byval bit as integer)

Poi vedi tu quale cambiare, il byval vuol dire che passi il valore alla funzione e questo (anche se cambia) non viene cambiamo all'uscita, il byref invece se dentro alla funzione lo cambi, all'uscita lo avrai cambiato...

Anche la funzione ha un suo tipo, as integer, as string, nn so vedi tu altrimenti lui si prende tutti variant e impiega tempo prezioso a fare le tue operazioni!!

Incomincia a fare così, io nn vedo sinceramente errori nella funzione, prova a vedere che la funzioni mid prenda dei valori giusti e nn vada a prendere numeri che nn centrano, altrimenti ti da quell'errore li!!

Poi nn ho be capito come mai usi una function e nn ti torna indietro nessun valore...

Bho, se magari mi spieghi bene quello che deve fare, possiamo costruirla assieme :)

leadergl
25-09-2004, 15:42
ok questo l'ho risolto....ho notato che se mettevo una determinata procedura nello stesso modulo andava tutto a quel paese....quindi mi è bastato lasciare qulla procedura nella form principale!

grazie per l'aiuto! :-)