btl-norway Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Driver å lager ett program som styrer LPTporten. Hvis jeg f.eks bruker følgende kommando, med funksjon går det greit. Out(&H378S, test) Function test() As short test = &HFFS End Function men det fungerer ikke når jeg prøver dette. Function test() As Short test = "&H" + "FF" + "S" End Function når jeg prøver -> msgbox(test) får jeg "&HFFS" Jeg tror løsningen vil være å konvertere fra string til short, men jeg finner ikke ut hvordan man gjør det. Lenke til kommentar
aadnk Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 (endret) Man kan bruke Short.Parse eller Short.TryParse til dette (alt etter om man forventer mange Exceptions). Til nøds kan også Val() brukes (Val("&HFFS") eksempelvis), men da må deretter konvertere resultatet fra Double til Short. Det er òg noe unødvendig å anvende funksjoner i Microsoft.VisualBasic dersom det finnes fullgode alternativer i .NET-rammeverket. Dim Value As Short, Number As String Number = InputBox("Skriv inn et heksadesimalt tall.", "Hex", "FF") If Short.TryParse(Number, Globalization.NumberStyles.HexNumber, Nothing, Value) Then MessageBox.Show(Value) Else MessageBox.Show(String.Format("'{0}' er ikke et gyldig heksadesimalt tall.", Number)) End If Endret 9. oktober 2008 av aadnk Lenke til kommentar
btl-norway Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 (endret) Hei, og takk for svar. Desverre klarer jeg ikke å få det til. Jeg har ett binærtall f.eks "11111111" som skal konverteres til hex. Dette går greit, og jeg får "FF". Problemet mitt er å få sendt dette på LPT. dim test as string test = "&HFFS" (så noe for å konvertere test til short) Out(&H378S, test) edit: skrivefeil Endret 9. oktober 2008 av btl-norway Lenke til kommentar
aadnk Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 Hvilken feilmelding får du, egentlig? Kan det hende du ikke har definert Out-funksjonen? I alle tilfeller bruker man SerialPort-klassen i VB.NET, ikke den utdaterte Out-kommandoen fra QBasic. Lenke til kommentar
btl-norway Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 Når jeg bruker: test = "&H" + "0F" + "S" får jeg denne: Conversion from string "&H0FS" to type 'Short' is not valid Hvis jeg bruker test = &HFFS Fungerer det fint. Lenke til kommentar
aadnk Skrevet 9. oktober 2008 Del Skrevet 9. oktober 2008 (endret) Som sagt, du kan velge mellom Short.Parse og Val() - her er et eksempel på sistnevte: Dim Test As String = "&HFFS" ' Gitt funksjonen eksisterer Out(&H378S, Val(Test)) Endret 9. oktober 2008 av aadnk Lenke til kommentar
btl-norway Skrevet 9. oktober 2008 Forfatter Del Skrevet 9. oktober 2008 hurra, nå fikk jeg det til Takk skal du ha. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå