Listbox in .txt Datei speichern / automatisches scrollen einer textbox

  • so an der stelle steig ich einfach mal ein :) die überschrift hat mich angezogen, da ich auch versuche eine liste, welche ich über guictrlcreatelist() erstellt habe, in einem file list.log zu speichern und beim programmstart auszulesen (den stand des letzten programmlaufes)

    Spoiler anzeigen
    [autoit]


    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Fishlist", 224, 254, 332, 154)
    $List1 = GUICtrlCreateList("", 0, 0, 129, 253,$LBS_SORT)
    $Button1 = GUICtrlCreateButton("Add Player", 136, 8, 81, 25, 0)
    $Button2 = GUICtrlCreateButton("Delete", 136, 40, 81, 25, 0)
    $Button3 = GUICtrlCreateButton("Search", 136, 200, 81, 41, 0)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    _getList()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()
    case $Button1
    _add ()
    case $Button2
    _delete()
    EndSwitch
    WEnd

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

    func _add () ;fügt der liste ein item hinzu (getestet & läuft)
    $temp = InputBox("Add Player","Gib den Spielernamen an","","",100,40)
    if @error = 0 Then
    _GUICtrlListBox_AddString($List1,$temp)
    EndIf
    EndFunc

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

    func _delete () ;löscht das markierte item (getestet & läuft)
    $name = GUICtrlRead($list1)
    $temp = _GUICtrlListBox_FindString($List1, $name)
    if MsgBox(4,"Delete",$name & " löschen?") = 6 Then
    _GUICtrlListBox_DeleteString($List1,$temp)
    EndIf
    EndFunc

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

    func _getList () ;hier liegt das problem
    $file = FileOpen("list.log",0)
    for $i = 1 to _FileCountLines($file) ;für jede zeile im script -
    $text = FileReadLine("list.log",$i) ;wird die zeile ausgelesen -
    _GUICtrlListView_AddItem($list1,$text) ;und der liste hinzugefügt
    Next
    FileClose($file)
    EndFunc ;oder auch nicht

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

    func _saveList () ;speichert den content der liste in list.log, 1 item / zeile (getestet & läuft)
    $log = FileOpen("list.log",2)
    For $i = 0 To _GUICtrlListBox_GetCount($List1) - 1
    FileWriteLine($log, _GUICtrlListBox_GetText($List1, $i))
    Next
    FileClose($log)
    EndFunc

    [/autoit]


    das ist der code
    hab die funktion saveList () getestet, da stimmt alles, nur beim programmstart, wenn ich über getList die liste ($List1) füllen möchte, bleibt diese leer

    habs über .inis versucht, über .txt und .log am file kanns also auch nicht liegen. hab alles included und verschiedene arten getestet, die liste zu aktualisieren, aber es passiert nichts.

    woran könnte das liegen?

    EDIT2: in dem beispiel benutze ich _GUICtrlListView_AddItem(), hab dasselbe (u.A.) schon mit _GUICtrlListBox_AddString versucht, selbes ergebnis
    was mach ich nur immer falsch? 8|

    2 Mal editiert, zuletzt von zombie36 (11. Dezember 2010 um 13:09)

  • zombie36,

    du hast dieses Programm in dieser Form nicht einmal getestet, denn sonst wäre dir aufgefallen dss es nicht lauffähig ist:

    sprich die Includes fehlen. In Zeile 16 rufsr du eine Func auf die es in deinem Skript nicht gibt, poste also das komplette Skript, am besten in einem eigenen Thread, da dieser hier zu unübersichtlich wird,

    mfg autoBert