IniWrite

  • Dann probier es mal so:

    Spoiler anzeigen
    [autoit]

    Func _merken()
    Local $MerkNr
    Local $IniFile = @ScriptDir & "\ini\" & GUICtrlRead($LargeInput) & ".ini"
    Local Const $IniSection = "Link"
    Local $SectionContent

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

    Send("^c"); EIntrag für die Zwischenablage
    Sleep(300)

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

    ; MerkNr ermitteln
    If FileExists($IniFile) Then ; Prüft ob INI vorhanden ist!
    ; Section einlesen
    $SectionContent = IniReadSection($IniFile, $IniSection)
    If @error Then
    ; Section nicht lesbar oder nicht vorhanden -> $MerkNr = 1
    $MerkNr = 1
    Else
    ; Davon ausgehend, dass von 1 bis x durchnummeriert ist - > $MerkNr = Anzahl der Array-Einträge
    $MerkNr = $SectionContent[0][0]
    ; Um 1 erhöhen
    $MerkNr += 1
    EndIf
    Else
    ; Ini existiert nicht -> $MerkNr = 1
    $MerkNr = 1
    EndIf

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

    ; Wert rausschreiben
    IniWrite($IniFile, $IniSection, $MerkNr, ClipGet())
    EndFunc ;==>_merken

    [/autoit]

    happy computing
    R@iner

    Einmal editiert, zuletzt von skyteddy (30. Mai 2012 um 10:52) aus folgendem Grund: Comment ergänzt

  • Genauso meinte ich das. :thumbup:
    Aber statt Send("^c") würde ich ClipPut nehmen.

    Hier ein bisschen kürzer: ;)

    Spoiler anzeigen
    [autoit]

    Func _merken()
    Local $MerkNr = 1
    Local $IniFile = @ScriptDir & "\ini\" & GUICtrlRead($LargeInput) & ".ini"
    Local Const $IniSection = "Link"
    Local $SectionContent

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

    ClipPut(); EIntrag für die Zwischenablage

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

    ; MerkNr ermitteln
    If FileExists($IniFile) Then ; Prüft ob INI vorhanden ist!
    ; Section einlesen
    $SectionContent = IniReadSection($IniFile, $IniSection)
    If Not @error Then
    ; Davon ausgehend, dass von 1 bis x durchnummeriert ist - > $MerkNr = Anzahl der Array-Einträge
    $MerkNr = $SectionContent[0][0]
    ; Um 1 erhöhen
    $MerkNr += 1
    EndIf
    EndIf

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

    ; Wert rausschreiben
    IniWrite($IniFile, $IniSection, $MerkNr, ClipGet())
    EndFunc ;==>_merken

    [/autoit]

    Aber wieso machst du das über die Zwischenablage. Kannst du nix auslesen?

    3 Mal editiert, zuletzt von m-obi (30. Mai 2012 um 12:12)

  • Ich könnte es noch kürzer machen, aber es geht ja darum, dass der User versteht, was passiert. Nichts schlimmeres, als Scripte nicht verstehen zu können...

    happy computing
    R@iner

  • Ich schaff es nur so kurz:

    Spoiler anzeigen
    [autoit]

    Func _merken()
    Local $i = 1, $sIniFile = @ScriptDir & "\ini\" & GUICtrlRead($cLargeInput) & ".ini", $aIni

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

    ClipPut()

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

    If FileExists($sIniFile) Then
    $aIni = IniReadSection($sIniFile, "Link")
    If Not @error Then
    $i = $aIni[0][0] + 1
    EndIf
    EndIf

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

    IniWrite($sIniFile, "Link", $i, ClipGet())
    EndFunc ;==>_merken

    [/autoit]


    Du meinst sie ;).
    Ich meine Ilse versteht es eher anhand von Scripten.

  • Du meinst sie ;).
    Ich meine Ilse versteht es eher anhand von Scripten.


    Keine Ahnung, ob Ilse männlich, weiblich oder was auch immer ist. Bei Nicks ist das nicht klar ersichtlich.

    So geht es auch, wobei evtl. Dein Clipput falsch sein kann und sein Send(..) richtig.

    [autoit]

    Func _merken()
    Local $i = 1, $sIniFile = @ScriptDir & "\ini\" & GUICtrlRead($cLargeInput) & ".ini", $aIni
    ClipPut()
    $aIni = IniReadSection($sIniFile, "Link")
    If Not @error Then $i = $aIni[0][0] + 1
    IniWrite($sIniFile, "Link", $i, ClipGet())
    EndFunc ;==>_merken

    [/autoit]

    happy computing
    R@iner

  • Ja stimmt das FileExists braucht man ja nicht. Das erledigt ja IniReadSection. Naja gut die Leerzeilen....ein bisschen Ordnung sollte schon sein. Warum sollte ClipPut falsch sein?

  • Warum sollte ClipPut falsch sein?


    Ein CTRL+C kopiert in der Regel den selektierten Text in die Zwischenablage! Dein Clipput() macht genau das Gegenteil, nämlich schreibt "" in die Zwischenablage und löscht somit den Text in der Zwischenablage.

    Aber ich hab das ganze Vorhaben des $OP eh nicht verstanden :)

    happy computing
    R@iner

  • Ich hab doch geschrieben, dass es falsch ist.

    Du meinst bestimmt $var, er hat "" geschrieben. Und das heißt halt löschen. Es sei denn man schreibt noch was darein. Dann ist es speichern.