Показать полную графическую версию : [решено] Изменить значение параметра — Не INI файл!
Синтаксис обычный: параметр = значение, номер строки не известен.
Текущее значение неизвестно, и даже может быть пустым.
Например:
position.width=1152
position.height=816
Здесь видимо можно обрубить по знаку равенства "=" через StringRegExp(), но я не знаю как...
---
Я уже думал нашёл решение, просто переименовав файл, но проблемма оказалась в том,
что файл вдобавок не имеет секций []
semiono, ну добавь секцию руками, обработай как INI, потом снова удали секцию.
Можешь набросать как примерно? Потому что я с записью и удалением секции "нагорожу забор"!
Лучше посмотреть как это адекватно зделать.
Вот сам текст примерно такой
# SciTE session file
position.left=0
position.top=0
position.width=1152
position.height=816
position.maximize=1
mru.1.path=J:\[\Pebind\Alcohol\Patch\Script\Setup.au3
mru.2.path=H:\[\ENTRIES.au3
mru.3.path=C:\I\WinSxS\Process\New AutoIt v3 Script.au3
buffer.1.path=C:\I\WinSxS\Process\New AutoIt v3 Script.au3
buffer.1.position=46
buffer.1.current=1
А как можно секцию [test] вписать в начало файла или перед нужной строкой?
madmasles
13-08-2010, 00:42
semiono,
Можно так попробовать:$sStringW = 'position.width='
$sStringH = 'position.height='
$hFile = FileOpen (http://www.autoitscript.com/autoit3/docs/functions/FileOpen.htm)(@UserProfileDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@userprofiledir) & '\SciTE.session', 0)
$sText = FileRead (http://www.autoitscript.com/autoit3/docs/functions/FileRead.htm)($hFile)
FileClose (http://www.autoitscript.com/autoit3/docs/functions/FileClose.htm)($hFile)
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, '', $sText)
$sText = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($sText, $sStringW & '\d{3,4}', $sStringW & @DesktopWidth (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopwidth))
$sText = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($sText, $sStringH & '\d{3,4}', $sStringH & @DesktopHeight (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopheight))
MsgBox (http://www.autoitscript.com/autoit3/docs/functions/MsgBox.htm)(0, '', $sText)
$sPath = @ScriptDir & '\SciTE.session'; Scite.Session file path'
$sContent = '[Some Section]' & @CRLF & FileRead($sPath)
ConsoleWrite($sContent & @CRLF)
$hWrite = FileOpen($sPath, 2)
FileWrite($hWrite, $sContent)
FileClose($hWrite)
IniWrite($sPath, 'Some Section', 'position.width', @DesktopWidth)
IniWrite($sPath, 'Some Section', 'position.height', @DesktopHeight)
$hRead = FileOpen($sPath, 0)
FileReadLine($hRead)
$sContent = FileRead($hRead)
FileClose($hRead)
$hWrite = FileOpen($sPath, 2)
FileWrite($hWrite, $sContent)
FileClose($sContent)
kaster, работает правильно как бы, но такое наблюдение, что снизу файл начинает зачищаться.
То-есть файл становиться всё меньше с каждым запуском снизу и даже начинает затирать сами строки position.width=1152 position.height=816... странно!
madmasles, если начальные значения не соответствуют разрядности, то не работает. :)
То-есть 1111 > 1152 нормально! Но 111 > не станет 1152
semiono, не знаю. у меня ничего не зачищается. да и не должно по идее. возможно сам редактор привносит в этот файл изменения.
madmasles
13-08-2010, 01:16
semiono,
Как скрипт kaster`a, так и мой отрабатывает у меня как надо. Если Вы его запускаете из открытого окна SciTE, то он возвращает старые значения. Закройте окно SciTE и запустите скрипт правой кнопкой через Run Script.
если начальные значения не соответствуют разрядности »'\d{3,4}' значит любые 3 или 4 цифры подряд (от 000 до 9999). Можно для надежности поменять на '\d{1,4}' (0 - 9999). :)
Вот функция которую я когда то писал для обработки ключей в файлах *.properties:
#include (http://www.autoitscript.com/autoit3/docs/keywords.htm##include) <Array.au3>
_FilePropertyWrite("File.properties", "Scripts", "MyScript.au3|SomeScript1.au3|SomeScript2.au3|SomeScript3.au3")
$aProperty = _FilePropertyRead("File.properties", "Scripts", "", 1)
_ArrayDisplay (http://dundats.mvps.org/help/html/libfunctions/_arraydisplay.htm)($aProperty)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _FilePropertyRead($sFile, $sProperty, $sDefault = "", $iRetArr = 1)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $aFileRead = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)(StringStripCR (http://www.autoitscript.com/autoit3/docs/functions/StringStripCR.htm)(FileRead (http://www.autoitscript.com/autoit3/docs/functions/FileRead.htm)($sFile)), @LF (http://www.autoitscript.com/autoit3/docs/macros.htm#@lf))
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sRet, $sPattern = '(?i)^\s*\Q' & $sProperty & '\E\s*=\s*'
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aFileRead[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRegExp (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm)($aFileRead[$i], $sPattern) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$aFileRead[$i] = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aFileRead[$i], $sPattern, '')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRight (http://www.autoitscript.com/autoit3/docs/functions/StringRight.htm)($aFileRead[$i], 1) = "\" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$aFileRead[$i] = StringTrimRight (http://www.autoitscript.com/autoit3/docs/functions/StringTrimRight.htm)($aFileRead[$i], 1)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sRet &= StringStripWS (http://www.autoitscript.com/autoit3/docs/functions/StringStripWS.htm)($aFileRead[$i], 3)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $j = $i+1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aFileRead[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringInStr (http://www.autoitscript.com/autoit3/docs/functions/StringInStr.htm)($aFileRead[$j], "=") Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop) 2
ElseIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#ElseIf) StringLeft (http://www.autoitscript.com/autoit3/docs/functions/StringLeft.htm)(StringStripWS (http://www.autoitscript.com/autoit3/docs/functions/StringStripWS.htm)($aFileRead[$j], 1), 1) <> "#" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRight (http://www.autoitscript.com/autoit3/docs/functions/StringRight.htm)($aFileRead[$j], 1) = "\" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$aFileRead[$j] = StringTrimRight (http://www.autoitscript.com/autoit3/docs/functions/StringTrimRight.htm)($aFileRead[$j], 1)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sRet &= " " & StringStripWS (http://www.autoitscript.com/autoit3/docs/functions/StringStripWS.htm)($aFileRead[$j], 3)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sRet == "" Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sRet = $sDefault
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
$sRet = StringStripWS (http://www.autoitscript.com/autoit3/docs/functions/StringStripWS.htm)($sRet, 3)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iRetArr Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)($sRet, " ")
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) $sRet
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _FilePropertyWrite($sFile, $sProperty, $sValue, $iInsInLine = -1, $iPropsPerLine = 5)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $aFileRead = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)(StringStripCR (http://www.autoitscript.com/autoit3/docs/functions/StringStripCR.htm)(FileRead (http://www.autoitscript.com/autoit3/docs/functions/FileRead.htm)($sFile)), @LF (http://www.autoitscript.com/autoit3/docs/macros.htm#@lf))
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sPropPattern = '(?i)^\s*(\Q' & $sProperty & '\E)\s*=\s*.*'
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sKeyPattern = '^\s*([^=]+\s*=\s*|#)'
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $hFile, $sFileContent, $aValue, $sLine, $iPropFound = 0
$aValue = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)(StringReplace (http://www.autoitscript.com/autoit3/docs/functions/StringReplace.htm)($sValue, '\', ''), '|')
$sValue = ''
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aValue[0]
$sValue &= $aValue[$i]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $i < $aValue[0] Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $i = 1 Or (http://www.autoitscript.com/autoit3/docs/keywords.htm#Or) Mod (http://www.autoitscript.com/autoit3/docs/functions/Mod.htm)($i - 1, $iPropsPerLine) = 0 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sValue &= ' \' & @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) & @TAB (http://www.autoitscript.com/autoit3/docs/macros.htm#@tab)
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
$sValue &= ' '
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aFileRead[0]
$sLine = $aFileRead[$i]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRegExp (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm)($aFileRead[$i], $sPropPattern) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iInsInLine = -1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iPropFound = 1
$sLine = StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($aFileRead[$i], $sPropPattern, '\1=' & StringReplace (http://www.autoitscript.com/autoit3/docs/functions/StringReplace.htm)($sValue, '\', '\\'))
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $j = $i+1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aFileRead[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) StringRegExp (http://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm)($aFileRead[$j], $sKeyPattern) Or (http://www.autoitscript.com/autoit3/docs/keywords.htm#Or) $i >= $aFileRead[0] Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$i += 1
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iInsInLine <> -1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sFileContent &= $sLine
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $i < $aFileRead[0] Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sFileContent &= @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $iInsInLine <> -1 Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$aFileRead = StringSplit (http://www.autoitscript.com/autoit3/docs/functions/StringSplit.htm)(StringStripCR (http://www.autoitscript.com/autoit3/docs/functions/StringStripCR.htm)($sFileContent), @LF (http://www.autoitscript.com/autoit3/docs/macros.htm#@lf))
$sFileContent = ''
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aFileRead[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $i = $iInsInLine Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$iPropFound = 1
$sFileContent &= $sProperty & "=" & $sValue & @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) & $aFileRead[$i]
Else (http://www.autoitscript.com/autoit3/docs/keywords.htm#Else)
$sFileContent &= $aFileRead[$i]
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $i < $aFileRead[0] Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sFileContent &= @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $iPropFound Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) $sFileContent <> '' And (http://www.autoitscript.com/autoit3/docs/keywords.htm#And) StringRight (http://www.autoitscript.com/autoit3/docs/functions/StringRight.htm)($sFileContent, 2) <> @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sFileContent &= @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$sFileContent &= $sProperty & "=" & $sValue
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
$hFile = FileOpen (http://www.autoitscript.com/autoit3/docs/functions/FileOpen.htm)($sFile, 2)
FileWrite (http://www.autoitscript.com/autoit3/docs/functions/FileWrite.htm)($hFile, $sFileContent)
Return (http://www.autoitscript.com/autoit3/docs/keywords.htm#Return) FileClose (http://www.autoitscript.com/autoit3/docs/functions/FileClose.htm)($hFile)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
работает также с многострочными значениями (разделённые слешем «\»).
Добавил в пример выше функцию для записи, также поддерживает запись многострочного значения.
Вчера до ночи сидел, правда у меня сидение малопродуктивное, сейчас буду посмотреть.
Про SciTE верно, я сам подумал, что он может вносить изменения, ведь это его конфиг,
однако сразу же засомневался, так как я в основном кликом скрипт открывал.
Ещё одна идея есть о том, что я в папке профиля чудил, а на папки профиля сколько помню
в различных логах выводится, что файл защищён правами... нечто такое помню...
Но не будем об этом, пусть спишется как странный глюк непонятный ))
Ещё возможно, что я быстро файл открывал посмотреть, и якобы он не весь прописался,
такое тоже вероятно, но тогда получается, что скрипт слишком уж доооолго работает!
Ладно с этим понятно, раз уж всё разложили по полочкам буду доверять коду.
Только теперь не знаю что лучше, все три варианта, но Creat0R,
интригующе самый солидный скрипт! Ок!
Кстати, я уже говорил давно, жаль что такого простого среди функций нет.
А самое лучшее бы было из ini- функций как-то превратить, так как там именно под задачу заточенно,
возможно я ошибаюсь. И конечно возмутительно что FileWright пишет дополнение в конец файла,
кому такая наивность тут нужна! Эх autoit3.com (C) всё чаще разочароывает, так как идея скриптов
идея быстрого и простого создания скриптов... 8-)
Обновил функцию для записи, теперь можно указать номер строки куда будет записываться ключ, при этом ключ из старого местоположения удаляется. Т.е предотвращается дублирование записи.
madmasles, а ведь твой скрипт не изменяет файл! Чем же я сам запишу $sText, FileWright тупо добавит строку в файл.
Creat0R, я не знаю как твою функцию юзать, это для просвещённых. Вчастности, непонятно как указать нужное значение.
я не знаю как твою функцию юзать »
Я же показал пример:
_FilePropertyWrite("Scite.Session", "position.width", "666")
непонятно как указать нужное значение »
Ну это уже тебе решать, какое туда записывать значение :)
Внимание, работает код от kaster! Фрагменты # SciTE session file с низу.
buffer.1.path=C:\I\WinSxS\Process\New AutoIt v3 Script.au3
buffer.1.position=46
buffer.1.current=1
---->8
buffer.1.path=C:\I\WinSxS\Process\New AutoIt v3 Scr
--->8
buffe
---->8
Конфиг съедает сам себя :)
Ну это уже тебе решать, какое туда записывать значение »
Не какое, а куда. Вот сейчас понял.
Я уже думал нашёл решение, просто переименовав файл, но проблемма оказалась в том,
что файл вдобавок не имеет секций [] »
Вот немного изменённый пример Kaster'а (там у него кстати ошибка в FileClose($sContent) :) - возможно отсюда и проблема с затиранием строк):
$sPath = @ScriptDir (http://www.autoitscript.com/autoit3/docs/macros.htm#@scriptdir) & '\Scite.Session'
_IniWriteProperty($sPath, 'position.width', @DesktopWidth (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopwidth))
_IniWriteProperty($sPath, 'position.height', @DesktopHeight (http://www.autoitscript.com/autoit3/docs/macros.htm#@desktopheight))
Func (http://www.autoitscript.com/autoit3/docs/keywords.htm#Func) _IniWriteProperty($sIni, $sProperty, $sValue)
Local (http://www.autoitscript.com/autoit3/docs/keywords.htm#Local) $sSection, $sContent, $hWrite
$sSection = 'Section'
$sContent = '[' & $sSection & ']' & @CRLF (http://www.autoitscript.com/autoit3/docs/macros.htm#@crlf) & FileRead (http://www.autoitscript.com/autoit3/docs/functions/FileRead.htm)($sIni)
$hWrite = FileOpen (http://www.autoitscript.com/autoit3/docs/functions/FileOpen.htm)($sIni, 2)
FileWrite (http://www.autoitscript.com/autoit3/docs/functions/FileWrite.htm)($hWrite, $sContent)
FileClose (http://www.autoitscript.com/autoit3/docs/functions/FileClose.htm)($hWrite)
IniWrite (http://www.autoitscript.com/autoit3/docs/functions/IniWrite.htm)($sIni, $sSection, $sProperty, $sValue)
IniWrite (http://www.autoitscript.com/autoit3/docs/functions/IniWrite.htm)($sIni, $sSection, $sProperty, $sValue)
$sContent = FileRead (http://www.autoitscript.com/autoit3/docs/functions/FileRead.htm)($sIni)
$hWrite = FileOpen (http://www.autoitscript.com/autoit3/docs/functions/FileOpen.htm)($sIni, 2)
FileWrite (http://www.autoitscript.com/autoit3/docs/functions/FileWrite.htm)($hWrite, StringRegExpReplace (http://www.autoitscript.com/autoit3/docs/functions/StringRegExpReplace.htm)($sContent, '^\Q[' & $sSection & ']\E(\r\n)*', ''))
FileClose (http://www.autoitscript.com/autoit3/docs/functions/FileClose.htm)($hWrite)
EndFunc (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndFunc)
Вот это другое дело! Работает даже при буквенных значениях =zzzzzzzzzzzzzzzzzzzz любой длины!
И при пустом значении =
Ну для правильности добавим правильный путь $sPath = @UserProfileDir & '\SciTE.session'
Это же реальный SciTE.session конфиг, так что можете тоже пользоваться!
kaster, madmasles, Creat0R, спасиб!
:)
Работает даже при буквенных значениях =zzzzzzzzzzzzzzzzzzzz любой длины! »
В варианте с «_IniWriteProperty» в отличии от варианта с «_FilePropertyWrite» не любой длины, но думаю для тебя хватит ;)
$sPath = @UserProfileDir & '\SciTE.session'
_IniWriteProperty($sPath, 'position.left', '0')
_IniWriteProperty($sPath, 'position.top', '0')
_IniWriteProperty($sPath, 'position.width', @DesktopWidth)
_IniWriteProperty($sPath, 'position.height', @DesktopHeight-52)
_IniWriteProperty($sPath, 'position.maximize', '0')
Все параметры, заодно. :)
Creat0R, конечно хватит, 2048 максимум по-моему. :)
Но ты намекашь, что твой код интелектуальней. Надеюсь ошибок там нету из-за сложности функции?
Однако, там наверное лишнего много для этой задачи. Вообщем мне хватит пока то что есть :)
Creat0R, ну не знаю. у меня ведь ничего не съедалось. Да и потом, логика подсказывает, что закрытие неверного хендла всего лишь вернет 0. А после этой строки нет ничего, стало быть скрипт завершится и файл сам закроется.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.