Textdatei erste Zeile entfernen

  • Der String Split funzt prima, nur sobald er halt einen "Nullwert" (also es steht kein Wert zur Verfügung) erhällt, ist Ende im Gelände...

    Nur als Bsp.

    Die Grunddatei sieht so aus (ist ne Txt mit dem Inhalt, die dann auch unten geöffnet wird):

    Administrator^654365436
    mstar^34123
    buser^
    cuser^4r34123

    wie du siehst, ist an der dritten "Stelle" hinter dem ^ ein leer, bzw. es steht dort kein Wert hinter...
    demnach findet das Array dann ein "leer" und bricht ab... aber es soll ja weiterlaufen...


    [autoit]


    #include <array.au3>
    #include <date.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    Dim $hash

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

    $file_2 = "c:\PG_konv.txt"

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

    $go3 = FileOpen($file_2, 0)

    If $go3 = -1 Then
    Msgbox(0,"","Fehler bei der Datei")
    EndIf

    While 1

    $line_2 = FileReadLine($go3)

    $hash = StringSplit($line_2, '^')

    $user = $hash[1]
    $bytes = $hash[2]

    EndIf
    ConsoleWrite($user & @CRLF)

    ConsoleWrite($bytes & @CRLF)

    WEnd

    [/autoit]
    • Offizieller Beitrag

    Dabei würde das Script doch gar nicht abbrechen, weil StringSplit doch trotzdem ein Array zurückgibt.
    Einen Abbruch gibt es doch nur bei einer Leerzeile, aber dann könnte man das so schreiben:

    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    #include <date.au3>
    #include <String.au3>
    #include <File.au3>
    #include <Array.au3>
    Dim $hash

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

    $file_2 = "c:\PG_konv.txt"

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

    $go3 = FileOpen($file_2, 0)

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

    If $go3 = -1 Then
    MsgBox(0, "", "Fehler bei der Datei")
    EndIf

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

    While 1
    $line_2 = FileReadLine($go3)
    If @error Then ExitLoop
    $hash = StringSplit($line_2, '^')
    If UBound($hash) > 2 Then
    $user = $hash[1]
    $bytes = $hash[2]
    ConsoleWrite($user & @CRLF)
    ConsoleWrite($bytes & @CRLF)
    EndIf
    WEnd

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

    FileClose($go3)

    [/autoit]
  • Oscar, ich glaube das war die Lösung meines Problems...

    habe es noch nicht richtig testen können, da der Postausgangsserver meine Scripte rausgefischt hat^^

    werde es morgen aber testen, berichten und wenn alles auch passt, das Thema auf gelöst stellen^^

    VIELEN LIEBEN DANK an dich und auch an Mega!

    Volumeman

    Edit: Hat alles gefunzt... supi!!!

    Einmal editiert, zuletzt von Volumeman (18. November 2008 um 12:46)