|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Поиск и замена текста в файле |
|
[решено] Поиск и замена текста в файле
|
Ветеран Сообщения: 753 |
Профиль | Отправить PM | Цитировать
Приветствую Вас !
Прочитал несколько похожих тем, но решения так и не нашёл (или не понял). Есть файл по пути (C:\Documents and Settings\Пользователь\Мои документы\Default.rdp), тоесть настройки RDP. Мне нужно найти в нём, к примеру строку desktopwidth:i:1280 и земенить её на desktopwidth:i:1024. Игрался с командами StringRegExp и StringReplace, что-то ничего не выходит-непойму как сохранить найденный и изменённый desktopwidth:i:1024. Заранее спс. |
|
------- Отправлено: 11:36, 16-03-2011 |
Ветеран Сообщения: 20111
|
Профиль | Отправить PM | Цитировать Цитата TERMINAL:
|
|
------- Отправлено: 12:07, 16-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать TERMINAL,
Вы бы пример Вашего файла Default.rdp привели. |
Отправлено: 12:19, 16-03-2011 | #3 |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать yurfed, Тоже не срабатывает, остаются старые параметры, у меня такое впечатление что отсутствует команда записи...
madmasles, прикрепил к шапке... |
------- Отправлено: 12:28, 16-03-2011 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать TERMINAL, если Вы можете гарантировать наличие именно этой строки в файле, то достаточно простого:
Если строка может отсутствовать, или вместо «desktopwidth:i:1280» может быть, например, «desktopwidth:i:600», а добавление или замена всё равно требуются, то код надо будет делать иным. |
|
Отправлено: 14:30, 16-03-2011 | #5 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать TERMINAL,
Попробуйте так: $sReplaseString = 'full address' $sNew = '127.0.0.0' $sFile = @ScriptDir & '\Default.rdp' $iEncoding = FileGetEncoding($sFile) $hFile = FileOpen($sFile, $iEncoding) $sText = FileRead($hFile) FileClose($hFile) $sSearch = StringRegExpReplace($sText, '(?s).*?' & $sReplaseString & '(?::i:|:s:)(.*?)\r\n?.*', '\1') ConsoleWrite($sSearch & @CR) $sText = StringReplace($sText, $sSearch, $sNew) $hFile = FileOpen($sFile, $iEncoding + 2) FileWrite($sFile, $sText) FileClose($hFile) |
Отправлено: 15:31, 16-03-2011 | #6 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать TERMINAL,
Или так: #include <GUIConstantsEx.au3> $j = 0 $sFile = @ScriptDir & '\Default.rdp' If Not FileExists($sFile) Then MsgBox(16, 'Error', 'Error') Exit EndIf $iEncoding = FileGetEncoding($sFile) $hFile = FileOpen($sFile, $iEncoding) $sText = FileRead($hFile) FileClose($hFile) $aTemp = StringSplit(StringStripCR($sText), @LF) Dim $aText[$aTemp[0] + 1][4] For $i = 1 To $aTemp[0] If $aTemp[$i] Then $j += 1 $aText[$i][1] = StringRegExpReplace($aTemp[$i], '^(.*?):.*', '\1') $aText[$i][2] = StringRegExpReplace($aTemp[$i], $aText[$i][1] & '(:.*?:).*', '\1') $aText[$i][3] = StringRegExpReplace($aTemp[$i], $aText[$i][1] & $aText[$i][2] & '(.*?)\z', '\1') EndIf Next ReDim $aText[$j + 1][4] $aText[0][0] = $j $aTemp = 0 $sText = '' $j = 0 $hGui = GUICreate('Редактор Default.rdp', 260, 30 + $aText[0][0] * 15) For $i = 1 To $aText[0][0] GUICtrlCreateLabel($aText[$i][1], 10, 5 + ($i - 1) * 15, 130, 14) GUICtrlSetFont(-1, 7) $aText[$i][0] = GUICtrlCreateInput($aText[$i][3], 150, 5 + ($i - 1) * 15, 100, 14) GUICtrlSetFont(-1, 7) Next $nButton = GUICtrlCreateButton('Сохранить', 80, 7 + $aText[0][0] * 15, 100, 20) GUICtrlSetState(-1, $GUI_FOCUS) GUISetState() While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $nButton $sText = '' For $i = 1 To $aText[0][0] $sText &= $aText[$i][1] & $aText[$i][2] & GUICtrlRead($aText[$i][0]) & @CRLF Next $hFile = FileOpen($sFile, $iEncoding + 2) FileWrite($hFile, $sText) FileClose($hFile) EndSwitch WEnd |
Отправлено: 17:49, 16-03-2011 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск и замена текста | ajakzs | Скриптовые языки администрирования Windows | 18 | 08-08-2013 16:10 | |
CMD/BAT - [решено] Поиск, остановка процесса, поиск и замена файлов на разных дисках | 4zz | Скриптовые языки администрирования Windows | 2 | 21-02-2011 16:07 | |
C/C++ - [решено] Поиск и замена текста | Simpler | Программирование и базы данных | 15 | 01-12-2010 16:03 | |
C/C++ - Поиск текста в файлах | student_po | Программирование и базы данных | 6 | 04-09-2009 23:33 | |
Офис и Текст - Замена текста | Котяра | Программное обеспечение Windows | 1 | 29-09-2008 13:51 |
|