|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Найти и заменить в текстовом файле. Как? |
|
||||
|
|
[решено] Найти и заменить в текстовом файле. Как?
|
|
Ветеран Сообщения: 2756 |
Есть текстовый файл 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 | |
|