Hilfe bei dem "mitzählen" der Sections innerhalb der Inidatei

  • Hallo Leute,

    ich bin gerade dabei, für die Arbeit einen kleinen Termin Planer zu schreiben mit AutoIt, dazu schreibe ich auch eine Funktion, die die ganzen Termine in eine IniDatei schreiben soll. Die einzelnen Termine sollen mit dem SectionNamen "Termin 1, Termin 2, Termin 3, ... usw. " getrennt werden.

    Das Heißt das Script soll ermitteln ob die Datei schon existiert, wenn ja dann soll ermittelt werden wie viele Elemente "SectionNames" schon vorhanden sind und soll dann ein Neues Section erstellen, mit natürlich der nächsthöheren Zahl.

    Bisher sieht diese Funktion so aus:

    [autoit]


    Func _My_IniWrite($hFile, $hName, $hDatum, $hTermin)
    $i = 1
    If FileExists(@ScriptDir & $hFile) Then
    $aIniSectionName = IniReadSectionNames($hFile)
    $a = UBound($aIniSectionName) -1
    IniWrite($hFile, "Termin " & $a + 1, "Name", $hName)
    Else
    IniWrite($hFile, "Termin " & $i, "Name", $hName)
    EndIf
    EndFunc

    [/autoit]

    Leider funktioniert das nicht so wie ich es mir Vorstelle, denn egal ob die Datei schon existiert, diese Funktion überschreibt immerwieder nur "Termin 1" ich hoffe ihr könnt mir da weiterhelfen.

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

  • das verstehe ich nicht so ganz jetzt, ich dachte, dass ich so in etwas das schon versuche, aber leider scheints nicht zu funktionieren.

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin

    • Offizieller Beitrag
    [autoit]

    Global $INI = @ScriptDir & '\test_sections.ini'
    Global $iNext

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

    If Not FileExists($INI) Then
    IniWriteSection($INI, 'about', 'next_value=1')
    EndIf
    $iNext = IniRead($INI, 'about', 'next_value', '1')

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

    Func _WriteNextSection($sData)
    Local Static $sT = "Termin_"
    IniWriteSection($INI, $sT & $iNext, $sData)
    $iNext += 1
    IniWrite($INI, 'about', 'next_value', $iNext)
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    @Facemix
    Ich tippe mal darauf, das hier dein Fehler liegt:

    [autoit]

    If FileExists(@ScriptDir & $hFile) Then

    [/autoit]


    Da fehlt ein \

    [autoit]

    If FileExists(@ScriptDir & "\" & $hFile) Then

    [/autoit]


    Durch das fehlen des \ wird immer der Else Zweig angesprungen.

    Edit: Die Anzahl der Sections steht in $aIniSectionName[0] btw.

    [autoit]

    $a =$aIniSectionName[0]

    [/autoit]
  • @BugFix
    Dein Code, funktioniert zwar sehr gut, aber dann habe ich da ständig diese Section [about] drin, habe auch versucht, diese Section in eine Seperate Datei umzuverlagern, dann funktionierts nur leider nicht mehr. Trotzdem danke für deinen Codevorschlag, ich habe ihn mir mal zwischengespeichert, vlt kann ich ihn ja später doch noch gebrauchen ;)

    @Raupi
    Danke für deinen Hinweis auf das Fehlende Zeichen und deine Hilfestellung, wo ich die Anzahl der Elemente finden kann, das habe ich mal so abgeändert und jetzt funktioniert es echt klasse. Das heist ich war schon auf dem richtigen Weg nur ich hau immer so leichtsinnsfehler rein, die nicht sein müssen hehe, aber danke nochmal.

    MfG, Facemix

    meine Spezialität: Windowstools für eine leichtere Arbeit am PC

    Nicht veröffentlicht


    nicht veröffentlichte Programme von mir

    - FTP Filereader
    - Youtube Kanal Player
    -GDI+ Countdown (bis zu einem Wunderbaren ereignis :) )

    MyPastebin