|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Замена текста с помощью VBScript при условии?! |
|
VBS/WSH/JS - Замена текста с помощью VBScript при условии?!
|
Новый участник Сообщения: 13 |
Профиль | Отправить PM | Цитировать Здравствуйте, пытаюсь реализовать скрипт который будет находить нужное мне значение например 1134 и заменять на 1401 при условии что 1134 должно находится между dota_camera_pitch_max и dota_camera_distance.
Const ForReading = 1 Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\1111\client.dll", ForReading) strText = objFile.ReadAll objFile.Close strNewText = Replace(strText, "1134", "1401") Set objFile = objFSO.OpenTextFile("C:\1111\client.dll", ForWriting) objFile.WriteLine strNewText objFile.Close |
|
Отправлено: 07:53, 10-08-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Hraniti, лучше не пытайтесь работать таким кодом с бинарными файлами, коими являются библиотеки.
Как надо:
|
Отправлено: 11:04, 10-08-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Hraniti, Если тупо решать задачу как поставлено (Iska наверняка прав!) то вместо Вашего реплэйса
Если 1134 между указанными строками встречается многократно, то заменятся все.
|
------- Отправлено: 11:08, 10-08-2018 | #3 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Iska, Я понимаю что не надо, но давайте попробуем реализовать как я прошу попробовать. Ну если есть возможность можете более детальней объяснить как сделать эту надобность.
|
Отправлено: 11:09, 10-08-2018 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Hraniti, упаковываете Вашу библиотеку в архив, каковой прикладываете к сообщению. Если сюда не помещается — выкладываете на DropMeFiles.
|
|
Отправлено: 11:14, 10-08-2018 | #5 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать megaloman,
Const ForReading = 1 Const ForWriting = 2 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\bin\win64\client.dll", ForReading) lstrText = LCase(strText) marg1 = InStr(1, lstrText, "dota_camera_pitch_max") marg2 = InStr(1, lstrText, "dota_camera_distance") repstr = Mid(strText, marg1, marg2 - marg1) strNewText = Replace(strText, repstr, Replace(repstr, "1134", "1401")) Set objFile = objFSO.OpenTextFile("C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\game\dota\bin\win64\client.dll", ForWriting) objFile.WriteLine strNewText objFile.Close |
Отправлено: 12:02, 10-08-2018 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Option Explicit Const strPath2Client = "C:\Мои проекты\0180\client.dll" Dim strContent Dim objRegExp With WScript.CreateObject("Scripting.FileSystemObject") If .FileExists(strPath2Client) Then With .OpenTextFile(strPath2Client) strContent = .ReadAll() .Close End With Set objRegExp = WScript.CreateObject("VBScript.RegExp") objRegExp.Pattern = "(dota_camera_pitch_max\x00{3})1134(\x00{4}dota_camera_distance)" If objRegExp.Test(strContent) Then With .CreateTextFile(strPath2Client, True) .Write objRegExp.Replace(strContent, "$11401$2") .Close End With Else WScript.Echo "Can't find pattern [" & Replace(objRegExp.Pattern, Chr(0), " ") & "] in source file [" & strPath2Client & "]." WScript.Quit 2 End If Set objRegExp = Nothing Else WScript.Echo "Can't find source file [" & strPath2Client & "]." WScript.Quit 1 End If End With WScript.Quit 0 |
Отправлено: 12:42, 10-08-2018 | #7 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Iska, Выдает ошибку и данные не меняются. скриншот прилагаю.
|
Отправлено: 11:29, 13-08-2018 | #8 |
Новый участник Сообщения: 13
|
Профиль | Отправить PM | Цитировать Вот собственно сам файл https://yadi.sk/d/q-nkzoD_3a692L
|
Отправлено: 11:30, 13-08-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Hraniti:
|
|
Отправлено: 13:21, 13-08-2018 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Замена текста с помощью VBScript. | Sally88 | Скриптовые языки администрирования Windows | 19 | 14-05-2018 16:02 | |
VBS/WSH/JS - [решено] Замена символов в перменных VBScript | ymo_4@vk | Скриптовые языки администрирования Windows | 8 | 05-12-2017 18:17 | |
VBS/WSH/JS - [решено] Как изменить конкретную строку в текстовом файле с помощью Vbscript | neo21 | Скриптовые языки администрирования Windows | 8 | 30-10-2011 15:47 | |
[решено] остановка функции при условии. | yukuru | AutoIt | 3 | 26-07-2011 00:01 | |
VBS/WSH/JS - [решено] Как создать файл в кодировке UTF-8 с помощью VBScript? | Zeron | Скриптовые языки администрирования Windows | 2 | 30-05-2011 03:50 |
|