PDA

Показать полную графическую версию : [решено] Заменить строки в текстовом файле


aos
10-02-2012, 13:16
Доброго времени суток! Есть такая задача: существует некий текстовый документ (card.txt) со следующим содержанием (кол-во строк и содержание меняется)
1045;196,66
1046;301,60
1047;344,45
1048;212,70
1050;-31,40
1052;212,40
требуется, сначала заменить запятые на точки, потом точку с запятой на запятые. После чего проверить, если после запятой значение положительное то вместо него поставить ноль, если отрицательное то просто убрать минус перед значением.

Реально ли такое сделать?

megaloman
10-02-2012, 14:02
@Echo On
Set In=card.txt
Set InTmp=%In%.Tmp

SetLocal EnableExtensions
SetLocal EnableDelayedExpansion

Move /Y "%In%" "%InTmp%" >Nul

If %ErrorLevel% EQU 0 (
FOR /F "usebackq tokens=1,2,3 delims=;," %%a IN ("%InTmp%") DO (
If %%b GEQ 0 Echo %%a,0.%%c>>"%In%"
If %%b LSS 0 Set /A bb=-%%b & Echo %%a,!bb!.%%c>>"%In%"
)
Del "%InTmp%" >Nul
)

aos
10-02-2012, 14:24
Почти так, он меняет положительное значение на ноль но проблемма в том, что это суммы и они с копейками, то есть
Было
1045;196,66
1046;301,60
1047;344,45
1048;212,70
1050;-31,40
1052;212,40

После выполнения скрипта
1046,0.60
1047,0.45
1048,0.70
1050,31.40
1052,0.40

Как хотелось бы

1046,0
1047,0
1048,0
1050,31.40
1052,0

Заранее огромное спасибо!

aos
10-02-2012, 14:45
Все разобрался, огромное спасибо!!!




© OSzone.net 2001-2012