Kurze Hilfe

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von VB1963.

    Hey,

    was ich zuerst sagen möchte ist, dass ich noch nicht viel mit Programmiersprachen zu tun hatte.
    Also mein Problem ist, dass zwar "ERROR" angezeigt wird, allerdings "sehr gut" bis "ungenügend" nicht.
    Wahrscheinlich ist nur ein sehr dummer Fehler und ihr könnt mir schnell helfen

    Visual Basic-Quellcode

    1. Private Sub txtEingabe_Change()
    2. Dim strEingabe As String
    3. Dim strErgebnis As String
    4. strErgebnis = Val(lblErgebnis.Caption)
    5. strEingabe = Val(txtEingabe.Text)
    6. If strEingabe = 0 Then
    7. strErgebnis = "ERROR"
    8. If strEingabe = 1 Then
    9. strErgebnis = "sehr gut"
    10. End If
    11. If strEingabe = 2 Then
    12. strErgebnis = "gut"
    13. End If
    14. If strEingabe = 3 Then
    15. strErgebnis = "befriedigend"
    16. End If
    17. If strEingabe = 4 Then
    18. strErgebnis = "ausreichend"
    19. End If
    20. If strEingabe = 5 Then
    21. strErgebnis = "mangelhaft"
    22. End If
    23. If strEingabe = 6 Then
    24. strErgebnis = "ungenügend"
    25. End If
    26. If strEingabe > 6 Then
    27. strErgebnis = "ERROR"
    28. End If
    29. End If
    30. lblErgebnis.Caption = strErgebnis
    31. End Sub


    Die Aufgabe war es die If-Blöcke verschachtelt zu machen.
    Kein Ahnung wer euch die Aufgaben gibt, aber Zeitgemäß ist VB6 eig nicht mehr :D

    Allerdings solltest du hier komplett von alleine draufkommen, die Aufgabe sollte eig. nicht sehr schwer sein. Einfach mal ein bisschen Debuggen mithilfe von MessageBox.Show und dann die Logik nachvollziehen. Dann solltest du ohne Probleme die Lösung finden können.

    Mfg
    Korrigiert mich, wenn ich falsch liege, aber gibt es im VB6 etwa kein Select Case?

    Wenn doch, solltest du das definitiv dafür verwenden, du hast hier einen optimalen Fall von einer Mehrfachauswahl.
    Desweiteren solltest du mit den richtigen Datentypen arbeiten, mal hier ne Double, mal da n String, also sauber ist das nicht^^..

    Schau dir mal diesen Code an:

    Visual Basic-Quellcode

    1. Private Sub txtEingabe_Change()
    2. Dim strErgebnis As String
    3. Select Case txtEingabe.Text
    4. Case "1" : strErgebnis = "sehr gut"
    5. Case "2" : strErgebnis = "gut"
    6. Case "3" : strErgebnis = "befriedigend"
    7. Case "4" : strErgebnis = "ausreichend"
    8. Case "5" : strErgebnis = "mangelhaft"
    9. Case "6" : strErgebnis = "ungenügend"
    10. Case Else : strErgebnis = "ERROR"
    11. End Select
    12. lblErgebnis.Caption = strErgebnis
    13. End Sub


    Mehrere Ifs, die hier nunmal hintereinander ausgeführt werden ergeben keinen Sinn, daher schaust du in einer einzelnen Mehrfachauswahl welcher Wert vorliegt (als String!) und weißt der Ergebnis-Variable einen passenden Wert zu, der später angezeigt wird.
    Polling is trolling!

    Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
    Wenn man's ein wenig strukturiert angeht:

    VB.NET-Quellcode

    1. Private Sub txtEingabe_Change()
    2. lblErgebnis.Caption = ConvertIntoWords(txtEingabe.Text)
    3. End Sub
    4. Private Function ConvertIntoWords(value As String) As String
    5. ConvertIntoWords = "ERROR"
    6. If value = "1" Then ConvertIntoWords = "sehr gut"
    7. If value = "2" Then ConvertIntoWords = "gut"
    8. If value = "3" Then ConvertIntoWords = "befriedigend"
    9. If value = "4" Then ConvertIntoWords = "ausreichend"
    10. If value = "5" Then ConvertIntoWords = "mangelhaft"
    11. If value = "6" Then ConvertIntoWords = "ungenügend"
    12. End Function
    Ein Return gibt's leider in VB6 nicht...

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