Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] заменить строку в файле "autoit3dir=????\AutoIt3" - не INI формат! (http://forum.oszone.net/showthread.php?t=217875)

semiono 13-10-2011 16:06 1772519

заменить строку в файле "autoit3dir=????\AutoIt3" - не INI формат!
 
Нужно указать аргумент:
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 1772560

Извиняюсь, нашёл решение, какраз в том же 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)



Время: 00:05.

Время: 00:05.
© OSzone.net 2001-