TXT nach Zeilen aufteilen

  • Also, für mein Lizenz-System (siehe Scripte) habe ich einen Code-Creater erstellt.
    Diesen habe ich jetzt solange durchlaufen lassen, dass er 1mio Codes erstellt hat.
    Bloß ist alles in einer TXT. Weil ich daraus eigentlich 100 10.000-Code dateien erstellen will, brauch ich jetzt eben auch diese Codes gleichmäßig in 100 Dateien aufgeteilt, da es einmal MD5 und einmal Normale Codes sind, sollte das am besten so sein: Die ersten 10.000 der MD5 in die eine Datei (1md5.txt), die ersten 10.000 der Normalen Codes in die andere (1nor.txt). Die zweiten 10.000 dann in 2md5.txt/2nor.txt.
    Bekommt man das irgendwie hin?
    Man könnte es auch per Hand machen, nur ist das bei 100 mal 10.000 Zeilen (jede Zeile ein Code) sehr mühsam.

    Gruß,
    Ben

  • 1. Zehn Zeilen der MD5

    3a62997322fbdc091daa1f2805b13091
    7b096788b80737dced59a5ce502b4cf0
    869a9d118f3a645336dd609a75666132
    93bbf6a7a85e9249c25d31808ccbbe1f
    e8361f81afe983deca1dae55ec1c59ed
    8a787a688fefeea60ccea6909e01afcd
    dbf1486c09958f8b35a9a5e1b14716bc
    e572158a84a1d63a79eb980ffef3285a
    a1541d0009f885211dc7a49b0d71db7c
    de3745e7c59584bccbef77ec3f30e0a3

    Der Nromalen Codes:

    KAJN-8828-ZIGM-4757
    ODIJ-6555-SYLM-2559
    BFMR-2679-DDZX-6551
    RCNE-8544-GBYX-1381
    YICZ-7605-IMZU-3011
    JPTM-7235-PPLE-9429
    GXZJ-4508-DIEC-1692
    XCCS-3940-SVVS-7135
    LHDE-9825-USIF-8309
    RDIR-7560-NFNK-9461

    Die 1. Zeile der Normalen Codes passt uir ersten der MD5 Codes
    Bei der 2. ist es immer genau so
    Die getrennten Datein sollen genauso aufgebaut, doch statt 1mio zeilen für 1mio codes nur jeweils 10.000 zeilen/codes


    Edit: Codes wurden falsch angezeigt

  • Achso, dachte das steht alles in einer Datei.
    Ungefähr so, aber ohne Gewähr.

    Spoiler anzeigen
    [autoit]


    #Region - Timestamp
    ;2011-04-26 16:12:19
    #EndRegion - Timestamp
    #Include <File.au3>
    #Include <Array.au3>
    $sMD5File = ""
    $sKeyFile = ""

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

    Local $aKeyFile, $aMD5File

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

    $iMD5Count = _FileCountLines($sMD5File)
    $iKeyCount = _FileCountLines($sKeyFile)

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

    If $iMD5Count <> $iKeyCount Then
    MsgBox(0, 0, "Fehler")
    Exit
    EndIf

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

    _FileReadToArray($sMD5File, $aMD5File)
    _FileReadToArray($sKeyFile, $aKeyFile)

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

    For $i = 1 To 10
    $hMD5Output = FileOpen(@ScriptDir& "\" & "MD5_" & $i & ".txt", 9)
    $hKeyOutput = FileOpen(@ScriptDir& "\" & "Key_" & $i & ".txt", 9)
    $count = 0
    For $j = $aMD5File[0] To 1 Step -1
    FileWrite($hMD5Output, $aMD5File[$j])
    FileWrite($hKeyOutput, $aKeyFile[$j])
    _ArrayDelete($aMD5File, $j)
    _ArrayDelete($aKeyFile, $j)
    $count += 1
    If $count = 10000 Then ExitLoop
    Next
    Next

    [/autoit]
  • Also bin mir nicht sicher ob ich dein Problem richtig verstanden habe, aber ich würde das so machen:

    [autoit]


    ; 1. Array mit den md5 Daten erstellen --> $md5Array
    ; 2. Array mit zugehörigen Lizenz Codes erstellen -- $keyArray
    ; 3. in einer Schleife mit FilewritefromArray alle Einträge in mehrere Dateien schreiben, könnte so ausschaun:

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

    for $i=1 to 100
    $startIndex = ($i*10000)-10000
    $endindex = ($i*10000)-1 ; bei einem 0-basierten Array
    if UBound($md5Array)-1 >= $endindex And UBound($keyArray)-1 >= $endindex Then
    _filewritefromArray(@ScriptDir & "\md5_" & $i & ".txt",$md5Array,$startIndex,$endindex)
    _filewritefromArray(@ScriptDir & "\key_" & $i & ".txt",$keyArray,$startIndex,$endindex)
    Else
    MsgBox(0,"Fehler","Da stimmt was mit der Array Adressierung nicht...")
    ExitLoop
    EndIf
    Next

    [/autoit]

    Aber so ganz verstanden habe ich nicht wie deine Dateien nun ausschaun.

  • War heute Nachmittag rrelativ kurz angebunden. Unterwegs viel mir dann ein, das

    [autoit]

    For $j = $aMD5File[0] To 1 Step -1

    [/autoit]


    nicht funktionieren wird.
    Es müsste schon

    [autoit]

    For $j = Ubound($aMD5File)-1 To 1 Step -1

    [/autoit]


    heissen.