Показать полную графическую версию : [решено] Замена символа в строках имеющих определенное начало
Добрый день,
Есть файл в котором несколько раз встречаются строки начало которых: "НазначениеПлатежа=", нужно в идущих далее данных заменить знак "=" на какой-то другой, например на ":", но только в этой строке, естественно.
Т. е. изначальная строка:
НазначениеПлатежа=Оплата на сумму=10 рублей.
Должна получить вид:
НазначениеПлатежа=Оплата на сумму:10 рублей.
Не стоит это делать батником.
TRaMeLL, нужен образец файла (нужно знать кодировку, наличие BOM, вид концов строк). Упакуйте его в архив и приложите к сообщению.
TRaMeLL, вообще, по-хорошему, нужно обработку импорта в 1С править, дабы она не спотыкалась на втором знаке равенства в строке.
Попробуйте так (на WSH):
Option Explicit
Dim strSourceFile
Dim objFSO
Dim strContent
If WScript.Arguments.Count = 1 Then
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strSourceFile = objFSO.GetAbsolutePathName(WScript.Arguments.Item(0))
If objFSO.FileExists(strSourceFile) Then
With objFSO.OpenTextFile(strSourceFile)
strContent = .ReadAll()
.Close
End With
With WScript.CreateObject("VBScript.RegExp")
.Pattern = "(^НазначениеПлатежа=.+?)=(.+$)"
.Global = True
.MultiLine = True
If .Test(strContent) Then
strContent = .Replace(strContent, "$1:$2")
objFSO.CopyFile strSourceFile, strSourceFile & ".bak", True
With objFSO.CreateTextFile(strSourceFile, True)
.Write strContent
.Close
End With
Else
WScript.Echo "Nothing found."
End If
End With
Else
WScript.Echo "Can't find source file [" & strSourceFile & "]."
WScript.Quit 2
End If
Set objFSO = Nothing
Else
WScript.Echo "Usage: cscript.exe //nologo """ & WScript.ScriptName & """ <Source file>"
WScript.Quit 1
End If
WScript.Quit 0
Путь к исходному файлу указывается аргументом скрипта (также можно просто перетащить исходный файл на скрипт/ярлык на скрипт в Проводнике). Делать специальную проверку, что имя переданного файла имеет строго заданный вид «kl_to_1c.txt» — не стал (если нужно — сделаем).
Iska, говорит "Nothing found."
Хмм… Даже не знаю, что сказать:
https://i.imgur.com/Y66Xf2b.png
https://i.imgur.com/G8R351Z.png
На всякий случай — в какой кодировке сохранили скрипт?
На всякий случай — в какой кодировке сохранили скрипт? »
Ага, оно самое, в UTF-8 оказалось. Всё работает, спасибо огромное, снова выручили.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.