Brauche Hilfe beim löschen mit der INI delete Funktion

  • Hallo zusammen,

    in einem code muss ein bestimmter Teil aus der Ini gelöscht werden.
    Ich führe hier gleich auf, die speicher Funktion und danach die von mir gedachte (nicht funktionierende) Löschfunktion.

    Hier die Speicher/Lade Funktion:

    Spoiler anzeigen
    [autoit]

    Func _LoadDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    GUICtrlSetData($aSchliesfach1[$i],IniRead($DataINI,GUICtrlRead($Combo2),2000&$i,''))
    GUICtrlSetData($aSchliesfach2[$i],IniRead($DataINI,GUICtrlRead($Combo2),3000&$i,''))
    GUICtrlSetData($aSchliesfach3[$i],IniRead($DataINI,GUICtrlRead($Combo2),4000&$i,''))
    GUICtrlSetData($aSchliesfach4[$i],IniRead($DataINI,GUICtrlRead($Combo2),5000&$i,''))
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _SaveDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    IniWrite($DataINI,GUICtrlRead($Combo2),2000&$i,GUICtrlRead($aSchliesfach1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),3000&$i,GUICtrlRead($aSchliesfach2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),4000&$i,GUICtrlRead($aSchliesfach3[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),5000&$i,GUICtrlRead($aSchliesfach4[$i]))
    Next
    _clearGUI()
    EndFunc

    [/autoit]


    So wird alles gespeichert was ja auch einwandfrei funktioniert!

    Nun die angedachte Lösch Funktion:

    Spoiler anzeigen
    [autoit]

    Func _deleteSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    IniDelete($DataINI,GUICtrlRead($Combo2),2000&$i,GUICtrlRead($aschliesfach1[$i]))
    IniDelete($DataINI,GUICtrlRead($Combo2),3000&$i,GUICtrlRead($aschliesfach1[$i]))
    IniDelete($DataINI,GUICtrlRead($Combo2),4000&$i,GUICtrlRead($aschliesfach1[$i]))
    IniDelete($DataINI,GUICtrlRead($Combo2),5000&$i,GUICtrlRead($aschliesfach1[$i]))
    Next
    _clearGUI()
    EndFunc

    [/autoit]


    Beim löschen soll er eigentlich die 4 spalten löschen, jedoch darf nicht Combo2 gelöscht werden da diese auch Daten einer anderen Function speichert.
    Also dürfen nur die 4 $aschliesfach (2000, 3000, 4000, 5000) gelöscht werden!

    Ich hoffe ihr habt da eine einfache Lösung für mich!

    Mfg Ghostleader

    Einmal editiert, zuletzt von Ghostleader (25. Dezember 2011 um 23:55)

  • Zitat

    Beim löschen soll er eigentlich die 4 spalten löschen, jedoch darf nicht Combo2 gelöscht werden da diese auch Daten einer anderen Function speichert.


    Dann würde ich das anders organisieren, also die Werte die gemeinsam genutzt werden halt in einem globalen Key [config] o.ä. speichern
    und dann mit inidelete den ganzen Key aus der Ini kicken wenn er gelöscht wird.

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Kannst Du mal die Ini posten dann wird es evtl. verständlicher...

    Achtung Anfänger! :whistling:

    Betrachten des Quellcodes auf eigene Gefahr, bei Übelkeit,Erbrechen,Kopfschmerzen übernehme ich keine Haftung. 8o

  • Code ist kommentiert. Ein gutes Tutorial zur Benutzung von regulären Ausdrücken findest du hier. Da reichen schon die ersten paar Sätze damit du diesen Ausdruck beliebig anpassen kannst ;)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3> ;nur zur Darstellung
    ;==========================>
    $aSections = IniReadSection("data.ini", "seppel") ;alle KEys des Sections "seppel" auflisten
    _ArrayDisplay($aSections) ;damit du die Funktionsweise einfacher verstehst ;)
    For $i = 1 To $aSections[0][0]
    If StringRegExp($aSections[$i][0], "\d000") Then ;wir überprüfen den Sectionname mit einem regulären Ausdruck (geht auch einfacher mit StringLeft)
    IniDelete("data.ini", "seppel", $aSections[$i][0]) ;jeden Key löschen, auf den der reguläre Ausdruck zutrifft
    EndIf
    Next

    [/autoit]


    mfg @night@

  • Hallo @night @,

    danke für deine Antwort, aber ich glaube so leicht ist es leider nicht wenn ich nicht irre (wenn doch bitte sagen)!
    In diesem kommplettem Script werden mehrere Accounts vergeben, daher kann ich ja vorher nich zb. Seppel als Section fest vergeben wenn ich nicht irre! Ich glaube du broggst etwas anders wie es hier der Fall ist!
    In meinem Fall ist es ein Bankschliessfach pro Account um das es gerade geht (ein Teil hier aus diesem Script)!
    Das heist die Speicher/ladefunktion kommt pro Account einmal zum tragen!
    Am besten hier mal das ganze Script:

    Spoiler anzeigen
    [autoit]

    #region INCLUDES
    ;------------------------------------------------------------------------------------------
    #include <WindowsConstants.au3>
    #include <Array.au3>
    #include <ComboConstants.au3>
    #include <GUIConstantsEx.au3>
    #endregion INCLUDES
    #region GLOBAL
    ;------------------------------------------------------------------------------------------
    Global $aSchliesfach1[17], $aSchliesfach2[17], $aSchliesfach3[17], $aSchliesfach4[17]
    Global $aSpalte1[13], $aSpalte2[13], $aSpalte3[13]
    Global $bSpalte1[13], $bSpalte2[13], $bSpalte3[13]
    Global $cSpalte1[13], $cSpalte2[13], $cSpalte3[13]
    Global $DataINI = 'data.ini'
    #endregion GLOBAL
    ;------------------------------------------------------------------------------------------
    #region GUI
    $Form1 = GUICreate("Form1", 940, 550, 192, 5, $WS_BORDER & $WS_POPUP)
    GUISetState()
    $Backround = GUICtrlCreatePic("bilder\lager.tgx", 0, 0, 940, 550)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUISetState(@SW_SHOW)
    #endregion GUI
    ;------------------------------------------------------------------------------------------
    #region Group´s
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $FrontLagerBank = GUICtrlCreateGroup("", 360, 180, 280, 195)
    $GroupCombo = GUICtrlCreateGroup("", 28, 6, 276, 36)
    $GroupSpeichern = GUICtrlCreateGroup("", 336, 6, 276, 36)
    $Exit = GUICtrlCreateGroup("", 646, 6, 276, 36)
    $LagerLabelGroup = GUICtrlCreateGroup("", 330, 135, 282, 45)
    $LagerGroup = GUICtrlCreateGroup("", 200, 62, 590, 45)
    $LagerSpalte1 = GUICtrlCreateGroup("", 70, 195, 190, 290)
    $LagerSpalte2 = GUICtrlCreateGroup("", 345, 195, 190, 290)
    $LagerSpalte3 = GUICtrlCreateGroup("", 615, 195, 190, 290)
    $BankRahmen1 = GUICtrlCreateGroup("", 30, 112, 190, 370)
    $BankRahmen2 = GUICtrlCreateGroup("", 270, 112, 190, 370)
    $BankRahmen3 = GUICtrlCreateGroup("", 500, 112, 190, 370)
    $BankRahmen4 = GUICtrlCreateGroup("", 730, 112, 190, 370)
    #endregion Group´s
    ;------------------------------------------------------------------------------------------
    #region Button´s
    $Lager1Speichern = GUICtrlCreateButton("Speichern", 350, 16, 110, 22)
    $Lager2Speichern = GUICtrlCreateButton("Speichern", 350, 16, 110, 22)
    $Lager3Speichern = GUICtrlCreateButton("Speichern", 350, 16, 110, 22)
    $SchliessfachSpeichern = GUICtrlCreateButton("Speichern", 350, 16, 110, 22)
    $AccLoschen = GUICtrlCreateButton("Acc Löschen", 490, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $SchliessfachOben = GUICtrlCreateButton("Bankschließfach", 660, 16, 110, 22)
    $ButtonExit = GUICtrlCreateButton("Exit", 800, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $SchliessfachLoschen = GUICtrlCreateButton("Schliesfach Löschen", 490, 16, 110, 22)
    $LagerOben = GUICtrlCreateButton("Lagerverwaltung", 660, 16, 110, 22)
    ;------------------------------------------------------------------------------------------
    $LagerFront = GUICtrlCreateButton("Lagerverwaltung", 375, 200, 250, 40)
    $SchliessfachFront = GUICtrlCreateButton("Bankschließfach", 375, 260, 250, 40)
    $Schliessen = GUICtrlCreateButton("Programm Schliessen", 375, 320, 250, 40)
    ;------------------------------------------------------------------------------------------
    $Lager1 = GUICtrlCreateButton("LAGER 1", 210, 75, 170, 25)
    $Lager2 = GUICtrlCreateButton("LAGER 2", 410, 75, 170, 25)
    $Lager3 = GUICtrlCreateButton("LAGER 3", 610, 75, 170, 25)
    #endregion Button´s
    ;------------------------------------------------------------------------------------------
    #region Combo´s
    $Combo1 = GUICtrlCreateCombo("", 120, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo1,_setCombo())
    $Combo3 = GUICtrlCreateCombo("", 120, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo3,_setCombo())
    $Combo4 = GUICtrlCreateCombo("", 120, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo4,_setCombo())
    $Combo2 = GUICtrlCreateCombo("", 120, 16, 170, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
    GUICtrlSetData($Combo2,_setCombo())
    #endregion Combo´s
    ;------------------------------------------------------------------------------------------
    #region Label´s
    $LagerLabel1 = GUICtrlCreateLabel("", 340, 150, 100, 25)
    GUICtrlSetFont(-1, 15, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Label4 = GUICtrlCreateLabel("Account", 42, 17, 80, 19)
    GUICtrlSetFont(-1, 11, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    #endregion Label´s
    ;---------------------------------------------------------------------------------------------
    #region Input´s
    $LagerInput1 = GUICtrlCreateInput("", 430, 150, 170, 21)
    $LagerInput2 = GUICtrlCreateInput("", 430, 150, 170, 21)
    $LagerInput3 = GUICtrlCreateInput("", 430, 150, 170, 21)
    #endregion Input´s
    ;---------------------------------------------------------------------------------------------
    #region HIDE
    GUICtrlSetState($GroupSpeichern, $GUI_HIDE)
    GUICtrlSetState($Exit, $GUI_HIDE)
    GUICtrlSetState($LagerSpalte1, $GUI_HIDE)
    GUICtrlSetState($LagerSpalte2, $GUI_HIDE)
    GUICtrlSetState($LagerSpalte3, $GUI_HIDE)
    GUICtrlSetState($GroupCombo, $GUI_HIDE)
    GUICtrlSetState($BankRahmen1, $GUI_HIDE)
    GUICtrlSetState($BankRahmen2, $GUI_HIDE)
    GUICtrlSetState($BankRahmen3, $GUI_HIDE)
    GUICtrlSetState($BankRahmen4, $GUI_HIDE)
    GUICtrlSetState($ButtonExit, $GUI_HIDE)
    GUICtrlSetState($Lager1Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager2Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager3Speichern, $GUI_HIDE)
    GUICtrlSetState($SchliessfachOben, $GUI_HIDE)
    GUICtrlSetState($AccLoschen, $GUI_HIDE)
    GUICtrlSetState($SchliessfachLoschen, $GUI_HIDE)
    GUICtrlSetState($LagerOben, $GUI_HIDE)
    GUICtrlSetState($SchliessfachSpeichern, $GUI_HIDE)
    GUICtrlSetState($Lager1, $GUI_HIDE)
    GUICtrlSetState($Lager2, $GUI_HIDE)
    GUICtrlSetState($Lager3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_HIDE)
    GUICtrlSetState($LagerInput1, $GUI_HIDE)
    GUICtrlSetState($LagerInput2, $GUI_HIDE)
    GUICtrlSetState($LagerInput3, $GUI_HIDE)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_HIDE)
    GUICtrlSetState($Combo3, $GUI_HIDE)
    GUICtrlSetState($Combo4, $GUI_HIDE)
    GUICtrlSetState($LagerLabelGroup, $GUI_HIDE)
    GUICtrlSetState($LagerGroup, $GUI_HIDE)
    #endregion HIDE
    ;---------------------------------------------------------------------------------------------
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $LagerFront
    _ButtonLager1()
    Case $LagerOben
    _ButtonLager1()
    Case $Lager1
    _ButtonLager1()
    Case $Lager2
    _ButtonLager2()
    Case $Lager3
    _ButtonLager3()
    Case $SchliessfachFront
    _ButtonSchliessfach()
    Case $SchliessfachOben
    _ButtonSchliessfach()
    Case $ButtonExit, $Schliessen
    Exit
    Case $Combo1
    _LoadData()
    Case $Combo3
    _LoadData2()
    Case $Combo4
    _LoadData3()
    Case $Combo2
    _LoadDataSchliessfach()
    Case $Lager1Speichern
    _SaveData()
    Case $Lager2Speichern
    _SaveData2()
    Case $Lager3Speichern
    _SaveData3()
    Case $SchliessfachSpeichern
    _SaveDataSchliessfach()
    Case $AccLoschen
    _deleteAccount()
    Case $SchliessfachLoschen
    _deleteSchliessfach()
    EndSwitch
    WEnd
    ;_--------------------------------------------------------------------------------------------
    Func _ButtonSchliessfach()
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte2) - 1
    GUICtrlSetState($aSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte3) - 1
    GUICtrlSetState($aSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte1) - 1
    GUICtrlSetState($bSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte2) - 1
    GUICtrlSetState($bSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte3) - 1
    GUICtrlSetState($bSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte1) - 1
    GUICtrlSetState($cSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte2) - 1
    GUICtrlSetState($cSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte3) - 1
    GUICtrlSetState($cSpalte3[$i], $GUI_HIDE)
    Next

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

    GUICtrlSetState($LagerFront, $GUI_HIDE)
    GUICtrlSetState($SchliessfachFront, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($Lager1, $GUI_HIDE)
    GUICtrlSetState($Lager2, $GUI_HIDE)
    GUICtrlSetState($Lager3, $GUI_HIDE)
    GUICtrlSetState($SchliessfachOben, $GUI_HIDE)
    GUICtrlSetState($FrontLagerBank, $GUI_HIDE)
    GUICtrlSetState($GroupSpeichern, $GUI_SHOW)
    GUICtrlSetState($Exit, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte1, $GUI_HIDE)
    GUICtrlSetState($LagerSpalte2, $GUI_HIDE)
    GUICtrlSetState($LagerSpalte3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($AccLoschen, $GUI_HIDE)
    GUICtrlSetState($SchliessfachLoschen, $GUI_SHOW)
    GUICtrlSetState($LagerOben, $GUI_SHOW)
    GUICtrlSetState($GroupCombo, $GUI_SHOW)
    GUICtrlSetState($ButtonExit, $GUI_SHOW)
    GUICtrlSetState($Lager1Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager2Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager3Speichern, $GUI_HIDE)
    GUICtrlSetState($SchliessfachSpeichern, $GUI_SHOW)
    GUICtrlSetState($LagerLabel1, $GUI_HIDE)
    GUICtrlSetState($LagerInput1, $GUI_HIDE)
    GUICtrlSetState($LagerInput2, $GUI_HIDE)
    GUICtrlSetState($LagerInput3, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo3, $GUI_HIDE)
    GUICtrlSetState($Combo4, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_SHOW)
    GUICtrlSetState($BankRahmen1, $GUI_SHOW)
    GUICtrlSetState($BankRahmen2, $GUI_SHOW)
    GUICtrlSetState($BankRahmen3, $GUI_SHOW)
    GUICtrlSetState($BankRahmen4, $GUI_SHOW)
    GUICtrlSetState($LagerLabelGroup, $GUI_HIDE)
    GUICtrlSetState($LagerGroup, $GUI_HIDE)
    _generateSchliessfachSpalte($aSchliesfach1,40)
    _generateSchliessfachSpalte($aSchliesfach2,280)
    _generateSchliessfachSpalte($aSchliesfach3,510)
    _generateSchliessfachSpalte($aSchliesfach4,740)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _ButtonLager1()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach1[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach2)-1
    GUICtrlSetState($aschliesfach2[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach3)-1
    GUICtrlSetState($aschliesfach3[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach4)-1
    GUICtrlSetState($aschliesfach4[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte1) - 1
    GUICtrlSetState($bSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte2) - 1
    GUICtrlSetState($bSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte3) - 1
    GUICtrlSetState($bSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte1) - 1
    GUICtrlSetState($cSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte2) - 1
    GUICtrlSetState($cSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte3) - 1
    GUICtrlSetState($cSpalte3[$i], $GUI_HIDE)
    Next
    GUICtrlSetState($SchliessfachLoschen, $GUI_HIDE)
    GUICtrlSetState($LagerOben, $GUI_HIDE)
    GUICtrlSetState($LagerFront, $GUI_HIDE)
    GUICtrlSetState($SchliessfachFront, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($FrontLagerBank, $GUI_HIDE)
    GUICtrlSetState($BankRahmen1, $GUI_HIDE)
    GUICtrlSetState($BankRahmen2, $GUI_HIDE)
    GUICtrlSetState($BankRahmen3, $GUI_HIDE)
    GUICtrlSetState($BankRahmen4, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($SchliessfachSpeichern, $GUI_HIDE)
    GuiCtrlSetData($LagerLabel1, "Lager 1")
    GUICtrlSetState($GroupCombo, $GUI_SHOW)
    GUICtrlSetState($GroupSpeichern, $GUI_SHOW)
    GUICtrlSetState($Exit, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte1, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte2, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte3, $GUI_SHOW)
    GUICtrlSetState($ButtonExit, $GUI_SHOW)
    GUICtrlSetState($Lager1Speichern, $GUI_SHOW)
    GUICtrlSetState($Lager2Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager3Speichern, $GUI_HIDE)
    GUICtrlSetState($SchliessfachOben, $GUI_SHOW)
    GUICtrlSetState($AccLoschen, $GUI_SHOW)
    GUICtrlSetState($LagerLabel1, $GUI_SHOW)
    GUICtrlSetState($LagerInput1, $GUI_SHOW)
    GUICtrlSetState($LagerInput2, $GUI_HIDE)
    GUICtrlSetState($LagerInput3, $GUI_HIDE)
    GUICtrlSetState($Combo1, $GUI_SHOW)
    GUICtrlSetState($Combo2, $GUI_HIDE)
    GUICtrlSetState($Combo3, $GUI_HIDE)
    GUICtrlSetState($Combo4, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Lager1, $GUI_HIDE)
    GUICtrlSetState($Lager2, $GUI_SHOW)
    GUICtrlSetState($Lager3, $GUI_SHOW)
    GUICtrlSetState($LagerGroup, $GUI_SHOW)
    GUICtrlSetState($LagerLabelGroup, $GUI_SHOW)
    _generateLagerSpalte($aSpalte1,1)
    _generateLagerSpalte($aSpalte2,275)
    _generateLagerSpalte($aSpalte3,545)
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _ButtonLager2()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach1[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach2)-1
    GUICtrlSetState($aschliesfach2[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach3)-1
    GUICtrlSetState($aschliesfach3[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach4)-1
    GUICtrlSetState($aschliesfach4[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte2) - 1
    GUICtrlSetState($aSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte3) - 1
    GUICtrlSetState($aSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte1) - 1
    GUICtrlSetState($cSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte2) - 1
    GUICtrlSetState($cSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($cSpalte3) - 1
    GUICtrlSetState($cSpalte3[$i], $GUI_HIDE)
    Next
    GUICtrlSetState($SchliessfachLoschen, $GUI_HIDE)
    GUICtrlSetState($LagerOben, $GUI_HIDE)
    GUICtrlSetState($LagerFront, $GUI_HIDE)
    GUICtrlSetState($SchliessfachFront, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($FrontLagerBank, $GUI_HIDE)
    GUICtrlSetState($BankRahmen1, $GUI_HIDE)
    GUICtrlSetState($BankRahmen2, $GUI_HIDE)
    GUICtrlSetState($BankRahmen3, $GUI_HIDE)
    GUICtrlSetState($BankRahmen4, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($SchliessfachSpeichern, $GUI_HIDE)
    GuiCtrlSetData($LagerLabel1, "Lager 2")
    GUICtrlSetState($GroupCombo, $GUI_SHOW)
    GUICtrlSetState($GroupSpeichern, $GUI_SHOW)
    GUICtrlSetState($Exit, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte1, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte2, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte3, $GUI_SHOW)
    GUICtrlSetState($ButtonExit, $GUI_SHOW)
    GUICtrlSetState($Lager1Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager2Speichern, $GUI_SHOW)
    GUICtrlSetState($Lager3Speichern, $GUI_HIDE)
    GUICtrlSetState($SchliessfachOben, $GUI_SHOW)
    GUICtrlSetState($AccLoschen, $GUI_SHOW)
    GUICtrlSetState($LagerLabel1, $GUI_SHOW)
    GUICtrlSetState($LagerInput1, $GUI_HIDE)
    GUICtrlSetState($LagerInput2, $GUI_SHOW)
    GUICtrlSetState($LagerInput3, $GUI_HIDE)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_HIDE)
    GUICtrlSetState($Combo3, $GUI_SHOW)
    GUICtrlSetState($Combo4, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Lager1, $GUI_SHOW)
    GUICtrlSetState($Lager2, $GUI_HIDE)
    GUICtrlSetState($Lager3, $GUI_SHOW)
    GUICtrlSetState($LagerGroup, $GUI_SHOW)
    GUICtrlSetState($LagerLabelGroup, $GUI_SHOW)
    _generateLagerSpalte2($bSpalte1,1)
    _generateLagerSpalte2($bSpalte2,275)
    _generateLagerSpalte2($bSpalte3,545)
    EndFunc
    ;-------------------------------------------------------------------------------------------------
    Func _ButtonLager3()
    For $i = 1 To Ubound($aSchliesfach1)-1
    GUICtrlSetState($aschliesfach1[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach2)-1
    GUICtrlSetState($aschliesfach2[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach3)-1
    GUICtrlSetState($aschliesfach3[$i], $GUI_HIDE)
    Next
    For $i = 1 To Ubound($aSchliesfach4)-1
    GUICtrlSetState($aschliesfach4[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte1) - 1
    GUICtrlSetState($aSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte2) - 1
    GUICtrlSetState($aSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($aSpalte3) - 1
    GUICtrlSetState($aSpalte3[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte1) - 1
    GUICtrlSetState($bSpalte1[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte2) - 1
    GUICtrlSetState($bSpalte2[$i], $GUI_HIDE)
    Next
    For $i = 1 TO UBound($bSpalte3) - 1
    GUICtrlSetState($bSpalte3[$i], $GUI_HIDE)
    Next
    GUICtrlSetState($SchliessfachLoschen, $GUI_HIDE)
    GUICtrlSetState($LagerOben, $GUI_HIDE)
    GUICtrlSetState($LagerFront, $GUI_HIDE)
    GUICtrlSetState($SchliessfachFront, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($FrontLagerBank, $GUI_HIDE)
    GUICtrlSetState($BankRahmen1, $GUI_HIDE)
    GUICtrlSetState($BankRahmen2, $GUI_HIDE)
    GUICtrlSetState($BankRahmen3, $GUI_HIDE)
    GUICtrlSetState($BankRahmen4, $GUI_HIDE)
    GUICtrlSetState($Schliessen, $GUI_HIDE)
    GUICtrlSetState($SchliessfachSpeichern, $GUI_HIDE)
    GuiCtrlSetData($LagerLabel1, "Lager 3")
    GUICtrlSetState($GroupCombo, $GUI_SHOW)
    GUICtrlSetState($GroupSpeichern, $GUI_SHOW)
    GUICtrlSetState($Exit, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte1, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte2, $GUI_SHOW)
    GUICtrlSetState($LagerSpalte3, $GUI_SHOW)
    GUICtrlSetState($ButtonExit, $GUI_SHOW)
    GUICtrlSetState($Lager1Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager2Speichern, $GUI_HIDE)
    GUICtrlSetState($Lager3Speichern, $GUI_SHOW)
    GUICtrlSetState($SchliessfachOben, $GUI_SHOW)
    GUICtrlSetState($AccLoschen, $GUI_SHOW)
    GUICtrlSetState($LagerLabel1, $GUI_SHOW)
    GUICtrlSetState($LagerInput1, $GUI_HIDE)
    GUICtrlSetState($LagerInput2, $GUI_HIDE)
    GUICtrlSetState($LagerInput3, $GUI_SHOW)
    GUICtrlSetState($Combo1, $GUI_HIDE)
    GUICtrlSetState($Combo2, $GUI_HIDE)
    GUICtrlSetState($Combo3, $GUI_HIDE)
    GUICtrlSetState($Combo4, $GUI_SHOW)
    GUICtrlSetState($Label4, $GUI_SHOW)
    GUICtrlSetState($Lager1, $GUI_SHOW)
    GUICtrlSetState($Lager2, $GUI_SHOW)
    GUICtrlSetState($Lager3, $GUI_HIDE)
    GUICtrlSetState($LagerGroup, $GUI_SHOW)
    GUICtrlSetState($LagerLabelGroup, $GUI_SHOW)
    _generateLagerSpalte3($cSpalte1,1)
    _generateLagerSpalte3($cSpalte2,275)
    _generateLagerSpalte3($cSpalte3,545)
    EndFunc
    ;-------------------------------------------------------------------------------------------------
    Func _generateLagerSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' ' ,$left,216+$Abstand,5)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,216+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateLagerSpalte2(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' ' ,$left,216+$Abstand,5)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,216+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateLagerSpalte3(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    GUICtrlCreateLabel(' ' ,$left,216+$Abstand,5)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",85+$left,216+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _generateSchliessfachSpalte(ByRef $ArrayToUse,$left)
    $Abstand = 2
    For $i = 1 To UBound($ArrayToUse)-1
    $Fach = GUICtrlCreateLabel(' ' ,$left,216+$Abstand,5)
    GUICtrlSetFont(-1, 10, 600)
    GUICtrlSetColor(-1, 000000)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $ArrayToUse[$i] = GUICtrlCreateInput("",5+$left,130+$Abstand,160)
    $Abstand +=21
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    #region Load Lagerverwaltung
    Func _LoadData() ;Lager Spalten
    GUICtrlSetData($LagerInput1,IniRead($DataINI,GUICtrlRead($Combo1),1001,''))
    For $i = 1 To UBound($aSpalte1)-1
    GUICtrlSetData($aSpalte1[$i],IniRead($DataINI,GUICtrlRead($Combo1),1&$i,''))
    GUICtrlSetData($aSpalte2[$i],IniRead($DataINI,GUICtrlRead($Combo1),2&$i,''))
    GUICtrlSetData($aSpalte3[$i],IniRead($DataINI,GUICtrlRead($Combo1),3&$i,''))
    Next
    EndFunc
    Func _LoadData2() ;Lager Spalten
    GUICtrlSetData($LagerInput2,IniRead($DataINI,GUICtrlRead($Combo3),1002,''))
    For $i = 1 To UBound($bSpalte1)-1
    GUICtrlSetData($bSpalte1[$i],IniRead($DataINI,GUICtrlRead($Combo3),4&$i,''))
    GUICtrlSetData($bSpalte2[$i],IniRead($DataINI,GUICtrlRead($Combo3),5&$i,''))
    GUICtrlSetData($bSpalte3[$i],IniRead($DataINI,GUICtrlRead($Combo3),6&$i,''))
    Next
    EndFunc
    Func _LoadData3() ;Lager Spalten
    GUICtrlSetData($LagerInput3,IniRead($DataINI,GUICtrlRead($Combo4),1003,''))
    For $i = 1 To UBound($cSpalte1)-1
    GUICtrlSetData($cSpalte1[$i],IniRead($DataINI,GUICtrlRead($Combo4),7&$i,''))
    GUICtrlSetData($cSpalte2[$i],IniRead($DataINI,GUICtrlRead($Combo4),8&$i,''))
    GUICtrlSetData($cSpalte3[$i],IniRead($DataINI,GUICtrlRead($Combo4),9&$i,''))
    Next
    EndFunc
    #endregion Load Lagerverwaltung
    ;-------------------------------------------------------------------------------------------
    #region Save Lagerverwaltung
    Func _SaveData() ;Lager Spalten
    IniWrite($DataINI,GUICtrlRead($Combo1),1001,GUICtrlRead($LagerInput1))
    For $i = 1 To UBound($aSpalte1)-1
    IniWrite($DataINI,GUICtrlRead($Combo1),1&$i,GUICtrlRead($aSpalte1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo1),2&$i,GUICtrlRead($aSpalte2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo1),3&$i,GUICtrlRead($aSpalte3[$i]))
    Next
    _clearGUI()
    EndFunc
    Func _SaveData2() ;Lager Spalten
    IniWrite($DataINI,GUICtrlRead($Combo3),1002,GUICtrlRead($LagerInput2))
    For $i = 1 To UBound($bSpalte1)-1
    IniWrite($DataINI,GUICtrlRead($Combo3),4&$i,GUICtrlRead($bSpalte1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo3),5&$i,GUICtrlRead($bSpalte2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo3),6&$i,GUICtrlRead($bSpalte3[$i]))
    Next
    _clearGUI()
    EndFunc
    Func _SaveData3() ;Lager Spalten
    IniWrite($DataINI,GUICtrlRead($Combo4),1003,GUICtrlRead($LagerInput3))
    For $i = 1 To UBound($cSpalte1)-1
    IniWrite($DataINI,GUICtrlRead($Combo4),7&$i,GUICtrlRead($cSpalte1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo4),8&$i,GUICtrlRead($cSpalte2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo4),9&$i,GUICtrlRead($cSpalte3[$i]))
    Next
    _clearGUI()
    EndFunc
    #endregion Save Lagerverwaltung
    ;-------------------------------------------------------------------------------------------
    Func _LoadDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    GUICtrlSetData($aSchliesfach1[$i],IniRead($DataINI,GUICtrlRead($Combo2),2000&$i,''))
    GUICtrlSetData($aSchliesfach2[$i],IniRead($DataINI,GUICtrlRead($Combo2),3000&$i,''))
    GUICtrlSetData($aSchliesfach3[$i],IniRead($DataINI,GUICtrlRead($Combo2),4000&$i,''))
    GUICtrlSetData($aSchliesfach4[$i],IniRead($DataINI,GUICtrlRead($Combo2),5000&$i,''))
    Next
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _SaveDataSchliessfach()
    For $i = 1 To UBound($aSchliesfach1)-1
    IniWrite($DataINI,GUICtrlRead($Combo2),2000&$i,GUICtrlRead($aSchliesfach1[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),3000&$i,GUICtrlRead($aSchliesfach2[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),4000&$i,GUICtrlRead($aSchliesfach3[$i]))
    IniWrite($DataINI,GUICtrlRead($Combo2),5000&$i,GUICtrlRead($aSchliesfach4[$i]))
    Next
    _clearGUI()
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _deleteAccount()
    IniDelete("data.ini", GUICtrlRead($Combo1))
    _clearGUI()
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _deleteSchliessfach()
    IniDelete("data.ini", GUICtrlRead($Combo2))
    _clearGUI()
    EndFunc
    ;------------------------------------------------------------------------------------------
    Func _clearGUI()
    GUICtrlSetData($LagerInput1,'')
    GUICtrlSetData($LagerInput2,'')
    GUICtrlSetData($LagerInput3,'')
    GUICtrlSetData($Combo1,'')
    GUICtrlSetData($Combo3,'')
    GUICtrlSetData($Combo4,'')
    GUICtrlSetData($Combo2,'')
    For $i = 1 To UBound($aSpalte1)-1
    GUICtrlSetData($aSpalte1[$i],'')
    GUICtrlSetData($aSpalte2[$i],'')
    GUICtrlSetData($aSpalte3[$i],'')
    Next
    For $i = 1 To UBound($bSpalte1)-1
    GUICtrlSetData($bSpalte1[$i],'')
    GUICtrlSetData($bSpalte2[$i],'')
    GUICtrlSetData($bSpalte3[$i],'')
    Next
    For $i = 1 To UBound($cSpalte1)-1
    GUICtrlSetData($cSpalte1[$i],'')
    GUICtrlSetData($cSpalte2[$i],'')
    GUICtrlSetData($cSpalte3[$i],'')
    Next
    For $i = 1 To UBound($aSchliesfach1)-1
    GUICtrlSetData($aSchliesfach1[$i],'')
    GUICtrlSetData($aSchliesfach2[$i],'')
    GUICtrlSetData($aSchliesfach3[$i],'')
    GUICtrlSetData($aSchliesfach4[$i],'')
    Next
    GUICtrlSetData($Combo1,_setCombo())
    GUICtrlSetData($Combo3,_setCombo())
    GUICtrlSetData($Combo4,_setCombo())
    GUICtrlSetData($Combo2,_setCombo())
    EndFunc
    ;-------------------------------------------------------------------------------------------
    Func _setCombo()
    Local $Sections = IniReadSectionNames($DataINI)
    Local $SectionString = _ArrayToString($Sections,'|',1,UBound($Sections)-1)
    Return($SectionString)
    EndFunc
    ;-------------------------------------------------------------------------------------------

    [/autoit]

    Bitte keine Augen/Lachkrämpfe bekommen ;)
    Jemand noch ne Idee bitte?

    Mfg Ghostleader

  • Wo liegt denn das Problem? Wenn ich dich jetzt richtig verstanden habe, bist du der Meinung, dass jede Person einen eigenen Section hat. Deswegen ist der Sectionname nicht immer konstant "Seppel". Das Problem lässt sich doch leicht lösen, indem du beim Löschen den Namen ausliest.

    Spoiler anzeigen
    [autoit]

    Func _deleteSchliessfach()
    $sBesitzer = GUICtrlRead($Combo2)
    $aSections = IniReadSection("data.ini", $sBesitzer) ;sectionname auslesen
    For $i = 1 To $aSections[0][0]
    If StringRegExp($aSections[$i][0], "\d000") Then ;wir überprüfen den Sectionname mit einem regulären Ausdruck (geht auch einfacher mit StringLeft)
    ;~ConsoleWrite($aSections[$i][0] & @crlf)
    IniDelete("data.ini", $sBesitzer, $aSections[$i][0]) ;jeden Key löschen, auf den der reguläre Ausdruck zutrifft
    EndIf
    Next
    _clearGUI()
    EndFunc

    [/autoit]

    Hab ich das jetzt schon wieder falsch verstanden?

  • Hallo @night@,

    ja so meinte ich das in Etwa.
    So wie du das umgestellt hast könnte es gehen, jedoch bin ich mir bei Section noch net so sicher die Ini erstellt ja für das Bankschliessfach 4 Spalten a 16 Inputs pro Spalte. D.h. es sind ja immer zb. von 2000 - 2016, 3000 - 3016, 4000 - 4016 und 5000 - 5016 vergeben wie würde ich denn in diesem Fall die jeweils 16 einträge pro Spalte in deiner Variante auslesen, denn das ist das was ich net verstehe gerade!
    Hier mal ein Bsp. aus der ini bei vollen 4 Spalten und demnach 64 Input Einträgen [Seppel] <--- ist der Account.

    Spoiler anzeigen

    [seppel]
    20001=1
    30001=2
    40001=3
    50001=4
    20002=1
    30002=2
    40002=3
    50002=4
    20003=1
    30003=2
    40003=3
    50003=4
    20004=1
    30004=2
    40004=3
    50004=4
    20005=1
    30005=22
    40005=33
    50005=4
    20006=1
    30006=2
    40006=3
    50006=4
    20007=1
    30007=2
    40007=3
    50007=4
    20008=11
    30008=2
    40008=3
    50008=4
    20009=1
    30009=2
    40009=3
    50009=4
    200010=1
    300010=2
    400010=3
    500010=4
    200011=1
    300011=22
    400011=3
    500011=44
    200012=1
    300012=2
    400012=3
    500012=4
    200013=1
    300013=2
    400013=33
    500013=4
    200014=1
    300014=2
    400014=3
    500014=4
    200015=1
    300015=2
    400015=3
    500015=4
    200016=1
    300016=2
    400016=3
    500016=4

    Ich hoffe du verstehst wie ich das meine.

    Mfg Ghostleader

  • Ganz ruhig. Ich dachte, es geht darum eine Funktion zu schreiben, welche nur die Bankschliessfächer löcht und das Lager ignoriert.
    Durch das Ersetzen der Funktion habe ich nichts am Auslesen an sich geändert. Meine Funktion löscht nur alle Keys in einem gewählten Section, welche mit 2000, 3000, 4000 oder 5000 (etc.)anfangen.
    Wo liegt das Problem?

  • Hallo @night@

    du hast recht, es geht sogar darum das die Func zwar die Schliesfächer löscht aber das Lager in ruhe lässt ;) .
    Ich komme nur net mit der Func von dir klar (Sorry lange Leitung). Wo steht denn da das diese wie du gerade sagtest (alle Keys in einer gewählten Section, welche mit 2000, 3000, 4000 oder 5000 (etc.)anfangen löscht?
    Das ist das was ich suche in deiner Func!

    Mfg Ghostleader

  • Hallo Ghostreader,
    wir listen uns mit der Funktion IniReadSection() alle Keys innerhalb des gewählten Sections auf.
    Anschliessend durchlaufen wir jeden Key mit einer Schleife. Auf diese Weise überprüfen wir jeden Key mit StringRegExp(Link zum Tutorial ist oben) ob er eine Zahl wie z.B. 5000 enthält.

    [autoit]

    StringRegExp("500031", "\d000")

    [/autoit]


    Der Ausdruck \d000 sagt aus: Such nach einem String, indem eine Zahl (\d) gefolgt von drei Nullen steht.

    [autoit]

    If StringRegExp($aSections[$i][0], "\d000") Then

    [/autoit]


    Wenn unser Key also eine 5000, eine 4000 oder z.B. eine 3000 enthält, wird er gelöscht. Natürlich könnte man den Ausdruck noch verfeinern, aber da ich mich damit nicht so gut auskenn lassen wir das jetzt mal xD

    Einmal editiert, zuletzt von @night@ (25. Dezember 2011 um 23:38)