Problem mit _StringBetween

  • Hallo,
    ich habe in meinem Script ein Problem mit _StringBetween.
    Er findet einen String nicht, obwohl er da genauso steht.

    Hier der TeilCode:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GuiListBox.au3>
    #include <String.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $GetText

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ###
    Global $Form1 = GUICreate("Anrufliste", 351, 404, 554, 238)
    GUISetBkColor(0xB4B4B4)
    Global $List1 = GUICtrlCreateList("", 8, 48, 225, 253, $WS_VSCROLL, BitOR($WS_EX_CLIENTEDGE, $WS_EX_STATICEDGE))
    $hList1 = GUICtrlGetHandle($List1)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    Global $Label1 = GUICtrlCreateLabel("Anrufliste", 106, 8, 117, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    Global $Button1 = GUICtrlCreateButton("Hinzufügen", 8, 312, 105, 33, $WS_GROUP)
    Global $Button2 = GUICtrlCreateButton("Entfernen", 120, 312, 105, 33, $WS_GROUP)
    Global $Button6 = GUICtrlCreateButton("Editieren", 232, 312, 105, 33, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_Edit")
    Global $Button3 = GUICtrlCreateButton("Nähere Infos", 8, 360, 105, 33, $WS_GROUP)
    Global $Button5 = GUICtrlCreateButton("Alle Löschen", 120, 360, 105, 33, $WS_GROUP)
    Global $Button4 = GUICtrlCreateButton("Schließen", 232, 360, 105, 33, $WS_GROUP)
    Global $List2 = GUICtrlCreateList("", 248, 48, 89, 253)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    #Region ### START Koda GUI section ###
    Global $Form4 = GUICreate("Anrufer editieren", 362, 475, 543, 159)
    GUISetBkColor(0xB4B4B4)
    GUISetFont(11, 400, 0, "Arial")
    Global $Label10 = GUICtrlCreateLabel("Name:", 24, 60, 47, 21)
    Global $Label11 = GUICtrlCreateLabel("Anrufsbetreff:", 24, 140, 91, 21)
    Global $Label12 = GUICtrlCreateLabel("Telefonnummer", 24, 372, 107, 21)
    Global $Label13 = GUICtrlCreateLabel("Anrufer editieren", 75, 12, 231, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    Global $Input5 = GUICtrlCreateInput("", 24, 81, 313, 26, $ES_READONLY)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    GUICtrlSetLimit(-1, 19)
    Global $Edit3 = GUICtrlCreateEdit("", 24, 161, 313, 193, BitOR($ES_AUTOVSCROLL, $ES_WANTRETURN, $WS_VSCROLL))
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    Global $Input6 = GUICtrlCreateInput("", 24, 393, 313, 26, $ES_NUMBER)
    GUICtrlSetFont(-1, 12, 400, 0, "Arial")
    Global $Button8 = GUICtrlCreateButton("Fertig", 108, 430, 140, 39, $WS_GROUP)
    GUICtrlSetOnEvent(-1, "_Add")
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    _ReadIniFile()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Edit()

    [/autoit] [autoit][/autoit] [autoit]

    Global $CurSel = _GUICtrlListBox_GetCurSel($List1)
    Global $GetText = _GUICtrlListBox_GetText($List1, $CurSel)
    Local $CurSel2 = _GUICtrlListBox_GetCurSel($List2)
    Local $GetText2 = _GUICtrlListBox_GetText($List2, $CurSel2)

    [/autoit] [autoit][/autoit] [autoit]

    If Not $GetText = "" Then
    GUISetState(@SW_HIDE, $Form1)
    GUISetState(@SW_SHOW, $Form4)

    [/autoit] [autoit][/autoit] [autoit]

    WinSetTitle("Anrufer editieren", "", "Anrufer '" & $GetText& "' editieren")

    [/autoit] [autoit][/autoit] [autoit]

    $IniRead = IniRead(@ScriptDir & "\data\setup.ini", "Anrufer", $GetText, "")

    [/autoit] [autoit][/autoit] [autoit]

    GUICtrlSetData($Input5, $GetText & " - " & $GetText2)

    [/autoit] [autoit][/autoit] [autoit]

    Global $TelNummer = _StringBetween($IniRead, "°", " °")
    $Besch = _StringBetween($IniRead, ">", "<")

    [/autoit] [autoit][/autoit] [autoit]

    If $TelNummer = "" Then
    GUICtrlSetData($Input6, "Es wurde hierzu keine Angabe getätigt")
    Else
    GUICtrlSetData($Input6, $TelNummer[0])
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $Besch = "" Then
    GUICtrlSetData($Edit3,"Es wurde hierzu keine Angabe getätigt")
    Else
    GUICtrlSetData($Edit3,$Besch[0])
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(262208, "Auswahl", "Sie haben keinen Eintrag ausgewählt!" & @CRLF & "Bitte Eintrag für zu Editieren auswählen!")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _Add()

    [/autoit] [autoit][/autoit] [autoit]

    Global $Betreff2 = GUICtrlRead($Edit3)
    Global $Nummer2 = GUICtrlRead($Input6)

    [/autoit] [autoit][/autoit] [autoit]

    IniWrite(@ScriptDir & "\data\setup.ini", "Anrufer", $GetText, ">" & $Betreff2 & "<" & "°" & $Nummer2 & "°")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW, $Form1)
    GUISetState(@SW_HIDE, $Form4)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _ReadIniFile()

    [/autoit] [autoit][/autoit] [autoit]

    $AnruferSec = IniReadSection(@ScriptDir & "\data\setup.ini", "Anrufer")
    If Not @error Then
    For $i = 1 To $AnruferSec[0][0]
    _GUICtrlListBox_AddString($List1, $AnruferSec[$i][0])
    Next
    _GUICtrlListBox_SetCurSel($List1, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $TimeForList = IniReadSection(@ScriptDir & "\data\setup.ini", "TimeForList")
    If Not @error Then
    For $a = 1 To $TimeForList[0][0]
    _GUICtrlListBox_AddString($List2, $TimeForList[$a][0])
    Next
    _GUICtrlListBox_SetCurSel($List2, 0)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_ReadIniFile

    [/autoit]

    Wie man sieht, zeigt er in der GUI bei Telefonnummer nichts an.
    Die Ini sieht so aus:

    Code
    [Anrufer]
    Test=>123<°123°

    Ich weiß nicht mehr weiter, hoffentlich könnt ihr mir helfen :S

  • Machmal das Leerzeichen weg vor dem °.

    [autoit]

    Global $TelNummer = _StringBetween($IniRead, "°", " °")

    [/autoit]

    Achja und vergess nicht _StringBetween gibt ein Array zurück. Haste ja, hab grad gesehen. :P

    2 Mal editiert, zuletzt von m-obi (13. Februar 2010 um 19:11)