ho questa funzione che mi sembra anche rispondere bene, nel senso che mi dà il risultato desiderato. Ovviamente prima faccio la dichiarazione e poi la uso all'interno del prg.
- Code: Select all
Declare Function Cecksum(byval Primo_elemento As Byte , Byval Ultimo_elemento As Byte) As Byte
- Code: Select all
Function Cecksum(primo_elemento As Byte , Ultimo_elemento As Byte) As Byte
Local Btempbyte As Byte
Local J As Byte
Btempbyte = Array_temp(primo_elemento) Xor Array_temp(primo_elemento + 1)
Primo_elemento = Primo_elemento + 2
For J = Primo_elemento To Ultimo_elemento
Btempbyte = Array_temp(j) Xor Btempbyte
Next
Btempbyte = Btempbyte + 7
Cecksum = Btempbyte
End Function
Il problema nasce quando devo usare questa funzione. Se scrivo:
- Code: Select all
If Cecksum(8 , 11) = Ar(12) Then
la condizione non viene sodisfatta
se scrivo:
- Code: Select all
dim Test as byte
Test = Cecksum(8 , 11)
If test = Ar(12) Then ' dove test viene di
Così la condizione viene sodisfatta. Perchè?