On Tue, 26 Jun 2001 07:37:53 GMT, "kikki" <kikki.news@kandu.dk> wrote:
>Jeg har en funktion som skal bruge et array af bytes, byval. Hvordan gør
>jeg dette?
Så vidt jeg husker, så kan man ikke overføre arrays byval... Trist.
(men prøv at skrive "byval" foran parameteren - hvis VB melder fejl,
så har jeg ret, ellers har du vundet).
>Og lige en anden ting, hvordan kan jeg konvertere et array af bytes til
>en string, og tilbage igen?
En måde kunne være følgende, hvor tallene er adskilt af ";"
function ReturnString(ByteArray() as Byte) as string
dim tmpString as string ' her bygger vi strengen op
dim antal as integer ' antal elementer i array'et
dim i as integer ' tæller
Antal = Ubound(ByteArray) ' antal elementer minus 1
tmpString = ""
For i = 0 to Antal
' næste tal i rækken
tmpstring = tmpstring & cstr(ByteArray(i))
' hvis ikke sidste tal - så sæt komma efter
If i < Antal then
tmpString = tmpString & ","
end if
next
' strengen returneres
ReturnString = tmpString
end function
Den anden vej kan løses ved at bruge splitfunktionen der er indbygget
i visual basic.
function ReturnByteArray(MyString as string) as Byte()
dim V as Variant ' splitfunktionen kræver en variant
dim ByteArray() as Byte ' midlertidigt array til vores bytes
dim Antal as Integer ' antal elementer i array'et
dim i as integer ' tæller
V = Split(MyString, ",") ' splitter op med komma som separator
Antal = Ubound(V) ' antal elementer (minus 1)
Redim ByteArray(Antal) ' størrelse
' Vi konverterer lige til bytes
For i = 0 to Antal
' Jeg kan ikke huske om konverteringsfunktionen
' til at konvertere en værdi til en byte hedder CByte,
' ellers må du slå op i VB hjælpen
ByteArray(i) = CByte(V(i))
next
' Værdien returneres
ReturnByteArray = ByteArray
end function
Ovenstående er skrevet frit efter hukommelsen. Hvis der er nogen der
kan skue nogle fejl - så kom endelig med rettelser