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

Показать сообщение отдельно

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Powershell, попробуйте
Код: Выделить весь код
# Импорт
$prod = (gc 'C:\temp\products.txt' -raw) -split '\$\$\$REPLACEPRODUCT|\$\$\$REPLACEDOPCODES'
$prod33 = (gc 'C:\temp\PRODUCTS33.TXT' -raw) -split '\$\$\$REPLACEQUANTITYWITHOUTSALE|\$\$\$ADDBARCODES'

# Исходный файл в CSV
$c = (($prod1 = $prod[1] -split "`n" -match '\w')[0] -replace '[^;]').ToCharArray().count + 1
$headers = 1..$c
$prodCsv = $prod1 |ConvertFrom-Csv -Delimiter ';' -Header $headers

# Конечный файл в CSV + остальные части
$prod330 = $prod33[0] -split "`n" -match "\S"
$c = (($prod331 = $prod33[1] -split "`n" -match '\w')[0] -replace '[^;]').ToCharArray().count + 1
$headers = 1..$c
$prod33Csv = $prod331 |ConvertFrom-Csv -Delimiter ';' -Header $headers
$prod332 = $prod33[2] -split "`n" -match "\S"

# Обработка
$prod33Csv |% {
    $item = $prodCsv |? 3 -eq $_.1
    $_.21 = $item.55 -replace 'ПОСТАВЩИК:|ПОСТУПИЛО НА СКЛАД:'
    if ($item.49 -match '^0') {$n = 1}
    elseif ($item.49 -match '^10') {$n = 2}
    elseif ($item.49 -match '^20') {$n = 3}
    $_.23 = $n
}

# Сборка конечного файла
$result = @()
$result += $prod330
$result += '$$$REPLACEQUANTITYWITHOUTSALE'
$result += ($prod33Csv |ConvertTo-Csv -Delimiter ';' -NoTypeInformation |select -skip 1) -replace '\";\"',';' -replace '^\"|\"$' -replace '\"+','"'
$result += '$$$ADDBARCODES'
$result += $prod332

# Сохранение
$result |out-file c:\temp\result.txt

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 23:34, 03-05-2025 | #2