Имя пользователя:
Пароль:
 

Название темы: Упростить скрипт
Показать сообщение отдельно

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1235
Благодарности: 517

Профиль | Отправить PM | Цитировать


Technik_spat, а этот вопрос решили?
Ну, всё равно, может быть, кому-нибудь пригодится...
powershell с потоковым чтением-записью файлов:
Код: Выделить весь код
$sgtin  = 'G:\Test_stgin\Farm_new\amark_sgtin.txt'
$repack = 'G:\Test_stgin\Farm_new\ITOG.txt'
$out    = 'G:\Test_stgin\Farm_new\out.txt'
$reader = [io.streamreader]::new($sgtin)
$ht = @{}
while ($reader.peek() -ne -1) {
    $str = $reader.readline()
    if ($str -match '\b(11|28)\b;?$'){
        $ht.add($str.substring(0,$str.indexof(';')),'f')
    }
}
$reader.close()

$reader = [io.streamreader]::new($repack)
$writer = [io.streamwriter]::new($out)
while ($reader.peek() -ne -1) {
    $str = $reader.readline()
    if ($ht[$str.substring(0,$str.indexof(';'))]){
        $s = $str -split ';'
        $writer.writeline($s[0] + ';' + $s[2])
    }
}
$reader.close()
$writer.close()
- должен быть самый шустрый вариант (нужны реальные, большие файлы, мне проверить нечем)... хоть и с отбором по шаблону '11|28'

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:37, 12-01-2024 | #12

Название темы: Упростить скрипт