1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Brauche dringend Hilfe bei Visual Basic

Discussion in 'Programmieren' started by Extremefall2008, Sep 12, 2009.

Thread Status:
Not open for further replies.
  1. Ich habe neu mit Visual Basic angefangen und nun beginnt schon das erste Problem. Ich versuche Platzsparer/Platzhalter einzubauen, doch es erscheint folgender Fehler: Ungültige Konvertierung von der Zeichenfolge ?2 in Typ Double.

    Ich habe schon ?/*/# ausprobiert. Mein Quelltext:

    Private Sub TxtNumber_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TxtNumber.TextChanged
    Dim Nummer As Integer
    Nummer = TxtNumber.Text
    If Nummer = ("?2") Then MsgBox("Text")
    End Sub

    Kann mir einer helfen? Wäre echt super, denn ich bin am verzweifeln :(
    :bahnhof:
    :confused:
     
  2. Falcon37

    Falcon37 Ganzes Gigabyte

    Wenn du Text in Zahlen umwanden willst, dürfen in dem Text auch nur Ziffern vorkommen. ;)
     
  3. Ich habe jetzt ein Textfeld und gebe dort immer zahlen ein. Bei der zweiten Zahl bricht es dann immer ab und zeigt mir den Fehler. Also weiß ich auch nciht, was ich ändern kann. Wenn ich das ?/* oder # Raute Zeichen weg nehme, funktioniert es. Nur das Problem ist, dass ich es so machen will, wenn eine beliebige Zahl eingegeben wird und dann z.B. die 2 folgt, soll eine Nachricht ausgegeben werden.

    Weißt du, wie ich das Problem lösen kann?
     
  4. Falcon37

    Falcon37 Ganzes Gigabyte

    Ich würde den String dahingehend untersuchen ob an letzter Stelle ein 2 steht und dann die Meldung ausgeben.
    Sieh dir dazu mal die mid-Funktion näher an.
     
  5. Wie gesagt: Ich bin Anfänger und kompletter Neuling. Kannst du mir nicht die Änderung sagen, die ich am Quelltext vollnehmen muss?
     
  6. Falcon37

    Falcon37 Ganzes Gigabyte

    Du willst also Anfänger bleiben?
    In der VB-Hilfe ist die Funktion sehr gut beschrieben.
     
  7. und wo ist die? Ich will es aber am liebsten mit meinem Beispiel lernen.. ;)
     
  8. Falcon37

    Falcon37 Ganzes Gigabyte

    F1 oder ?, da wo die Hilfen immer sind. :confused:
     
  9. Habe es mit If Nummer Like gemeistert =)
     
  10. Falcon37

    Falcon37 Ganzes Gigabyte

    Na also, viele Wege führen nach Rom. ;)
     
  11. VB-Coder

    VB-Coder Megabyte

    Also du willst das wenn du 2 Zahlen eingibst, die durch einen Platzhalter getrennt werden eine MSGbox geöffnet wird. Richtig ?

    Beispiel:
    Du schreibst 156?26 - Also Zahl 1-Platzhalter-Zahl2 und dann soll sich die MSGBox öffnen...

    Falls nicht erklär bitte nochmal ganz simpel an einem Beispiel was du genau möchtest.


    Wenn dem so ist, würde ich erstmal den Platzhalter festlegen. Dann würde ich das Eingabefeld als String und nicht als Integer definieren. Denn du arbeitest in der Eingabe ja mit dem Platzhalter und der ist keine Zahl, also ist INTEGER hier völlig falsch gewählt. Dann musst du nurnoch prüfen, ob das gerade eingegebene Zeichen deinem Platzhalter entspricht. Wenn dem so ist, prüfst du ob die nächste Eingabe wieder eine Zahl ist und falls ja, lässt du die MSGBox erscheinen.

    Hier mal ein Beispielcode, der natürlich nicht ganz vollständig ist. Denn du willst ja auch noch was lernen. Das was du noch hinzufügen musst, ist der Teil mit der MSGBOX, aber das sollte keine Schwierigkeit sein.

    Was es zu beachten gibt steht in den Kommentaren des Codes.

    Code:
    'legt das Textfeld als String Variable fest
    Dim Textfeld As String
    Textfeld = TxtNumber.Text
    
    'Position des aktuellen Zeichens ermitteln
     Dim Position As Integer
     Position = TxtNumber.SelStart
     
    'legt den Platzhalter fest
    Dim Platzhalter As String
    Platzhalter = "?"
    
    'Prüfung ob das erste Zeichen eine Zahl ist
    If (IsNumeric(Left(Textfeld, 1)) = True) Then
     
     
     
     'Prüfen ob das aktuelle Zeichen der Platzhalter ist
     If (Mid(Textfeld, Position, 1) = Platzhalter) Then
       
       'Die Position des Platzhalters in eine Variable schreiben
       Dim PlatzhalterPos As Integer
       PlatzhalterPos = TxtNumber.SelStart
      
       
    'Hier prüfst du dann ob das nächste Zeichen eine Zahl ist
    'schau dir die Funktionen MID und ISNUMERIC dazu an
    'Wenn das der Fall ist, lässt du die MsgBox innerhalb der IF Schleife ausführen
     
     
    End If
    
    
    
     
Thread Status:
Not open for further replies.

Share This Page