Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт для удаления нужных слов в ini файле

Ответить
Настройки темы
[решено] Скрипт для удаления нужных слов в ini файле

Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


Подскажите скрипт который удалит нужные мне заведомо известные слова из ini файла и больше ничего в нем не тронет.

Отправлено: 07:45, 08-04-2009

 

Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Если ini файл стандартный, то:
Код: Выделить весь код
IniDelete ( "filename", "section", "key" )
Стандартный ini файл имеет вид:
[НазваниеРаздела]
Ключ=Значение

Если, что то другое, то приведите пример структуры вашего файла.

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:32, 08-04-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


proxy, мне нужно отредактировать файл oeminfo.ini, в нем находится информация об обнавлениях винды. Вот не все слова мне там нужны. Файл выложить могу только вечером. Но суть такая что нужно чтобы скрипт нашел в этом файле заранее прописанные мною слова и удалил их. Если слов нет или файла не нашел то ничего пусть не делает и завершит свою работу

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 08:56, 08-04-2009 | #3


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#include <File.au3>
_ReplaceStringInFile($szFileName, $szSearchString, $szReplaceString, $fCaseness = 0, $fOccurance = 1)
ооооо....да он имееет обычную структуру, IniDelete очень подойдет.

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:12, 08-04-2009 | #4


Аватара для Pozia

Ветеран


Сообщения: 2756
Благодарности: 211

Профиль | Отправить PM | Цитировать


proxy, поясните как пользоваться вашей командой. Если неизвестна в какой строке находится слово все равно найдет и удалит?

-------
Жизни вглядись в глаза: Это то, что ты всегда искал? Это то, что ты всегда хотел? Да или нет?


Отправлено: 09:22, 08-04-2009 | #5


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата Pozia:
Если неизвестна в какой строке находится слово все равно найдет и удалит? »
вернее - всеравно найдет и заменит.
К примеру можно заменять на пустую строку = ''

Русская справка AutoIt > Указатель библиотечных функций > Файлы > _ReplaceStringInFile
или
Справка по UDF > File Management > _ReplaceStringInFile
(эта справка "идет" в комплекте с компилятором, находится в корне папки установки AutoIt)

Цитата:
#Include <File.au3>
_ReplaceStringInFile($szFileName, $szSearchString, $szReplaceString[, $fCaseness = 0[, $fOccurance = 1]])

$szFileName - полный адрес файла
$szSearchString - искомая строка
$szReplaceString - заменяющая строка
$fCaseness 0 = не чувствительно к регистру (по умолчанию), 1 = чувствительно к регистру
$fOccurance 0 = заменять только первое найденное совпадение, 1 = заменять все найденные совпадение (по умолчанию)

и т.д. по справке......

Но для файла oeminfo.ini очень подойдет IniDelete, так как она представляет собой обычный ini файл.
Русская справка AutoIt > Указатель функций > Файловая система > Управление файлами инициализации > IniDelete
или
на английском

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:59, 08-04-2009 | #6


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


вариант через RegExp, строка не должна быть первой или последней:
Код: Выделить весь код
$sFile = "c:\Work.AU3\oem\oeminfo.ini"
$sLine = 'Line1="Телефоны службы технической поддержки:"'

$sText = StringRegExpReplace(FileRead($sFile),"(?i)\n\Q"& $sLine &"\E\r","")
FileDelete($sFile)
FileWrite($sFile, $sText)
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:20, 08-04-2009 | #7


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата:
строка не должна быть первой или последней:
тогда уж так:

Код: Выделить весь код
$sFile = "c:\Work.AU3\oem\oeminfo.ini"
$sLine = 'Line1="Телефоны службы технической поддержки:"'

$sText = FileRead($sFile)

If StringLeft($sText, 2) <> @CRLF Then $sText = @CRLF & $sText
If StringRight($sText, 2) <> @CRLF Then $sText &= @CRLF

$sText = StringRegExpReplace($sText, "(?i)\r\n" & $sLine & "\r\n", "")

If StringLeft($sText, 2) == @CRLF Then $sText = StringTrimLeft($sText, 2)
If StringRight($sText, 2) == @CRLF Then $sText = StringTrimRight($sText, 2)

FileDelete($sFile)
FileWrite($sFile, $sText)

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:53, 08-04-2009 | #8


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата proxy:
тогда уж так »
а надо ли усложнять?.. первой она не может быть (имя секции), последней маловероятно - оставлять "висячие строки" без завершающего CRLF как-то не принято, тем более в системных файлах... кста, твой вариант "слепит" предыдущую и последующую строки (между ними удалены все разделители) + не учтены возможные спецсимволы движка RegExp в искомой строке...
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:16, 08-04-2009 | #9


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


Цитата:
а надо ли усложнять?
в данном случае то же самое, что и у тебя, только строка может быть и первой и самой последней.

Цитата:
первой она не может быть (имя секции)
и структура файла, даже ini может быть не стандартная...это ж только пример ..)

Цитата:
последней маловероятно - оставлять "висячие строки" без завершающего CRLF как-то не принято, тем более в системных файлах
...не совсем понял, по идее все что добавил вручную, то и удалится...

Цитата:
кста, твой вариант "слепит" предыдущую и последующую строки (между ними удалены все разделители)
где удалются? ...если конечно не добавил уменьшение жадности в паттерн....но на тестах работало приавильно ))

Цитата:
не учтены возможные спецсимволы движка RegExp в искомой строке
на то он и пример, а не конечная UDF )))) не совсем разобрался в переводе, это делает: \Q...\E ?
или только вручную, меня всякие \ на \\ и т.д.?

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:22, 08-04-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт для удаления нужных слов в ini файле

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
VBS/WSH/JS - [решено] Скрипт для удаления старых файлов и папок из определенной папки avfiga Скриптовые языки администрирования Windows 71 07-01-2023 18:50
CMD/BAT - [решено] Помогите найти скрипт для удаленного удаления програм magwolf Скриптовые языки администрирования Windows 20 01-02-2016 23:35
Система - Что у Вас в файле Finish.ini для GUI интегратора? wolkow70 Наборы обновлений для Windows XP/2003/Windows 7 13 15-01-2011 02:07
Любой язык - нужен скрипт для удаления всех файлов кроме нужных для запуска Windows XP Dark Ange1 Скриптовые языки администрирования Windows 11 07-03-2010 13:34
Функция PHP для удаления не нужных символов darksmoke Вебмастеру 3 01-04-2008 01:18




 
Переход