Messagebox-Inhalt abhängig von Textbox

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von taylan15.

    Messagebox-Inhalt abhängig von Textbox

    Moin

    Hab ne TextBox1.
    In dem Textbox steht immer ein Offset und ich möchte dass eine Messagebox kommt sobald ein bestimmtes Offset in der TextBox steht.

    Ich würd es so machen wenn es gehen würde:


    If TextBox1.Text >= &H11941194 Then
    Messagebox.show("hi")
    End If

    Also Ziel ist es das AB einer BESTIMMTEN Offset eine Messagebox kommt und BIS einer bestimmten Offset nicht mehr auftaucht.
    Und ab der neuen wieder von vorne eine msgbox -> Ab der neuen Offset wieder eine neue MSGBOX
    Zb immer ab 11941194 bis 119F119F und dann ab 119F119F kommt ne neue MSGbox bis ....(Werd ich naher eintragen weis ned ausm kopf)

    Wenn ich den Code von oben benutze funktioniert es nicht.
    Es sagt mir foglende Fehlermeldung:

    SQL-Abfrage

    1. Ungültige Konvertierung von der Zeichenfolge 0F690F69 in Typ Double



    Kann mir jemand helfen den Code so zu umschreiben dass es funktioniert ?
    Fertig Codes werden mit hilfreiche Antworten bewertet.

    Vielen Dank auch!


    Edit by Manschula: "Kurze Frage" ist kein aussagekräftiger Titel! Zukünftig beachten! --> Titel einigermaßen verbessert

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Manschula“ ()

    Schau dir mal dashier an.
    Verglichen werden dann nicht die Hex-Ausdrücke sondern Integer. Dies bedeutet, getreu dem Motto "Trennung von Daten und GUI", indem die zu vergleichenden Zahlen als Integervariablen gespeichert und verarbeitet werden. Lediglich die darstellung in der Textbox erfolgt in der gewünschten Hex-Darstellung.

    Und übrigens solltest du folgende Sprüche weglassen:

    taylan15 schrieb:

    Fertig Codes werden mit hilfreiche Antworten bewertet.

    Dies stößt hier immer auf Widerstand, da hier gern geholfen wird, aber dieses Forum keine "Codefabrik" ist.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Von wo kommen denn die Offsets? Werden die händisch eingetragen oder kommen diese von einer anderen Quelle?

    Ansonsten, Text Konvertieren.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D

    Gelöschter Benutzer schrieb:

    .text ist ein string.

    option strict on!

    das führt dich dann zur lösung.

    und codebettler mag hier niemand ;)
    Jo wie kann man diesen code benutzen ???
    Bin neu in sowas und weis nciht ganz genau.

    Könntest du mir sagen wo ich das einfügen soll?


    @BiedermannS
    Sie werden vom Tool gelesen und in die Textbox eingetragen. Und ich kenne die ganzen Offsets hab sie extra wo gepostet und würde jetzt die funktion mit der MSGBox machen also ich weis ab welchem offset immer welche msgbox kommen soll.
    Da oben war nur ein kleiner Beispiel zum verstehen.

    Danke,mfg
    Was genau ist der Input, was genau soll der Output sein :?:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Wie gesagt ich kenn mich nicht so gut aus mit den Fachbegriffen, könntest du bitte deine frage anders formulieren... ?
    Es soll nur den Textbox Text ankucken dann mit ner If Funktion im Timer nach checken ob es in einem bestimmten Ofset Bereich von Offzet A bis Offset Z liegt und wenn ja dann eine MSGBOX

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „taylan15“ ()

    taylan15 schrieb:

    @RoadFromGermany
    Haste mich gemeint?
    Fang zunächst an mit Option Strint On.
    Wie genau sieht denn der Inhalt dieser TextBox aus?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Oh hab was falsches formuliert tut mir sehr leid aber in der Textbox steht kein Offset sondern ein Hex String

    Ist immer verschieden ein Beispiel Inhalt vom TXTBox ist so : 11941194

    Und ich will dann dass es immer wenn der txtbox von 11941194 bis 119F119F immer eine bestimmte msgbox inhalt gibt damit man weis welchem bereich man gerade ist und dann ab 119F119F bis 11A411A4 ein neues bereich mit ner neuen msgbox ist.
    Es soll sich NIX veränder in der textbox nur eine MSGBOX erscheinen von einem bestimten Bereich bis zum bestimmten bereich.

    taylan15 schrieb:

    Sie werden vom Tool gelesen und in die Textbox eingetragen.

    Von welchem Tool? wie werden die Offsets eingetragen? Welchen Typ haben die Offsets bevor sie eingetragen werden, String, Double, Integer, Byte??

    Poste mal was von deinem Code. am besten das, wo die Offsets in die Textbox eingetragen werden...
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D

    BiedermannS schrieb:

    taylan15 schrieb:

    Sie werden vom Tool gelesen und in die Textbox eingetragen.

    Von welchem Tool? wie werden die Offsets eingetragen? Welchen Typ haben die Offsets bevor sie eingetragen werden, String, Double, Integer, Byte??

    Poste mal was von deinem Code. am besten das, wo die Offsets in die Textbox eingetragen werden...

    tool = Form1

    Bei Listbox Klick (Bestimmten Item, dass bei ner bestimmten Offset den String in die Textbox einträgt)
    ->An dem Offset suchen und den 4 Stelligen HexString in die Textbox eintragen .

    Dann Timer1.start

    SQL-Abfrage

    1. If HeighBox5.Text = "11601160" Then MSGBOX("220") End If´
    2. If HeighBox5.Text = "11501150" Then MSGBOX("210") End If


    timer1.stop


    Also bei Listbox klick-> kopiert es (bei dem bestimmten Offset den ich vorher angegeben hatte )
    den HEXT STRING in die Textbox ein und startet timer1!

    -er kuckt nach ob textbox den bestimmten HexString hat wenn ja dann immer ne MSGbox.

    Mein Ziel:Ich will nicht alles einzeln coden, möchte dass er immer von 11501150 bis 11601160 ne bestimmte msgbox abgibt -...
    Hast du meinen Post ühaupt gelesen?
    Hex-Zahlen sind lediglich die Darstellung von Ganzzahlen in einem bestimmten Format. In diesem Fall eben Hex. Du mußt also die Hex-Zahl, die als String vorliegt in einen Integer wandeln und dann diesen Integer vergleichen. Zum Umwandeln aus einem String teste mal das hier in einer Konsolenanwendung:

    VB.NET-Quellcode

    1. Sub Main()
    2. Do
    3. Dim s As String = Console.ReadLine
    4. Dim p As IFormatProvider
    5. Dim i As Integer
    6. If Integer.TryParse(s, Globalization.NumberStyles.HexNumber, p, i) Then
    7. Console.WriteLine("Integer " & s & " entspricht Hex " & i)
    8. Else
    9. Console.WriteLine("Das is aber keine Hex-Zahl!")
    10. End If
    11. Loop
    12. End Sub

    Tryparse ist die beste Lösung für sowas, da Fehleingaben abgefangen werden können.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Vatter schrieb:

    @Vatter
    Das ist zu spät
    Ich habe über tausende von Funktionen wo er Hex lest und bearbeitet.
    hab nix umgewandelt einfach so die funktion genutzt funkte auch perfekt.

    Ich möchte nur bei dem teil meines codes es so machen. (Wenn jemand mir mal helfen köntte so zu machen wie ich es wünschte!)
    Habs getestet:

    Update: Ich brauche keinen Hex Umwandler!!!! Ich weis auch die INTs ich brauch sowas nicht ich will nur dass er es überprüft das mit den HexSTRING(Nicht offset) ob es der bereich ist wenn ja dann MSGBOX!!!!

    Was ich will ist nur das die HEXDEZIMALZAHLEN VOM TEXTBOX ÜBERPRÜFT WERDEN VON A BIS B IMMER EINE MSGBOX!!!
    HEXSTRING STEHT IN TXTBOX

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „taylan15“ ()

    Dann sieh Dir mal das hier an:

    VB.NET-Quellcode

    1. Dim ll = &H123ABC
    2. Dim txt = ll.ToString("X")
    3. Dim l2 = Convert.ToInt32(txt, 16)
    4. MessageBox.Show(l2.ToString("X"))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Du solltest dir eher grundlegende Gedanken über deinen Programmierstil sowie deinen Kenntnisstand machen, bevor du dich weiter durchpfuscht. Wenn du mit Offsets arbeitest sind das Zahlen und keine Strings. Damit solltest du auch arbeiten.

    Die Methode die Vatter gepostet hat, ist die um HEX-Strings in Integer umzuwandeln. Wenn du das nicht verstehst, zurück zu den Grundlagen.

    taylan15 schrieb:

    Ich möchte nur bei dem teil meines codes es so machen. (Wenn jemand mir mal helfen köntte so zu machen wie ich es wünschte!)

    Wir helfen dir es richtig zu machen. Und genau das wird auch gemacht, wenn du dir die Posts durchliest. Aber umsetzen und selbst denken musst du trotzdem.

    Edit:

    taylan15 schrieb:

    Was ich will ist nur das die HEXDEZIMALZAHLEN VOM TEXTBOX ÜBERPRÜFT WERDEN VON A BIS B IMMER EINE MSGBOX!!!
    HEXSTRING STEHT IN TXTBOX

    Erstens: versuchen wir dir das die ganze Zeit zu erklären. Dazu musst du das ganze in eine Zahl umwandeln. Also Integer.
    Zweitens: hat dir die Shift-Taste etwas getan, weil du dauernd darauf herum hackst? Nur Großbuchstaben helfen nicht beim Lösen von Problemen.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D
    Ja schon klar aber ICH WILL NICHT umgewandelt haben.
    Was ich meinte war nicht HEX Offset hatte mich ganze zeiot verschrieben.
    Das in der Textbox ist ein HEX STRING.

    Und ich will dass immer ab bestimmte Hex STRINGS bis zum bestimmten HEX STRING ZB: 11501150 bis 11601160
    Eine MSGBOX kommt.

    So etwas was ähnliches wie wenn es vergleicht: txtbox.text >= mehr als 11501150 ist dann msgbox.
    Aber VB weis nur ned dass ich mit Hex Werten arbeite und denkt es wär Integer.
    Deswegen brauche ich DA Hilfe :(

    Und ich würds gerne ohne umwandlung tun wenn es geht!

    taylan15 schrieb:

    Ja schon klar aber ICH WILL NICHT umgewandelt haben.
    Dann fahr weiter mit dem Holzroller in die Schule.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Strings im Hex-Format lassen sich nicht vergleichen. Strings sind keine zahlen und lasen sich deshalb ohne Umwandlung allenfalls alphabetisch sortieren.
    Daraus folgt, dass du die Umwandlung benötigst. Sowohl die Dingens aus der Textbox als auch deine Vergleichszahlen müssen zwingend als Integer vorliegen um verglichen werden zu können.#

    Solltest du eine bessere Methode finden, schreib ein Tutorial darüber.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    HEX ist eine zahl, nur mit 16er Basis.

    Wenn du überprüfen willst ob eine Zahl in einem Bereich ist dann macht man das mit größer als / kleiner als.

    Also wandel das Ganze in ne Zahl um und gut ist.
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D