Avatar billede syncroniq Nybegynder
04. juni 2007 - 09:11 Der er 2 kommentarer

mscomm1, hvordan er bedst?

Hey,

Jeg har et mscomm1 object på min form og skal modtage nogle stregkoder på COM1 porten.

Jeg har søgt nettet igennem og fundet én måde at lave det på. Faktisk kun én. Mit problem er at jeg ikke forstår hvorfor folk laver det som de gør, og er bange for at jeg måske overser noget.

Måden folk laver det på er via en løkke, som følgende :

Private Sub MSComm1_OnComm()
    Dim data As String
    Label1.Caption = "Comm length : " & MSComm1.InBufferCount
   
    Do
        data = data & MSComm1.Input
    While (Len(data) < datalength)
   
    dotask data
    data = ""
End Sub



Hvor jeg ville lave det sådan her:

Private Sub MSComm1_OnComm()
    Static data As String
    Label1.Caption = "Comm length : " & MSComm1.InBufferCount
    data = data & MSComm1.Input
   
    If (Len(data) = datalength) Then
        dotask data
        data = ""
    End If
End Sub



Hvad er fordelene ved hver, og hvorfor bruger alle løkke metoden? "Bonger" man ikke CPU'en med løkkemetoden?

På min måde bliver triggeren kaldt hver gang der kommer ny data, og dermed kun det antal gange, hvor den anden looper indtil alt data'n er kommet igennem.

Hvad er det jeg overser?
Avatar billede syncroniq Nybegynder
04. juni 2007 - 09:22 #1
Hey,

Det skulle selvfølgelig være :

    Dim data As String
    Label1.Caption = "Comm length : " & MSComm1.InBufferCount

    Do While (Len(data) < datalength)
        data = data & MSComm1.Input
    Loop

    dotask data
    data = ""
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester