Что нового

Как удалить параметр в ini-файле по маске?

hexin

Новичок
Сообщения
32
Репутация
0
Подскажите пожалуйста можно ли вообще удалить параметр в ini-файле по маске?
Например имеем параметр полное имя которого нам не известно, но извесно только его некоторая часть имени, например первая половина его имени нам известна, вторая берется из рандома.
Вот как удалить такой параметр?
Да можно удалить всю секцию и удалится и параметр, но как удалить именно один параметр не удаляя всю секцию?

Код:
#include <WinAPIFiles.au3>
$Data1 = "www"
$Data2 = Random(0,1000,1)
$sIniFile = = @ScriptDir & '\test.ini'
IniWrite($sIniFile, 'Section', $Data1&$Data2, "ok")
 
Последнее редактирование:

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Код:
$sSectionName='Section'
$sKey='www'
$sFile='C:\Name.ini'
$sText=FileRead($sFile)
$aSection=StringRegExp($sText,'(?mi)^\Q['&$sSectionName&']\E[\r\n]+(?:[^[\r\n].*(?:[\r\n]+|$))*',1)
If IsArray($aSection)Then
  $sSection=$aSection[0]
  $sSectionNew=StringRegExpReplace($sSection,'(?mi)^'&$sKey&'\d+=.*$','')
  $sText=StringReplace($sText,$sSection,$sSectionNew,1)
  $hFile=FileOpen($sFile,32+2)
  FileWrite($hFile,$sText)
  FileClose($hFile)
EndIf
 
Последнее редактирование:
Автор
H

hexin

Новичок
Сообщения
32
Репутация
0
Andrey_A, спасибо, я конечно думал что это как то можно сделать имено через iniwrite или inidelete.

И второй вопрос.
Работая с ini файлом я обнаружил что в качестве значения(именно значения, а не параметра!) не может быть знак "=" то есть всё что после этого знака не читается, и тогда я понял что ини файл это капризная вещь.
Вот и хотел бы у вас спросить, какие ещё подводные камни имеет ини файл?
Ну например какую максимальную длину может хранить значение? в сколько символов?
 

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
И второй вопрос
INI файлы имеют свои достатки и недостатки, можно для себя создать свои функции чтения/записи или посмотреть UDF: _Setting.au3, IniString.au3, IniVirtualSPE.au3, IniVirtual.au3
Самое простое и работающее почти без ограничений, когда читается весь файл, а потом с помощью регулярных выражений ищется нужное: секция(и), ключ(и), значение(я)... (главное подобрать быструю и правильную регулярку)
 
Верх