Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 12:28

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB.NET] Hex in int umwandeln

Discussion on [VB.NET] Hex in int umwandeln within the .NET Languages forum part of the Coders Den category.

Closed Thread
 
Old   #1




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
[VB.NET] Hex in int umwandeln

Hallo ich möchte einen 16 bit hex wert in einen Integer mit vb.net umwandeln

dazu lese ich erstmal etwas in ein array und wandel des dann mitm bitconverter um
aber was sonst funktionier funkt nicht und ich weiß nicht wiso
Code:
 
    Dim wIDB() As Byte
    Dim Bytes() As Byte
       wIDB = {"&H" & Bytes(2), "&H" & Bytes(3)}
Bytes(2) = CB als hex
und
Bytes(3) = 66 als hex

der Fehler ist :
Die arithmetische Operation hat einen Überlauf verursacht.


kann mir jemand helfen?
der code ist korrekt so hab ich das schon öfters gemacht und auch Bytes(2) und Bytes(3) ist korrekt was habe ich dann falsch gemacht?
und das ergebnis sprengt auch nicht den Ramen eines integer16
stotterer09 is offline  
Old 09/26/2013, 16:41   #2
 
tolio's Avatar
 
elite*gold: 2932
The Black Market: 169/1/0
Join Date: Oct 2009
Posts: 6,966
Received Thanks: 1,097
dim result as integer = convert.int32("[hex]",16)

&H wird nicht benötigt
tolio is offline  
Old 09/26/2013, 16:45   #3
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Oder:
Code:
Sub Main()
        Dim bytes() As Byte = New Byte() {&HCB, &H66}
        Dim i As Int16 = BitConverter.ToInt16(bytes, 0)
        Console.WriteLine("Integer: {0}", i)
        Console.ReadLine()
End Sub
qkuh is offline  
Old 09/26/2013, 16:50   #4




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Ah ich hab jetz kapiert warum das den Überlauf verursacht hat ich hab ned bedacht das ich zuert den Bytes(3) einlesen muss wegen Little und Big Endian und so

es geht trozdem ned.
jetz kommt(auch mit deinem code tolio)
Code:
   wIDI(NPCCount) = Convert.ToInt32(Bytes(3) & Bytes(2), 16)
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

den fehler kenne ich davon wenn etwas NULL zurück gibt was es aber in diesem fall sicher nicht tut

Quote:
Originally Posted by qkuh View Post
Oder:
Code:
Sub Main()
        Dim bytes() As Byte = New Byte() {&HCB, &H66}
        Dim i As Int16 = BitConverter.ToInt16(bytes, 0)
        Console.WriteLine("Integer: {0}", i)
        Console.ReadLine()
End Sub
so geht das ja auch aber der wert muss ja variabel sein nur in dem beispiel hab ich das verwendet
stotterer09 is offline  
Old 09/26/2013, 17:34   #5
 
elite*gold: 100
Join Date: Aug 2005
Posts: 595
Received Thanks: 208
Quote:
wIDI(NPCCount) = Convert.ToInt32(Bytes(3) & Bytes(2), 16)
Bin gerad etwas im Stress wenns also schon gesagt wurde oder ich hier gerade was verwechsel sorry, aber sollte nen Int32 nich 4 Bytes haben ?
dready is offline  
Old 09/26/2013, 22:00   #6
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
@stotterer09: Ersetz &HCB und &H66 einfach durch Bytes(2) und Bytes(3) bzw durch Bytes(3) und Bytes(2), je nachdem ob little- oder big-endian.

@dready: Ja. Int32 -> 32bits -> 4bytes
qkuh is offline  
Old 09/26/2013, 22:48   #7




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by qkuh View Post
@stotterer09: Ersetz &HCB und &H66 einfach durch Bytes(2) und Bytes(3) bzw durch Bytes(3) und Bytes(2), je nachdem ob little- oder big-endian.

@dready: Ja. Int32 -> 32bits -> 4bytes
Ich bin ja ned blöd ... es liegt auch ned drann das mein code falsch ist sondern das ich irgendwas überseh und es deswegen ned geht ausserdem wäre es.mit den variablen das selbe wie ich im ersten beitrag geschrieben hab
Ausserdem scheitert es doch schon am übetragen in das 2. Arrray vll. War die ünerschtift verfehlt
@dready Ja da liegst du richtig deswegen hab ich ja aus den 32 wieder 16 gemacht
stotterer09 is offline  
Old 09/27/2013, 09:55   #8
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
Quote:
Originally Posted by stotterer09 View Post
so geht das ja auch aber der wert muss ja variabel sein nur in dem beispiel hab ich das verwendet
Dann zeig doch mal deinen ganzen Code her, sonst kann dir hier keiner helfen, wenn du nicht genauer spezifizierst, was du für eine Ausgangssituation hast. Wie liest du was ein etc.
Mi4uric3 is offline  
Old 09/27/2013, 17:39   #9




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by Mi4uric3 View Post
Dann zeig doch mal deinen ganzen Code her, sonst kann dir hier keiner helfen, wenn du nicht genauer spezifizierst, was du für eine Ausgangssituation hast. Wie liest du was ein etc.
der ganze code ist paar 100 Zeilen lang hier nochmal alles was wichtig ist:
Code:
 
    Private Sub LadenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LadenToolStripMenuItem.Click
        OpenFileDialog1.ShowDialog()
        Bytes = My.Computer.FileSystem.ReadAllBytes(OpenFileDialog1.FileName)
        Laden()

    End Sub
   Private Sub Laden()
        AnzahlNPC = New Byte() {"&H" & Bytes(0), "&H" & Bytes(1)} 'das hier funkt noch obwohl es der gleiche code is
        MsgBox(BitConverter.ToInt16(AnzahlNPC, 0))

        Dim b As Integer = 7
        Dim b2 As Integer
        Dim NPCCount As Integer = 0
        '()


        Dim bytesFLoat As Byte()
        Dim z As Integer = 0


        z = 0
        wIDB = {"&H" & Bytes(3), "&H" & Bytes(2)}
        wIDI(NPCCount) = BitConverter.ToInt16(wIDB, 0)
