Показать полную графическую версию : Разбить тхт файл не только по строкам, но и по папкам
Abricosio
12-07-2018, 09:10
Iska, а есть какое-нибудь регулярное выражение для такого случая?
Abricosio, чем Вас текущее состояние не устраивает?
А не лучше будет в таких запущенных случаях(миллионы строк) отдать разбивку норм. проге на Цэ\Цэ++ - тот же Winrar , а потом собирать уже скриптом.
Ну т.е. отдать Winrar-у этот "миллионнострочный_файл" и нехай он его разбивает на фрагменты по 300kb(или скокатам получаеццо размер файла из 1000 строк). А потом эти фрагменты разложить по-папкам. :search:
не лучше будет в таких запущенных случаях(миллионы строк) отдать разбивку норм. проге на Цэ\Цэ++ - тот же Winrar , а потом собирать уже скриптом. »
:no:
не лучше... вернее, чем лучше?
хорошо, вот полный тест:
$watch = [diagnostics.stopwatch]::startnew()
$watch.start()
$cnt = 10000000
$str = new-object text.stringbuilder
for($k=1;$k -le $cnt; $k++){
$null = $str.append("строка для теста`r`n")
}
($str.tostring()).trim()|sc test.txt -enc utf8
$fl = 'test.txt'
$root = 'root'
if (!(test-path $root)){md $root|out-null}
gc $fl -read 1000 -enc utf8|%{$i,$n=1,1;$tmp = "$root\$n"}{
if(!(test-path $tmp)){md $tmp|out-null}
set-content -path "$tmp\$i.txt" -val $_ -enc utf8
switch ($i) {
100 {$n++;$i=0;$tmp = "$root\$n"}
}
$i++
}
$watch.stop()
$watch.elapsed >timelog.txt
и создает, и разбивает, и считает время выполнения.
Days : 0
Hours : 0
Minutes : 1
Seconds : 25
Milliseconds : 164
Ticks : 851640521
TotalDays : 0,000985695047453704
TotalHours : 0,0236566811388889
TotalMinutes : 1,41940086833333
TotalSeconds : 85,1640521
TotalMilliseconds : 85164,0521
- это достаточно вменяемые цифры
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.