Войти

Показать полную графическую версию : [решено] заменить строку в файле "autoit3dir=????\AutoIt3" - не INI формат!


semiono
13-10-2011, 16:06
Нужно указать аргумент:
autoit3dir=
Например: C:\zzz\AutoIt3


Файл расположен таким образом: (у кого есть можно посмотреть конкретно)
@ProgramFiles & "\AutoIt3\SciTE\Properties\au3.properties"

Создаётся при установке Wrapper если не ошибаюсь.

Я всё позабыл к сожалению, подобные задачи уже были в прошлом. Но хотелось бы лёгкое и простое решение.
Довольно часто такие вещи встречаются когда не INI формат и нету секции [Section]

И ещё вот вспомнил, в формате INF встречается наоборот, когда есть секция, но нет аргумента:
[Add.Reg]
HKLM,"Software\Classes\.flp",,0x00004000,"FLPFile"

а было бы удобно еслиб простой функцией как в INI это бы решалось...

semiono
13-10-2011, 16:53
Извиняюсь, нашёл решение, какраз в том же SciTE скрипте...
$sProperties = @ProgramFilesDir & '\AutoIt3\SciTE\Properties\au3.properties'
$sSession = @UserProfileDir & '\SciTE.session'

FileSetAttrib($sProperties, '-RASHNOT', 1)

_IniWriteProperty($sProperties, 'autoit3dir', @ProgramFilesDir & '\AutoIt3')

FileSetAttrib($sSession, '-RASHNOT', 1)

_IniWriteProperty($sSession, 'position.left', '0')
_IniWriteProperty($sSession, 'position.top', '0')
_IniWriteProperty($sSession, 'position.width', @DesktopWidth)
_IniWriteProperty($sSession, 'position.height', @DesktopHeight-52)
_IniWriteProperty($sSession, 'position.maximize', '0')

Func _IniWriteProperty($sIni, $sProperty, $sValue)
Local $sSection, $sContent, $hWrite

$sSection = 'Section'
$sContent = '[' & $sSection & ']' & @CRLF & FileRead($sIni)

$hWrite = FileOpen($sIni, 2)
FileWrite($hWrite, $sContent)
FileClose($hWrite)

IniWrite($sIni, $sSection, $sProperty, $sValue)
IniWrite($sIni, $sSection, $sProperty, $sValue)

$sContent = FileRead($sIni)

$hWrite = FileOpen($sIni, 2)
FileWrite($hWrite, StringRegExpReplace($sContent, '^\Q[' & $sSection & ']\E(\r\n)*', ''))
FileClose($hWrite)
EndFunc

ShellExecute(@ProgramFilesDir & "\AutoIt3\SciTE\SciTE.exe", $CmdLineRaw)




© OSzone.net 2001-2012