11. november 2003 - 00:01Der er
10 kommentarer og 2 løsninger
Fra decimal-værdi til hex-værdi…
Hej X-perter!
Har brug for lidt hjælp til noget kode i VB!
Jeg skal behandle data som kommer ind på COM1
Ud fra det input jeg får fra COM1 skal programmet udføre noget kode, og smide resultatet på COM2
Dataene fra COM1 kan antage værdier mellem 1-64 For eksempel ”P001M” ”P002M” ”P003M” ... ”P064M”
Strengen kontrolleres med følgende kode:
If Left(Temp, 2) = "P0" And (Mid(Temp, 5, 1) = "M") Then K = Val(Mid(Temp, 3, 2)) If K < 11 Then IO2.WriteString (Chr$(2) & "GC7:903000" & K - 1 & Chr$(3)) End If
Når strengen fra COM1 er kontrolleret, skal der smides data til COM2 svarende til det tal som er fundet i strengen!
Det virker fint så længe værdierne ligger mellem 1-10, da de direkte kan indsættes i strenge som sendes videre til COM2
Når værdien ligger mellem 11-16 skal værdierne i stedet hedde A,B,C,D,E,F (altså hex-værdier!) Fra 17 til 26 skal værdierne hedder 10,11,12,13 osv. og jeg kan ikke længere direkte bruge det tal jeg fandt i strengen fra COM1...
Jeg kan godt løse det med end select case sætning:
Eksempel: Select Case K Case Is = 11 IO2.WriteString (Chr$(2) & "GC7:903000A" & Chr$(3)) End Select
men der skal mange sætninger til, og det virker som lidt ”tung” kode.
Her ses samtlige 64 muligheder. Problemet opstår ved værdierne 11-64
...arh.. det er noget ged... håber I forstår meningen :-)
Synes godt om
Slettet bruger
11. november 2003 - 00:05#4
//medions
Det var godt nok tjep svar :-) :-)
Hvor vil du indsætte den i koden?
If Left(Temp, 2) = "P0" And (Mid(Temp, 5, 1) = "M") Then K = Val(Mid(Temp, 3, 2)) If K < 11 Then IO2.WriteString (Chr$(2) & "GC7:903000" & K - 1 & Chr$(3)) End If
If Left(Temp, 2) = "P0" And (Mid(Temp, 5, 1) = "M") Then K = Val(Mid(Temp, 3, 2)) IO2.WriteString (Chr$(2) & "GC7:903000" & hex(K - 1) & Chr$(3)) end if
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.