In einer Datei eine Zahl hochrechnen (+1)

  • Hallo Comm,

    jaja mal wieder ich mit einem Problemchen. Und zwar versuche ich in einer Extra Datei eine Zahl zu ändern. Dort soll aber nur +1 gerechnet werden.

    Wenn halt z.B. 2 in der Datei steht soll aus der 2 nach dem Eintragen eine 3 werden.

    Mit _FileWriteToLine weiss ich wie man eine Zeile löscht, aber das ist auch alles. Neueinträge bekomm ich nicht hin, und auslesen tut er es, was vorher in der Datei steht.

    Code:

    [autoit]

    #NoTrayIcon

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

    Global $File, $AnzDownloads, $DownloadFile[90000][5]

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

    #include <GUIConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <File.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Download Hinzufügen", 408, 235, 193, 125)
    $Group1 = GUICtrlCreateGroup("Download Hinzufügen:", 0, 32, 410, 169)
    $Input1 = GUICtrlCreateInput("Download Manager", 208, 40, 121, 21)
    $Input2 = GUICtrlCreateInput("DowMan", 208, 72, 121, 21)
    $Input3 = GUICtrlCreateInput(".exe/.rar/.zip/.tar.gz", 208, 104, 121, 21)
    $Input4 = GUICtrlCreateInput("/downloads/", 208, 136, 121, 21)
    $Input5 = GUICtrlCreateInput("*", 208, 168, 121, 21)
    $Label1 = GUICtrlCreateLabel("Endzeichen (Wird nicht angezeigt):", 8, 176, 169, 17)
    $Label6 = GUICtrlCreateLabel("Restliche URL wo der Download liegt:", 8, 144, 184, 17)
    $Label2 = GUICtrlCreateLabel("Die Dateiendung (z.B. DownMan.exe)", 8, 112, 183, 17)
    $Label3 = GUICtrlCreateLabel("Programm Name (Auf Ihrem Server):", 8, 80, 173, 17)
    $Label4 = GUICtrlCreateLabel("Download Name (Dient zur Orientierung):", 8, 48, 197, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label5 = GUICtrlCreateLabel("Download Manager - Download Hinzufügen", 8, 0, 379, 27)
    GUICtrlSetFont(-1, 12, 400, 4, "Arial Black")
    $Button1 = GUICtrlCreateButton("Hinzufügen", 128, 208, 163, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then
    Exit
    EndIf

    If $msg=$Button1 Then
    $File=FileOpen(@ScriptDir&"\datei.txt", 2)
    $AnzDownloads=FileReadLine($file, 1)
    FileReadLine($file)
    _FileWriteToline($file, 1, $AnzDownloads, 2)
    _FileWriteToLine($file, 1, $AnzDownloads+1, 0)
    FileWriteLine(@ScriptDir&"\datei.txt", "")
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input1))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input2))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input3))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input4))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input5))
    EndIf

    WEnd

    [/autoit]

    Was in der Text Datei steht:

    Hoffe mir kann da einer helfen

    EDIT: Verklickt eigendlich erst Vorschau

  • Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    #NoTrayIcon

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

    Global $File, $AnzDownloads, $DownloadFile[90000][5]

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

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Download Hinzufügen", 408, 235, 193, 125)
    $Group1 = GUICtrlCreateGroup("Download Hinzufügen:", 0, 32, 410, 169)
    $Input1 = GUICtrlCreateInput("Download Manager", 208, 40, 121, 21)
    $Input2 = GUICtrlCreateInput("DowMan", 208, 72, 121, 21)
    $Input3 = GUICtrlCreateInput(".exe/.rar/.zip/.tar.gz", 208, 104, 121, 21)
    $Input4 = GUICtrlCreateInput("/downloads/", 208, 136, 121, 21)
    $Input5 = GUICtrlCreateInput("*", 208, 168, 121, 21)
    $Label1 = GUICtrlCreateLabel("Endzeichen (Wird nicht angezeigt):", 8, 176, 169, 17)
    $Label6 = GUICtrlCreateLabel("Restliche URL wo der Download liegt:", 8, 144, 184, 17)
    $Label2 = GUICtrlCreateLabel("Die Dateiendung (z.B. DownMan.exe)", 8, 112, 183, 17)
    $Label3 = GUICtrlCreateLabel("Programm Name (Auf Ihrem Server):", 8, 80, 173, 17)
    $Label4 = GUICtrlCreateLabel("Download Name (Dient zur Orientierung):", 8, 48, 197, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label5 = GUICtrlCreateLabel("Download Manager - Download Hinzufügen", 8, 0, 379, 27)
    GUICtrlSetFont(-1, 12, 400, 4, "Arial Black")
    $Button1 = GUICtrlCreateButton("Hinzufügen", 128, 208, 163, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then
    Exit
    EndIf

    If $msg=$Button1 Then

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

    $dateiinhalt=FileRead(@ScriptDir&"\datei.txt") ;Dateiinhalt in einen string
    $array=stringsplit($dateiinhalt,@crlf,3) ; dateiinhalt zeilenweise ins Array
    $reg=stringregexp($array[0],"\d",1) ;die Zahl in der ersten Zeile finden
    $array[0]=number($reg[0])+1 ;erste zeile um eins erhöhen
    $dateiinhalt=_ArrayToString($array,@crlf) ;alles wieder in einen String
    filedelete(@ScriptDir&"\datei.txt")
    FileWrite(@ScriptDir&"\datei.txt", $dateiinhalt)
    FileWriteLine(@ScriptDir&"\datei.txt", "")
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input1))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input2))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input3))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input4))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input5))
    EndIf

    WEnd

    [/autoit]
  • Man könnte das ganze auch einfach mit _FileReadToArray und FileWriteFromArray machen, da ist der Zugriff auf die einzelnen Zeilen dann besonders leicht.

  • @arkaneus...yepp, aber wenn man zu faul ist um die genaue Syntax nachzuschlagen macht mans "zu Fuß"^^