Gå til innhold

string to short spørsmål


Anbefalte innlegg

Skrevet

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.

Videoannonse
Annonse
Skrevet (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 av aadnk
Skrevet (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 av btl-norway
Skrevet

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.

Skrevet

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.

Skrevet (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 av aadnk

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...