Zahlen aus TextBox prüfen/auslesen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von MA-Maddin.

    Zahlen aus TextBox prüfen/auslesen

    Hallo Visual Basic Spezialisten!

    Ich habe eine Frage/ein kleines Problem:

    In einer Anwendung von mir werden in mehreren Textboxen zufällig angeordnet 10 Zahlen (von 1-63) ausgegeben. jede Zahl ist mit einem " , " getrennt.
    Beispiel:
    23, 57, 04, 19, 62, 11, 38, 34, 59, 26,

    Jetzt soll durch klicken eines Buttons überprüft werden, welche Zahlen in der TextBox stehen. Dazu habe ich folgenden Code geschrieben:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. Dim Feld1Num1, Feld1Num2, Feld1Num3, usw..... As Boolean
    3. If TextBox1.Text = "01" Then Feld1Num1 = True
    4. If TextBox1.Text = "02" Then Feld1Num2 = True
    5. usw.

    (hier oben liegt wahrscheinlich das Problem)

    Dann sollen für die Zahlen bestimmte Werte in eine Datei geschrieben werden (das ist eigentlich kein Problem):

    VB.NET-Quellcode

    1. Dim fw As StreamWriter
    2. fw = NewStreamWriter("scriptfile.txt", True)
    3. If Feld1Num1 = True Then
    4. fw.WriteLine("blablabla1")
    5. End If
    6. If Feld1Num2 = True Then
    7. fw.WriteLine("blablabla2")
    8. End If


    Wenn ich dann aber den Button drücke, wird nur die scriptfile.txt ohne Inhalt geschrieben.
    Wie könnte ich die Zahlen anders abchecken oder was mach ich falsch?


    Danke für Hilfe!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MA-Maddin“ ()

    Versuchs mal so:

    VB.NET-Quellcode

    1. If Feld1Num1 = True Then
    2. My.Computer.FileSystem.WriteAllText("scriptfile.txt","blablabla1,False)
    3. End If
    4. If Feld1Num2 = True Then
    5. My.Computer.FileSystem.WriteAllText("scriptfile.txt","blablabla2,False)
    6. End If
    hallo ma-maddin,

    verstehe ich das richtig ?
    23, 57, 04, 19, 62, 11, 38, 34, 59, 26,

    kann der inhalt einer der mehreren textboxen sein.

    wenn ja, dann text splitten

    VB.NET-Quellcode

    1. Dim temp() As String = Me.TextBox1.Text.Split(",")

    danach kannst du das array durchlaufen und prüfen

    gruss

    mikeb69
    @VBnator

    Geht nicht:
    Fehler 2 Fehler bei der Überladungsauflösung, da keine zugreifbare "WriteAllText" diese Anzahl von Argumenten akzeptiert.

    Der 2. Quellcode müsste eigentlich funktionieren, weil ich ihn schon oft so verwendet habe. Es sollen dann auch die Werte jedesmal in eine neue Zeile geschrieben werden, warum ich auch "WriteLine" verwende.

    Aber irgendwie kann er die TextBoxen nicht richtig prüfen. Wahrscheinlich wird nur geprüft, ob in der TextBox NUR die 01 oder NUR die 02 usw. steht !?

    @ mikeb69

    Ja, das ist richtig!
    Deinen Vorschlag werde ich gleich mal ausprbieren :rolleyes:
    hallo ma-maddin,

    dein speichern ist so schon richtig !
    schöner wäre es, wenn du using verwenden würdest, da am ende des using-blockes der speicher wieder automatisch freigegeben wird.

    VB.NET-Quellcode

    1. Using fw As StreamWriter = NewStreamWriter("scriptfile.txt", True)
    2. If Feld1Num1 = True Then
    3. fw.WriteLine("blablabla1")
    4. Else
    5. 'beachte, dass hier nichts geschrieben wird
    6. End If
    7. If Feld1Num2 = True Then
    8. fw.WriteLine("blablabla2")
    9. Else
    10. 'auch hier wird nichts geschrieben
    11. End If
    12. End Using

    deine datei kann auch leer sein, wenn alle abfragen = false sind.

    gruss

    mikeb69
    Also das mit dem

    Dim temp() As String = Me.TextBox1.Text.Split(",")

    bringt auch nichts (bis jetzt)

    Kann es sein, dass keine Zahlen gefunden werden weil der TextBox Inhalt so aussieht:

    VB.NET-Quellcode

    1. TextBox1.Text = AB & BD & AK & AZ & BO & AL & BC & AT & AG & BM
    2. TextBox2.Text = (andere Werte)

    Der sieht so aus, weil die Zahlen am Anfang der Anwendung auch eingegeben werden müssen und dann den ganzen Variablen zugewiesen werden (AA, AB, AC, AD, AE, AF usw.), damit sie gemixt wieder ausgegeben werden können.
    Jetzt sucht das Programm wahrscheinlich die ganzen Zahlen sieht aber nur AA AB AC usw ?!
    Ich dachte nur, das geht trotzdem so, weil ich ja die Zahlen in den TextBoxen SEHE.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MA-Maddin“ ()

    hallo ma-maddin,

    ok - so kommen wir hier nicht weiter
    ich bin von
    23, 57, 04, 19, 62, 11, 38, 34, 59, 26,

    ausgegangen
    jetzt sprichst du von
    AB & BD & AK & AZ & BO & AL & BC & AT & AG & BM

    eine komplett andere welt ist das.

    ich meine - wie der inhalt deiner textbox aussieht, wenn alle variablen einen wert haben siehst du ja in deiner textbox

    Jetzt sucht das Programm wahrscheinlich die ganzen Zahlen sieht aber nur AA AB AC usw ?!

    nein sucht es nicht

    mein code versucht im text der textbox kommas (,) zu finden und den string dort zu trennen.
    ganz so wie du es am anfang beschrieben hast.

    poste doch mal etwas code und erklär was du willst

    gruss

    mikeb69
    Ja, dass der String mit dem Code, den du mir geschickt hast, getrennt wird, weis ich schon. Ich meinte, dass die ganze Zeit schon von dem Programm zahlen gesucht werden aber nur AA, AB, AC usw gefunden wird (weis ich nicht, ob das so ist), weil ich ja an einer Stelle stehen habe: TextBox1.Text = AA & AB & AC.....
    Also keine Zaheln
    Aber: AA, AB, AC usw. wurden jeweils eine Zahl zugewiesen.

    Ich sende jetzt einfach mal die wichtigsten Stellen des Programmes, die da 'ne Rolle spielen.
    Im Eingabe Fenster werden die Zahlen in 43 TextBoxen eingegeben und in die *.ini Datei gespeichert.
    Im Ausgabe Fenster werden die Zaheln aus der *.ini wieder ausgelesen und den AA, AB, AC usw zugewiesen, damit sie dann ungeordnet in andere TextBoxen ausgegeben werden können.
    Jetzt sollen aus diesen TextBoxen die Zahlen gelesen werden.
    Verstehst?
    (ich weis schon meine Anwendung ist sehr Anfängerlich programmiert, aber es hat alles bis jetzt geklappt :D )

    Eingabe Fenster:

    VB.NET-Quellcode

    1. fw = New StreamWriter("Zahlen_ELLL_v1.01.ini", False)
    2. ReadString1 = TextBox1.Text
    3. ReadString2 = TextBox2.Text
    4. ReadString3 = TextBox3.Text
    5. ReadString4 = TextBox4.Text
    6. ReadString5 = TextBox5.Text
    7. ReadString6 = TextBox6.Text
    8. usw.
    9. .........
    10. fw.WriteLine(ReadString1)
    11. fw.WriteLine(ReadString2)
    12. fw.WriteLine(ReadString3)
    13. fw.WriteLine(ReadString4)
    14. fw.WriteLine(ReadString5)
    15. fw.WriteLine(ReadString6)
    16. fw.WriteLine(ReadString7)
    17. fw.WriteLine(ReadString8)
    18. fw.WriteLine(ReadString9)
    19. fw.WriteLine(ReadString10)
    20. usw.
    21. fw.Close()


    Ausgabe Fenster:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Dim AA, AB, AC, AD, AE, AF, AG, AH, AI, AJ, AK, AL, AM, AN, AO, AP, AQ, AR, ASS, AT, AU, _
    3. AV, AW, AX, AY, AZ, BA, BB, BC, BD, BE, BF, BG, BH, BI, BJ, BK, BL, BM, BN, BO, BP, BQ As String
    4. AA = ReadLineFromTextFile("Zahlen_ELLL_v1.01.ini", 0) & ", "
    5. AB = ReadLineFromTextFile("Zahlen_ELLL_v1.01.ini", 1) & ", "
    6. AC = ReadLineFromTextFile("Zahlen_ELLL_v1.01.ini", 2) & ", "
    7. AD = ReadLineFromTextFile("Zahlen_ELLL_v1.01.ini", 3) & ", "
    8. usw.
    9. ................
    10. TextBox1.Text = AL & AN & AP & ASS & AW & AX & BF & BI & BO & AU
    11. TextBox2.Text = BA & BL & ASS & AW & AE & AK & BG & AF & AR & BM
    12. TextBox3.Text = AT & AY & BC & AI & BJ & AH & AM & BE & BD & BP
    13. TextBox4.Text = AP & AV & BN & BK & AA & AJ & AQ & BQ & BH & AO
    14. TextBox5.Text = AK & BM & BJ & AC & AB & AD & AZ & BH & AG & BB
    15. TextBox6.Text = BN & BH & AZ & AY & BB & AG & AW & AL & BQ & AU
    16. usw.
    17. ................
    18. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    19. 'Textfelder überprüfen
    20. Dim Feld1Num1, Feld1Num2, Feld1Num3, Feld1Num4, Feld1Num5, Feld1Num6, Feld1Num7, _
    21. Feld1Num8, Feld1Num9, Feld1Num10, usw...
    22. ..........
    23. Dim temp() As String = Me.TextBox1.Text.Split(",")
    24. If TextBox1.Text = "01" Then Feld1Num1 = True
    25. If TextBox1.Text = "02" Then Feld1Num2 = True
    26. If TextBox1.Text = "03" Then Feld1Num3 = True
    27. If TextBox1.Text = "04" Then Feld1Num4 = True
    28. If TextBox1.Text = "05" Then Feld1Num5 = True
    29. If TextBox1.Text = "06" Then Feld1Num6 = True
    30. If TextBox1.Text = "07" Then Feld1Num7 = True
    31. usw.
    32. ..............
    33. Using fw As StreamWriter = New StreamWriter("scriptfile.txt", True)
    34. If Feld1Num1 = True Then
    35. fw.WriteLine("MouseClick ( , 350, 370 , , 30 ")
    36. End If
    37. If Feld1Num2 = True Then
    38. fw.WriteLine("MouseClick ( , 369, 370 , , 30 ")
    39. End If
    40. If Feld1Num3 = True Then
    41. fw.WriteLine("MouseClick ( , 387, 370 , , 30 ")
    42. End If
    43. If Feld1Num4 = True Then
    44. fw.WriteLine("MouseClick ( , 404, 370 , , 30 ")
    45. End If
    46. usw.

    *Bei den ......... ist noch anderer Code dazwischen

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MA-Maddin“ ()