|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Найти и заменить в текстовом файле. Как? |
|
|
[решено] Найти и заменить в текстовом файле. Как?
|
Ветеран Сообщения: 2756 |
Профиль | Отправить PM | Цитировать Есть текстовый файл 1.txt. Мне нужно найти в нем определенной слово и заменить его на имя компьютера с которого производится запуск скрипта, и после этого создать текстовый файл 2.txt такой же по содержанию но с измененным словом. Как это сделать?
|
|
------- Отправлено: 18:55, 13-01-2010 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:21, 13-01-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать madmasles, задача несколько усложнилось. Имеется такой кусок кода:
... <MenuMacro UID="ID_Ai_propch"> <Macro type="Modify"> <Revision MajorVersion="16" MinorVersion="2" UserVersion="0" /> <ModifiedRev MajorVersion="16" MinorVersion="2" UserVersion="0" /> <Name xlate="true" UID="ACAD_334">Properties</Name> <Command>^C^C_properties </Command> <HelpString xlate="true" UID="ACAD_1440">Controls properties of existing objects: PROPERTIES</HelpString> <SmallImage Name="RCDATA_16_MODIFY" /> <LargeImage Name="RCDATA_16_MODIFY" /> </Macro> </MenuMacro> ... но не могу сообразить как скрипт написать. помогите пожалуйста |
------- Отправлено: 00:56, 27-02-2010 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Pozia,
У меня так получилось: #include <file.au3> $sPathOld = "test.txt" ; файл-источник $sPathNew = "New.txt" ; файл-результат $slovoOld = "properties" ; это слово меняем $slovoNew = "dim_edit" ; на это слово $sLeft = "<Command>^C^C" ; это слово есть слева $sRight = " </Command>" ; это слово есть справа Dim $aFile _FileReadToArray($sPathOld, $aFile) For $i = 1 To UBound($aFile) - 1 If StringInStr($aFile[$i], $sLeft) > 0 And StringInStr($aFile[$i], $sRight) > 0 _ And StringInStr($aFile[$i], $slovoOld) > 0 Then $aFile[$i] = StringReplace($aFile[$i], $slovoOld, $slovoNew) EndIf Next _FileWriteFromArray($sPathNew, $aFile, 1) |
Отправлено: 07:16, 27-02-2010 | #4 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать madmasles, вы не учли:
Цитата Pozia:
|
||
------- Отправлено: 10:15, 27-02-2010 | #5 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Pozia,
Попробуйте так: #include <file.au3> $sPathOld = "test.txt" ; файл-источник $sPathNew = "New.txt" ; файл-результат $slovoOld = "properties" ; это слово меняем $slovoNew = "dim_edit" ; на это слово $sString = '<Name xlate="true" UID="ACAD_334">Properties</Name>' ; это строка сверху Dim $aFile _FileReadToArray($sPathOld, $aFile) For $i = 1 To UBound($aFile) - 1 If StringInStr($aFile[$i], $sString) > 0 Then $aFile[$i + 1] = StringReplace($aFile[$i + 1], $slovoOld, $slovoNew) EndIf Next _FileWriteFromArray($sPathNew, $aFile, 1) |
Отправлено: 10:27, 27-02-2010 | #6 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать madmasles, в яблочко! Спасибо огромное за оперативность!
|
------- Отправлено: 10:43, 27-02-2010 | #7 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать madmasles, прошу еще помощи маленькой. я Вашим скрипт в моем коде меняю две строки. Сча не могу сообразить как эти два скрипта в один объединить. Первый что вы привели, второй:
$sPathOld = 'acad.CUI' $sPathNew = 'acad2.CUI' $slovo1 = " <PartialMenuFile>custom.cui</PartialMenuFile>" $slovo2 = " <PartialMenuFile>custom.cui</PartialMenuFile> <PartialMenuFile>Pozia_Tools\pozia.cui</PartialMenuFile>" $sTest = FileRead($sPathOld) $sTest = StringReplace($sTest, $slovo1, $slovo2) FileWrite($sPathNew, $sTest) #include <file.au3> $sPath1 = 'acad.CUI' $sPath2 = 'acad2.CUI' $sPath3 = 'acad3.CUI' $slovo1 = " <PartialMenuFile>custom.cui</PartialMenuFile>" $slovo2 = " <PartialMenuFile>custom.cui</PartialMenuFile> <PartialMenuFile>Pozia_Tools\pozia.cui</PartialMenuFile>" $slovo3 = "properties" $slovo4 = "dim_edit" $sString = '<Name xlate="true" UID="ACAD_334">Properties</Name>' $sTest = FileRead($sPath1) $sTest = StringReplace($sTest, $slovo1, $slovo2) FileWrite($sPath2, $sTest) Dim $aFile _FileReadToArray($sPath2, $aFile) For $i = 1 To UBound($aFile) - 1 If StringInStr($aFile[$i], $sString) > 0 Then $aFile[$i + 1] = StringReplace($aFile[$i + 1], $slovo3, $slovo4) EndIf Next _FileWriteFromArray($sPath3, $aFile, 1) FileDelete($sPath2) |
------- Отправлено: 11:04, 27-02-2010 | #8 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать Pozia,
Попробуйте так: #include <file.au3> $sPath1 = 'acad.CUI' $sPath3 = 'acad3.CUI' $slovo1 = " <PartialMenuFile>custom.cui</PartialMenuFile>" $slovo2 = " <PartialMenuFile>custom.cui</PartialMenuFile> <PartialMenuFile>Pozia_Tools\pozia.cui</PartialMenuFile>" $slovo3 = "properties" $slovo4 = "dim_edit" $sString = '<Name xlate="true" UID="ACAD_334">Properties</Name>' Dim $aFile _FileReadToArray($sPath1, $aFile) For $i = 1 To UBound($aFile) - 1 If StringInStr($aFile[$i], $slovo1) > 0 Then $aFile[$i] = StringReplace($aFile[$i], $slovo1, $slovo2) EndIf If StringInStr($aFile[$i], $sString) > 0 Then $aFile[$i + 1] = StringReplace($aFile[$i + 1], $slovo3, $slovo4) EndIf Next _FileWriteFromArray($sPath3, $aFile, 1) |
Отправлено: 11:51, 27-02-2010 | #9 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать madmasles, еще маленький вопросик. не могу сообразить как дать определенному файлу имя текущей учетной записи. Подскажите пожалуйста.
|
------- Отправлено: 17:43, 05-03-2010 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? | VladZombie | Скриптовые языки администрирования Windows | 70 | 08-09-2020 13:28 | |
CMD/BAT - [решено] Передача исполняемому файлу параметров, перечисленных в текстовом файле | Vadikan | Скриптовые языки администрирования Windows | 6 | 19-04-2017 02:30 | |
CMD/BAT - [решено] Отделить последние цифры из строчки в текстовом файле | ZeroCrash | Скриптовые языки администрирования Windows | 4 | 29-06-2009 16:03 | |
[решено] Как удалить строки в текстовом файле при отсутсвии файла в опрелеленном месте? | Pozia | AutoIt | 23 | 14-05-2009 21:41 | |
[решено] Как заменить строку [27] в файле? | semiono | AutoIt | 8 | 05-04-2009 02:56 |
|