Теперь стандартный вопрос:
Что уже сделано? И что не получается?
Хакер писал(а):А что такое, кстати, vbs?
По моим сведениям так называют сокращённо этот сайт.
keks-n писал(а):А так не подойдёт?
новый_текст_ini= Replace (текст_твоего_ini,"параметр=старое_значение","параметр=новое_значение")
Потом сохраняешь новый текст ini.
Sebas писал(а):Если честно, то это просто бред. Для чёго такая функциональность? И на сколько она "устойчива"?
не обязательно же если ini - значит в текстовом режиме
Creat0R писал(а):...но мне в принципе не важно какими именно средствами, пусть даже будет запускаться какой-то модуль\класс (извените за невежество, просто я понятия не имею что требуется запускать) самим скриптом VBS, и тот модуль\класс уже будет делать что нужно...
Dim a()
Dim b()
x = 0: y = 0
'сначала проверяем кол-во строк
Open "c:\options.ini" For Input As #1
Do Until EOF(1)
'считаем строки
x = x + 1
Line Input #1, tmpString
'считаем параметры
If Left$(tmpString, 1) <> "#" Then y = y + 1
Loop
Close #1
'изменяем массивы
ReDim a(x), b(y, 2)
x = 0: y = 1
'загружаем данные в массив
Open "c:\options.ini" For Input As #1
Do Until EOF(1)
x = x + 1
Line Input #1, a(x)
'пишем параметры в массив b
If Left$(a(x), 1) <> "#" Then
b(y, 1) = a(x)
b(y, 2) = x
y = y + 1
End If
Loop
Close #1
'Дальше всё зависит от твоей фантазии
Function ChangeIniVal(inpText, secname, paramname, newval)
Dim regexp As New regexp
regexp.MultiLine = True
regexp.Pattern = "(\[" + secname + "\]((.)*\r\n)*)(\b" + paramname + "\b\40*=\40*)(\w+)"
ChangeIniVal = regexp.Replace(inpText, "$1$4" & newval)
If Not regexp.Test(ChangeIniVal) Then
regexp.Pattern = "(\[" + secname + "\])"
ChangeIniVal = regexp.Replace(inpText, "$1" + vbNewLine & paramname & "=" & newval)
End If
End Function
Сейчас этот форум просматривают: Yandex-бот и гости: 60