'Da kommt noch mehr was aber nichts zur sache tut
End Sub
Und das sind die ersten 9 bytes die eingelesen werden:
Code:
1A 01 CB 66 00 00 D5 03 0D
stotterer09 is offline  
Old 09/27/2013, 18:38   #10
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Schau dir mal Dokumentation an.
qkuh is offline  
Old 09/27/2013, 18:55   #11
 
Mi4uric3's Avatar
 
elite*gold: 405
Join Date: Dec 2007
Posts: 6,615
Received Thanks: 6,358
Quote:
Originally Posted by stotterer09 View Post
der ganze code ist paar 100 Zeilen lang hier nochmal alles was wichtig ist:
Code:
 
    Private Sub LadenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LadenToolStripMenuItem.Click
        OpenFileDialog1.ShowDialog()
        Bytes = My.Computer.FileSystem.ReadAllBytes(OpenFileDialog1.FileName)
        Laden()

    End Sub
   Private Sub Laden()
        AnzahlNPC = New Byte() {"&H" & Bytes(0), "&H" & Bytes(1)} 'das hier funkt noch obwohl es der gleiche code is
        MsgBox(BitConverter.ToInt16(AnzahlNPC, 0))

        Dim b As Integer = 7
        Dim b2 As Integer
        Dim NPCCount As Integer = 0
        '()


        Dim bytesFLoat As Byte()
        Dim z As Integer = 0


        z = 0
        wIDB = {"&H" & Bytes(3), "&H" & Bytes(2)}
        wIDI(NPCCount) = BitConverter.ToInt16(wIDB, 0)
'Da kommt noch mehr was aber nichts zur sache tut
End Sub
Und das sind die ersten 9 bytes die eingelesen werden:
Code:
1A 01 CB 66 00 00 D5 03 0D
Dein Code ist völliger Schwachsinn, wenn du das erreichen willst, was ich verstanden habe.
Verstanden habe ich folgendes: Du möchtest eine Datei einlesen und die 1. beiden Bytes (WORD) sind die Anzahl der NPCs und die willst du einlesen und im Hex-Format ausgeben.
Ist das korrekt? Oder willst du einen String eingeben der einen Hexadezimalwert enthält und den in einen Integer umwandeln?
Drück dich bitte mal gewählter aus..
Mi4uric3 is offline  
Thanks
1 User
Old 09/28/2013, 09:49   #12




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Also ich möchte eine datei einlesen und dann den 3und 4. Byte in ein 16bitinteger umwandeln
Bei den code wird 2 mal was in ein array übergegeben beim ersten mal gehts prima beim 2. Mal (in das array widb) gdhts ned
stotterer09 is offline  
Old 09/28/2013, 11:57   #13
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Hab dich mal bei Skype geadded, um dir zu helfen
qkuh is offline  
Thanks
1 User
Old 09/28/2013, 12:24   #14




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
danke qkuh jetz gehts kann geschlossen werden
stotterer09 is offline  
Old 09/30/2013, 18:56   #15

 
xxfabbelxx's Avatar
 
elite*gold: 900
Join Date: Apr 2009
Posts: 14,981
Received Thanks: 11,403
closed on request
xxfabbelxx is offline  
Closed Thread


Similar Threads Similar Threads
vpj in av i umwandeln
04/10/2012 - Technical Support - 4 Replies
Hab ein Video in avi format, vornedran will ich son intro dranhngen... aber das Intro ist in vpj.. Wie krieg ich das in AVI...?
.ico in .jpg umwandeln
12/07/2009 - AutoIt - 5 Replies
Kann man mit Autoit *.ico "Bilder" in *.jpg Bilder umwandeln? Ich brauche das nämlich für ein Programm. Es soll Programme schnell starten. Dazu soll es den Icon eines Programms anzeigen. So sieht der Code aus: #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3>
[HOW TO] exe umwandeln?
10/04/2009 - Metin2 Private Server - 0 Replies
wie wandelt man eine exe um?



All times are GMT +1. The time now is 12:30.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.