Section in .ini

  • Hallo Com!

    Ich habe folgendes problem ich muss ein folgendes programmschreiben:

    Es soll durch alle .ini dateien in einem ordner gehen und ganz oben diesen string [Account] einfügen.

    so sieht mein jetztiges script aus.

    [autoit]

    $sOrdner = FileSelectFolder("Ordner wählen", "")

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

    $aFiles = _FileListToArray($sOrdner, "*.ini", 1)
    For $i = 1 To $aFiles[0]
    $sFile = FileRead($sOrdner & "\" & $aFiles[$i])
    $datei = FileOpen($sOrdner & "\" & $aFiles[$i], 2)
    FileWriteLine($i,"[Account]")

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

    NexT

    [/autoit]

    So da ist auch schon mein problem denn ich weis zwar das das [Account] Ganz oben stehen muss und nicht ganz unten. es sind ca. 800 .ini's und in jeder .ini stehen ca. 90 werte bitte schnelle hilfe.

    Einmal editiert, zuletzt von SionS (27. Juli 2011 um 14:11)

  • So zum Beispiel?

    [autoit]


    #include <file.au3>
    #include <array.au3>

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

    Global $aINI
    Global $sOrdner = FileSelectFolder("Ordner wählen", "")
    Global $aFiles = _FileListToArray($sOrdner, "*.ini", 1)

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

    For $i = 1 To $aFiles[0]
    _FileReadToArray($sOrdner & "\" & $aFiles[$i],$aINI)
    _ArrayInsert($aINI,1,"[Account]")
    _FileWriteFromArray($sOrdner & "\" & $aFiles[$i],$aINI,1)
    Next

    [/autoit]
  • Ja sry wenn es funzen würde er schreibt dan nix in die datei da steht dann das drinne was schon voher drinne stand

  • Villt i-wie mit

    [autoit]

    _FileWriteToLine()

    [/autoit]

    aber ich weis ned wo ich das dann einbinden sollte

  • Ja sry wenn es funzen würde er schreibt dan nix in die datei da steht dann das drinne was schon voher drinne stand

    Mein script schreibt an den Dateianfgang das was du haben wolltest, nämlich einen Sektionsname [Account]. Ich hatte aber den Code nochmal editiert, weil ich zum testen die ini Deteien im scriptdir hatte. Probiers bitte nochmal.

  • Hallo SionS,

    das Skript von misterspeed funktioniert einwanfrei. Wenn du es mit _FileWriteToLine machen willst sieht das ganze so aus:

    [autoit]

    #include <file.au3>
    #include <array.au3>

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

    Global $aINI
    Global $sOrdner = FileSelectFolder("Ordner wählen", "")
    Global $aFiles = _FileListToArray($sOrdner, "*.ini", 1)

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

    For $i = 1 To $aFiles[0]
    _FileWriteToLine($sOrdner & "\" & $aFiles[$i], 1, "[Account]", 0)
    Next

    [/autoit]

    Hat den Vorteil dass es etwas schneller ist. Da aber das Skript von Misterspeed bei ir nicht läuft befürchte ich dass du in dem ausgewählten Ordner keine Schreibrechte hast. Dann klappt dieses natürlich auch nicht,

    mfg autoBert

  • Alles klar
    es funst doch danke war mein fehler :whistling:

    danke an euch beide 8o


    >>Geschlossen<<