Diverse dateien zeile lesen und addieren...

  • Hey,

    Ich will von diversen dateien die erste zeile lesen "sind nur zahlen" und anschliessen addieren und dann die summe daraus bilden.
    Das lesen klappt auch soweit so sieht mein consolewrite aus:
    1
    7
    10
    22
    11
    228
    13
    55
    2
    11
    571
    57
    5
    69
    1
    84
    10
    1
    5
    1
    2
    18
    148
    5
    14
    15
    2
    68
    2
    2
    6

    Wie kriege ich jetzt die summe daraus??

    Spoiler anzeigen
    [autoit]

    $file = FileOpen($sReports&"\"&$addGUID[$i][1]&'.knz' , 0)
    If $file = -1 Then
    ; MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

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

    ; Zeilen des Textes einlesen bis EOF
    While 1
    $line = FileReadLine($file)
    If @error = -1 Then ExitLoop
    ;MsgBox(0, "Zeile gelesen:", $line)
    Global $anzahl
    Global $ganzahl
    $ganzahl = $anzahl + $line

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

    Wend
    ConsoleWrite($ganzahl&@CRLF)
    FileClose($file)

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

    Next
    EndIf

    [/autoit]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Statisch für 1 Datei:

    Spoiler anzeigen
    [autoit]

    Global $ganzahl = 0

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

    $file = FileOpen("testfile.txt", 0)
    If $file == -1 Then
    ; MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

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

    ; Zeilen des Textes einlesen bis EOF
    While 1
    $line = FileReadLine($file)
    If @error == -1 Then ExitLoop
    ;MsgBox(0, "Zeile gelesen:", $line)
    $ganzahl += $line
    WEnd
    ConsoleWrite($ganzahl & @CRLF)
    FileClose($file)

    [/autoit]

    Variabel für mehrere Dateien:

    Spoiler anzeigen
    [autoit]

    Global $ganzahl = 0

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

    $ganzahl += _getValuesSumFromFile("testfile.txt")
    $ganzahl += _getValuesSumFromFile("testfile2.txt")
    $ganzahl += _getValuesSumFromFile("testfile3.txt")

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

    Func _getValuesSumFromFile($filePath)
    Local $file, $line, $sum
    $file = FileOpen($filePath, 0)
    If $file == -1 Then
    ; MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
    Exit
    EndIf

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

    ; Zeilen des Textes einlesen bis EOF
    While 1
    $line = FileReadLine($file)
    If @error == -1 Then ExitLoop
    ;MsgBox(0, "Zeile gelesen:", $line)
    $sum += $line
    WEnd
    FileClose($file)
    Return $sum
    EndFunc ;==>_getValuesSumFromFile

    [/autoit]

    3 Mal editiert, zuletzt von Milla (14. Dezember 2010 um 11:24)

  • Ich denke mal du kommst am besten wenn du die einzelnen Zahlen in ein Array speicherst und diese dann addierst.

    Weißt du vorher wieviele Dateien es sind? Sind es immer gleichviele?

    Poste mal am besten dein Code mit.

    Einmal editiert, zuletzt von Prixma (14. Dezember 2010 um 13:58)