ERLEDIGT
NEIN
NEIN
ANTWORTEN
9
9
ZUGRIFFE
2387
2387
EMPFEHLEN
-
Hi leute
Ich hab mir jetzt mal vorgenommen ein bisschen mit vb.net zu programmieren und wollte mit einem Hex2Dez-Programm anfangen.
Ha es eigentlich fertig aber ich wollte es so machen, dass wenn ich nach zwei Zeichen z.B. 7A (Hex) in der Textbox ein Leerzeichen mache und dass Programm dann auch automatisch ein Leerzeichen in der Ausgabe-Textbox der Dezimalzahl macht, aber ich krieg das nicht hin.
Im Moment ist es so dass wenn ich zwei hexa-zahlen eingebe er dann die richtige zahl ausgibt aber wenn ich zwei weitere hinzufüge gibt er eine 5-stellige zahl aus.Ich wollte es aber so machen, dass es nach jeder 2-ten hexa-zahl ein leerzeichen in beiden textboxen macht und die werte einezeln berechnet.
So ist es:
7A B6 (Hex)
31414 (Dez)
So soll es sein:
7A B6 (Hex)
122 182 (Dez)
Hier noch mein Code:
Public Class Form1
Private Sub Button_Berechen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Berechen.Click
Dim s As String = ""
Dim value As Integer
s = TextBox_Hex.Text
value = Val("&h" & s)
End Sub
End Class
-
25.12.07 09:16 #2
- Registriert seit
- Apr 2005
- Beiträge
- 120
Hi badboy,
das Problem ist, dass die Val-Funktion Leerzeichen völlig kalt lässt. Daher musst du die Zeichen splitten und anschließend umwandeln. Außerdem kennt der Integer-Datentyp natürlich keine Leerzeichen. Das geht nur bei Strings. Versuch's mal mit folgender Funktion:
GrußCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
[COLOR=Blue] Public Function [/COLOR]HexToDez([COLOR=Blue]ByVal [/COLOR]HexCode [COLOR=Blue]As String[/COLOR]) [COLOR=Blue]As String[/COLOR][INDENT][COLOR=Green]' Ergebnis-Variable initialisieren[/COLOR] [COLOR=Blue]Dim [/COLOR]Result [COLOR=Blue]As String[/COLOR] = [COLOR=DarkRed]""[/COLOR] [COLOR=Green] ' String an Leerzeichen auftrennen[/COLOR] [COLOR=Blue]Dim [/COLOR]Items() [COLOR=Blue]As String[/COLOR] = HexCode.Split(Chr(32)) [COLOR=Green] ' Zeichen durchlaufen[/COLOR] [COLOR=Blue] For Each[/COLOR] Item [COLOR=Blue]As String In[/COLOR] Items[INDENT][COLOR=Green]' Zeichen umwandeln und dem Ergebnis hinzufügen[/COLOR] Result &= Val([COLOR=DarkRed]"&h"[/COLOR] & item) & Chr(32) [/INDENT][COLOR=Blue]End For[/COLOR] [COLOR=Green] ' Letztes Leerzeichen entfernen[/COLOR] Result = Result.Trim() [COLOR=Green] ' Ergebnis zurückgeben[/COLOR] [COLOR=Blue]Return [/COLOR]Result [/INDENT][COLOR=Blue]End Function[/COLOR]
PhoenixLoe
-
Hi
Danke erstmal für deine Antwort.
Aber ich habe ein Problem. Ich weiß leider nicht wie ich meine Hex-Textbox, Dez-Textbox und meinen Button_Berechnen einbauen muss. Also in der Hex-Textbox (xx xx xx xx) die hexa-zahl eingeben und in der Dez-Textbox die dezimalzahl so ausgeben (xxx xxx xxx xxx).
Das umrechnen soll dann passieren, wenn ich auf den Button:berechnen klicke.
Bitte helft mir.
Danke
-
25.12.07 11:08 #4
- Registriert seit
- Apr 2005
- Beiträge
- 120
Wenn du die obige Funktion verwendest, geht das folgendermaßen in der Button-Click-Funktion:
Code :1
Dez_TextBox.Text = HexToDez(Hex_TextBox.Text)
Gruß
PhoenixLoe
-
weiß nicht aber irgendwie t das immer noch nicht. er macht gar nichts wenn ich auf den button klicke.
Hier noch mal mein vollständiger code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Public Class Form1 Public Function HexToDez(ByVal HexCode As String) As String ' Ergebnis-Variable initialisieren Dim Result As String = "" ' String an Leerzeichen auftrennen Dim Items() As String = HexCode.Split(Chr(32)) ' Zeichen durchlaufen For Each Item As String In Items Next ' Zeichen umwandeln und dem Ergebnis hinzufügen Result &= Val("&h" & item) & Chr(32) ' Letztes Leerzeichen entfernen Result = Result.Trim() ' Ergebnis zurückgeben Return Result End Function Private Sub Button_Berechen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Berechen.Click TextBox_Dez.Text = HexToDez(TextBox_Hex.Text) End Sub End Class
-
25.12.07 11:53 #6
- Registriert seit
- Apr 2005
- Beiträge
- 120
Wenn das dein Code ist, dann kann's auch nicht funktionieren. Schau dir mal meinen obigen Post an und vergleiche ihn mit deiner Funktion. Zwischen der For Each - Schleife steht bei dir nichts, was er ausführen könnte, und das, was da stehen sollte, ist bei dir darunter auskommentiert.
Nimm mal lieber das hier
:
GrußCode :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
[COLOR=Blue]Public Class[/COLOR] Form1 [COLOR=Blue]Public Function[/COLOR] HexToDez([COLOR=Blue]ByVal [/COLOR]HexCode [COLOR=Blue]As String[/COLOR]) [COLOR=Blue]As String[/COLOR] [COLOR=Green] ' Ergebnis-Variable initialisieren [/COLOR] [COLOR=Blue]Dim [/COLOR]Result [COLOR=Blue]As String[/COLOR] = [COLOR=DarkRed]"" [/COLOR] [COLOR=Green]' String an Leerzeichen auftrennen [/COLOR] [COLOR=Blue]Dim [/COLOR]Items() [COLOR=Blue]As String[/COLOR] = HexCode.Split(Chr(32)) [COLOR=Green]' Zeichen durchlaufen [/COLOR] [COLOR=Blue]For Each[/COLOR] Item [COLOR=Blue]As String In[/COLOR] Items [COLOR=Green]' Zeichen umwandeln und dem Ergebnis hinzufügen [/COLOR] Result &= Val([COLOR=DarkRed]"&h"[/COLOR] & Item) & Chr(32) [COLOR=Blue]End For [/COLOR] [COLOR=Green]' Letztes Leerzeichen entfernen [/COLOR] Result = Result.Trim() [COLOR=Green]' Ergebnis zurückgeben [/COLOR] [COLOR=Blue]Return [/COLOR]Result [COLOR=Blue]End Function[/COLOR] [COLOR=Blue]Private Sub [/COLOR]Button_Berechnen_Click([COLOR=Blue]ByVal [/COLOR]Sender[COLOR=Blue] As Object[/COLOR], [COLOR=Blue]ByVal [/COLOR]e [COLOR=Blue]As [/COLOR]System.EventArgs) [COLOR=Blue]Handles [/COLOR]Button_Berechnen.Click[INDENT]TextBox_Dez.Text = HexToDez(TextBox_Hex.Text) [/INDENT][COLOR=Blue]End Sub[/COLOR] [COLOR=Blue]End Class[/COLOR]
PhoenixLoe
PS: Wenn du aus dem Forum hier Code kopierst, wird er beim Einfügen falsch formatiert. Du musst also nachträglich das Ganze anpassen.
-
Jo du bist spitze es geht. Hätte aber noch 2 fragen.
1. wie kann ich zwischen den dezimalzahlen den abstand ändern z.b in einen punkt oder so?
2. W ie mache ich das mit der enter-taste wenn ich die drücke, dass der button_berechnen gedrückt wird?
-
25.12.07 12:15 #8
- Registriert seit
- Apr 2005
- Beiträge
- 120
OK, die zweite Frage lässt sich leicht beantworten.
Als erstes musst du die Eigenschaft AcceptsReturn des Textfelds auf True setzen. Anschließend erstellt du das KeyPress-Event der TextBox und fügst folgenden Code ein:
Code :1
[COLOR=Blue]If [/COLOR]e.KeyChar = Chr(13) [COLOR=Blue]Then [/COLOR]Button_Berechnen.PerformClick()
Deine erste Frage habe ich allerdings nicht wirklich verstanden. Könntest du die bitte noch einmal genauer schildern?
Gruß
PhoenixLoe
-
Jo danke meine erste frage hab ich schon gelöst.
Ich muss mich recht herzlich bei dir bedanken.
Danke,Danke,Danke,Danke,Danke,Danke
Frohe Weihnachten
-
25.12.07 12:27 #10
- Registriert seit
- Apr 2005
- Beiträge
- 120
Gleichfalls und gern geschehen!
Ähnliche Themen
-
Bitte helft mir...:(?
Von Clarice im Forum PhotoshopAntworten: 5Letzter Beitrag: 20.07.07, 15:48 -
Bitte helft mir wenn ihr ein Programm zum chinesch schreiben kennt.
Von Cizilia im Forum Mac OSAntworten: 4Letzter Beitrag: 18.07.05, 09:50 -
Bitte helft mir.....
Von Anja im Forum HTML-EditorenAntworten: 13Letzter Beitrag: 30.04.03, 10:28 -
Bitte helft mir
Von Gohan im Forum PhotoshopAntworten: 4Letzter Beitrag: 16.09.02, 20:14 -
Bitte helft mir ************!
Von ReFresher im Forum PhotoshopAntworten: 3Letzter Beitrag: 22.10.01, 16:19





Zitieren
Login





