txt Datei mit 100.000 Zeilen aufteilen in mehrere txt Dateien mit nur 10.000 Zeilen

  • du kannst auch die Datei mit _FileReadToArray komplett einlesen und in einer For...Next Schleife mit _FileWriteFromArray (Parameter $iBase + $iUBound benutzen!) Blockweise in einzelne Dateien schreiben.

  • du kannst auch die Datei mit _FileReadToArray komplett einlesen und in einer For...Next Schleife mit _FileWriteFromArray (Parameter $iBase + $iUBound benutzen!) Blockweise in einzelne Dateien schreiben.

    funktioniert sehr gut , danke

    kann man den die ersten 10.000 zeilen aus Array auf die schnelle löschen ?

  • ja geht hier ein angepasstes Beispiel aus der Hilfe:

  • Falls du vorhast größere Mengen an Dateien zu speichern ist ein Random mit 4 Stellen ggf. ungeeignet. Zudem unterscheidet Windows nicht zwischen groß und Kleinschreibung.

    Beispiel: (Falls ich mich verrechnet habe, jedem Stochastik-Profi steht frei das zu überprüfen^^)
    36 mögliche Zeichen -> 36^4 = 1679616 Möglichkeiten. (klingt erstmal ziemlich viel)
    Beim schreiben der ersten Datei kann keine Kollision auftreten.
    Bei der 2ten ist die Chance (36^4-1)/(36^4) dass es keine Kollision gibt, usw.
    Bei 300 Dateien ist die Chance schon 2,6% dass es mindestens 1x knallt.
    Bei 3000 Dateien sieht es schon ziemlich übel aus. (93% Chance auf mindestens eine Kollision).

    Daher habe ich mir irgendwann einmal eine Timestamp Funktion gebastelt (die ebenfalls im 36er System funktioniert und 5 Zeichen braucht). Wenn man (sicher) weiß, dass ein Schreibvorgang länger als ca. 10ms dauert kann diese Funktion ohne Zusätze genutzt werden um große Mengen Dateien mit einem Zeitstempel zu nummerieren. Ganz genau (und sicherer) wäre natürlich der 64Bit Timestamp. Alternativ einfach 8 Zufallszeichen im 36er System nutzen, damit kommt man in fast allen Fällen auch klar.

    Allerdings ist mir nicht klar was du vorhast. Wenn du die Dateien zufällig benennst kannst du sie doch nicht wieder in der richtigen Reihenfolge ansprechen ?