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