Hallo,
ich habe das Problem das ich Dateinamen in einer Listbox und parallel in einer .ini speichern lasse. Damit die Listbox nicht mit den Pfaden zugespammt wird füge ich die Dateinamen mit _guictrllistbox_addfile hinzu. In der Ini wird natürlich der komplette Name mit Pfad gespeichert.
Das klappt alles wunderbar bis ich eine löschfunktion geschrieben habe die beides löschen sollte (eintrag in Listbox und ini-File. Der Eintrag sollte gelöscht werden wenn man einen Namen anklickt in der Box und dann den "lösch-Button" drückt. Nunja den Eintrag aus der Listbox zu bekommen ist kein Problem aber aus dem ini-File.....
Das Problem ist das guictrlread(listbox) nur den Namen der Datei wie sie dort steht übermittelt und nicht mehr den kompletten Pfad. Darum klappt es auch nicht wenn ich versuche einfach das ergebnis aus der ini zu löschen.
Meine Frage: Wie bekomme ich die Einträge aus dem ini-File (als sections gespeichert) heraus UND behalte trotzdem NUR die Dateinamen in der Box. Ich habe wirklich schon alles mögliche ausprobiert und bin ratlos
Spoiler anzeigen
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.2.10.0
Author: Marko H.
Script Function: Dieses Programm wechselst automatisch zwischen verschiedenen Designs von WindowsXP
#ce ----------------------------------------------------------------------------
#include
#include
#include
#include
#include
#Include
#include
#include
Global $themes, $test = 0, $confirmation = 0, $what_now = 0, $liste, $time_now, $timesave, $time_to_save, $x, $top, $timefield[10], $themefield[10], $y
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Opt("GUIOnEventMode", 1)
[/autoit] [autoit][/autoit] [autoit]$data = @ScriptDir & "\Data\themes.ini"
$data2 = @ScriptDir & "\Data\time.ini"
$hauptgui = GUICreate("Designswitcher 2008", 300, 300)
GUISetOnEvent($GUI_EVENT_CLOSE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "SpecialEvents")
GUISetOnEvent($GUI_EVENT_RESTORE, "SpecialEvents")
$tab = GUICtrlCreateTab(1, 1, 600, 600)
$tab1 = GUICtrlCreateTabItem("settings")
$durchsuchen = GUICtrlCreateButton("durchsuchen...", "30", "100", "90", "25")
GUICtrlSetOnEvent($durchsuchen, "durchsuchen")
$delete = GUICtrlCreateButton("loeschen", "130", "100", "90", "25")
GUICtrlSetOnEvent(-1, "loeschen")
$auflistung = GUICtrlCreateList("", "30", "150", "220", "100")
$themes = IniReadSectionNames($data)
If @error = 0 Then
For $i = 1 To $themes[0]
_GUICtrlListBox_AddString ($auflistung, $themes[$i])
Next
Else
$themes = "X"
EndIf
$tab2 = GUICtrlCreateTabItem("zeit")
$number_of_timefields = GUICtrlCreateInput("1", 30, 50, 30, 25, $ES_NUMBER)
GUICtrlCreateUpdown($number_of_timefields)
$create_timefields = GUICtrlCreateButton("Zeitfelder erstellen", 90, 50, 100, 25)
GUICtrlSetOnEvent($create_timefields, "timefields")
$tab = GUICtrlCreateTabItem("start")
$start = GUICtrlCreateButton("start", 50, 30)
GUICtrlSetOnEvent($start, "start")
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
Sleep(1000)
WEnd
Func test()
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>test
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func timefields()
GUICtrlSetState($tab2, $GUI_show)
FileOpen($data2, 2)
GUISwitch($hauptgui, $tab2)
$top = 100
Global $x = GUICtrlRead($number_of_timefields)
$themes = IniReadSectionNames($data)
Switch $x
Case 1 To 9
For $i = 1 To $x
$timefield[$i] = GUICtrlCreateDate("", 30, $top, 100, 25, $DTS_TIMEFORMAT)
$themefield[$i] = GUICtrlCreateCombo(" Theme wählen...", 150, $top, 100, 25)
For $s = 1 To $themes[0]
GUICtrlSetData($themefield[$i], $themes[$s])
;MsgBox(0, "", $themes[$s])
Next
$top = $top + 30
Next
Case 10 To 255555555555555
MsgBox(0, "Achtung!!", "Bitte wähle eine Zahl zwischen 1 und 9 um das Fenster nicht zu sprengen." & @LF & "Wenn du mehr Designs wählen willst solltest du nochmal mit den Programmierer sprechen!")
Case Else
MsgBox(0, "Achtung!!", "Schonmal versucht ein negatives Feld zu erstellen? DAS GEHT NICHT!!!")
EndSwitch
GUICtrlSetState($create_timefields, $gui_disable)
GUICtrlSetState($number_of_timefields, $gui_disable)
$timesave = GUICtrlCreateButton("Zeiten und Themes übernehmen", 300, $top)
GUICtrlSetOnEvent($timesave, "timesave")
FileClose($data2)
GUICtrlCreateTabItem("")
EndFunc ;==>timefields
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func start()
$y = "25:25:25"
Global $time_ini = IniReadSectionNames($data2)
Do
$time_now = @HOUR & ":" & @MIN & ":" & @SEC
For $i = 1 To $time_ini[0]
If $time_now = $time_ini[$i] Then themechange_theme()
Global $y = $time_ini[$i]
Next
Sleep(100)
Until $y = $time_now
EndFunc ;==>start
Func timesave()
For $i = 1 To $x
$time_to_save = GUICtrlRead($timefield[$i])
$theme_to_save = GUICtrlRead($themefield[$i])
IniWrite($data2, $time_to_save, $theme_to_save, $x)
Next
EndFunc ;==>timesave
Func themechange_theme()
$theme = IniReadSection($data2, $y)
If @error = 0 Then
ShellExecute($theme[1][0])
EndIf
EndFunc ;==>themechange_theme
Func SpecialEvents()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Select
Case @GUI_CtrlId = $GUI_EVENT_CLOSE
Exit
Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
[/autoit] [autoit][/autoit] [autoit]Case @GUI_CtrlId = $GUI_EVENT_RESTORE
EndSelect
EndFunc ;==>SpecialEvents
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func loeschen()
$themes_delete=IniReadSectionNames($data)
$listitem = GUICtrlRead($auflistung)
$nummer = _GUICtrlListBox_FindString ($auflistung, $listitem)
_GUICtrlListBox_DeleteString ($auflistung, $nummer)
IniDelete($data, $listitem)
EndFunc ;==>loeschen
Func durchsuchen()
$themes = IniReadSectionNames($data)
_ArrayDisplay($themes)
$files_chose_theme = FileOpenDialog("Wählen Sie ein Design aus", "C:\", "Windwos Themes(*.msstyles)", 1)
If Not $files_chose_theme = "" Then
$confirmation = MsgBox(0x4, "Echt jetzt?", "Willst du diese Theme (" & $files_chose_theme & ") wirklich übernehmen?")
If $confirmation = 6 Then
If Not $themes = "X" Then
For $i = 1 To $themes[0]
If $themes[$i] = $files_chose_theme Then
MsgBox(0, "Pustekuchen", "Dieses Theme wurde bereits hinzugefügt!")
$test = 1
EndIf
Next
EndIf
If $test <> 1 Then
_GUICtrlListBox_AddString ($auflistung, $files_chose_theme)
IniWriteSection($data, $files_chose_theme, "1")
Else
_insert()
EndIf
Else
_insert()
EndIf
EndIf
EndFunc ;==>durchsuchen
Func _insert()
Do
$test = 0
$what_now = MsgBox(0x4, "Was nun?", "Willst du eine anderes Theme wählen?")
If $what_now = 6 Then
$files_chose_theme = FileOpenDialog("Wählen Sie ein Design aus", "C:\", "Windwos Themes(*.msstyles)", 1)
If Not $files_chose_theme = "" Then
$confirmation = MsgBox(0x4, "Echt jetzt?", "Willst du diese Theme (" & $files_chose_theme & ") wirklich übernehmen?")
If $confirmation = 6 Then
If Not $themes = "X" Then
For $i = 1 To $themes[0]
If $themes[$i] = $files_chose_theme Then
MsgBox(0, "Pustekuchen", "Dieses Theme wurde bereits hinzugefügt!")
$confirmation = 7
$test = 1
EndIf
Next
EndIf
If $test <> 1 Then
_GUICtrlListBox_AddString ($auflistung, $files_chose_theme)
IniWriteSection($data, $files_chose_theme, "1")
EndIf
EndIf
EndIf
EndIf
Until $confirmation = 6 Or $what_now = 7
EndFunc ;==>_insert
</GuiTab.au3></GuiConstantsEx.au3></GuiDateTimePicker.au3></File.au3></guilistbox.au3></guilistview.au3></Date.au3></GuiConstants.au3>