String auslesen und prüfen ob ein Punkt enthalten ist

  • Hallo und schönen guten Morgen zusammen,

    wir haben uns hier versammelt um...Nein Spaß :rolleyes:
    Ich habe mal wieder ein Problem. Ich lasse bei der Anmeldung den Benutzernamen auslesen um die Benutzer zu Begrüßen. Die meisten Namen sind nach diesem Schema "Vorname.Nachname", allerdings gibt es auch einige Funktions Benutzer die nicht nach diesem Schema angelegt wurden. Nehme ich ein einfach StringSplit mit "." gibt er mir natürlich eine Fehlermeldung aus, weil einige keinen Punkt enthalten und somit das Array[2] nicht existiert.
    Kleines Beispiel welches gehen würde:

    Spoiler anzeigen
    [autoit]


    #include <String.au3>
    $UserName = "max.mustermann"
    $GUI_Username_Split = StringSplit( $UserName, "." )
    MsgBox(0,"",_StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2]) )

    [/autoit]

    Kleines Beispiel welches NICHT gehen würde:

    Spoiler anzeigen
    [autoit]


    #include <String.au3>
    $UserName = "max"
    $GUI_Username_Split = StringSplit( $UserName, "." )
    MsgBox(0,"",_StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2]) )

    [/autoit]

    $UserName ist im Normalfall mit @UserName vorbelegt.

    Ich hoffe ihr könnt mir mal wieder helfen.
    Danke euch schon mal im vorraus.

    Grüße

    Einmal editiert, zuletzt von hessebou (16. Januar 2009 um 08:56)

  • Ich muss überprüfen, ob der Benutzername einen Punkt hat oder nicht

    If Username hat Punkt im Namen dann
    Hallo String[1] String[2]

    Else
    Hallo $Username

    irgendwie so :D

  • ja funkey hat doch schon die richtige funktion geliefert:

    [autoit]


    if StringInStr($deinstring, ".") Then
    $split = StringSplit($deinstring, ".")
    Else
    MsgBox(0, "Not found", "Kein . im String "&$deinstring&" gefunden!")
    EndIf

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • So schaut der Code nun aus :D

    Spoiler anzeigen
    [autoit]


    $GUI_Username_Check = StringInStr( $UserName, "." )
    If $GUI_Username_Check >0 Then
    $GUI_Username_Split = StringSplit( $UserName, "." )
    If _DateTimeFormat( _NowCalc(), 4 ) <= "12:00" Then
    GUICtrlCreateLabel("Guten Morgen, " & _StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2] ), 70, 130 )
    Else
    GUICtrlCreateLabel("Guten Tag, " & _StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2] ), 70, 130 )
    EndIf
    Else
    If _DateTimeFormat( _NowCalc(), 4 ) <= "12:00" Then
    GUICtrlCreateLabel("Guten Morgen, " & $UserName, 70, 130 )
    Else
    GUICtrlCreateLabel("Guten Tag, " & $UserName, 70, 130 )
    EndIf
    EndIf

    [/autoit]
  • Okay super, daran hatte ich gar nicht gedacht. Ich vergesse immer das @Error existiert :D

    Spoiler anzeigen
    [autoit]


    $GUI_Username_Split = StringSplit( $UserName, "." )
    If @error == 0 Then
    $GUI_Username_Split = StringSplit( $UserName, "." )
    If _DateTimeFormat( _NowCalc(), 4 ) <= "12:00" Then
    GUICtrlCreateLabel("Guten Morgen, " & _StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2] ), 70, 130 )
    Else
    GUICtrlCreateLabel("Guten Tag, " & _StringProper( $GUI_Username_Split[1] ) & " " & _StringProper( $GUI_Username_Split[2] ), 70, 130 )
    EndIf
    Else
    If _DateTimeFormat( _NowCalc(), 4 ) <= "12:00" Then
    GUICtrlCreateLabel("Guten Morgen, " & $UserName, 70, 130 )
    Else
    GUICtrlCreateLabel("Guten Tag, " & $UserName, 70, 130 )
    EndIf
    EndIf

    [/autoit]

    Zur Vollständigkeit der Code, vllt. kann ihn jemand gebrauchen.

    Grüße und Danke