|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Изменить значение параметра — Не INI файл! |
|
[решено] Изменить значение параметра — Не INI файл!
|
Ветеран Сообщения: 842 |
Синтаксис обычный: параметр = значение, номер строки не известен.
Текущее значение неизвестно, и даже может быть пустым. Например: position.width=1152 position.height=816 Здесь видимо можно обрубить по знаку равенства "=" через StringRegExp(), но я не знаю как... --- Я уже думал нашёл решение, просто переименовав файл, но проблемма оказалась в том, что файл вдобавок не имеет секций [] |
|
------- Отправлено: 00:06, 13-08-2010 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Вчера до ночи сидел, правда у меня сидение малопродуктивное, сейчас буду посмотреть.
Про SciTE верно, я сам подумал, что он может вносить изменения, ведь это его конфиг, однако сразу же засомневался, так как я в основном кликом скрипт открывал. Ещё одна идея есть о том, что я в папке профиля чудил, а на папки профиля сколько помню в различных логах выводится, что файл защищён правами... нечто такое помню... Но не будем об этом, пусть спишется как странный глюк непонятный )) Ещё возможно, что я быстро файл открывал посмотреть, и якобы он не весь прописался, такое тоже вероятно, но тогда получается, что скрипт слишком уж доооолго работает! Ладно с этим понятно, раз уж всё разложили по полочкам буду доверять коду. Только теперь не знаю что лучше, все три варианта, но Creat0R, интригующе самый солидный скрипт! Ок! Кстати, я уже говорил давно, жаль что такого простого среди функций нет. А самое лучшее бы было из ini- функций как-то превратить, так как там именно под задачу заточенно, возможно я ошибаюсь. И конечно возмутительно что FileWright пишет дополнение в конец файла, кому такая наивность тут нужна! Эх autoit3.com (C) всё чаще разочароывает, так как идея скриптов идея быстрого и простого создания скриптов... 8-) |
------- Последний раз редактировалось semiono, 13-08-2010 в 12:15. Отправлено: 12:05, 13-08-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Обновил функцию для записи, теперь можно указать номер строки куда будет записываться ключ, при этом ключ из старого местоположения удаляется. Т.е предотвращается дублирование записи.
|
------- Отправлено: 12:26, 13-08-2010 | #12 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать madmasles, а ведь твой скрипт не изменяет файл! Чем же я сам запишу $sText, FileWright тупо добавит строку в файл.
Creat0R, я не знаю как твою функцию юзать, это для просвещённых. Вчастности, непонятно как указать нужное значение. |
------- Отправлено: 13:03, 13-08-2010 | #13 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать |
------- Отправлено: 13:08, 13-08-2010 | #14 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Внимание, работает код от 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 Конфиг съедает сам себя ![]() Цитата Creat0R:
|
|
------- Отправлено: 13:16, 13-08-2010 | #15 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
![]() $sPath = @ScriptDir & '\Scite.Session' _IniWriteProperty($sPath, 'position.width', @DesktopWidth) _IniWriteProperty($sPath, 'position.height', @DesktopHeight) 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 |
|
------- Отправлено: 13:23, 13-08-2010 | #16 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Вот это другое дело! Работает даже при буквенных значениях =zzzzzzzzzzzzzzzzzzzz любой длины!
И при пустом значении = Ну для правильности добавим правильный путь $sPath = @UserProfileDir & '\SciTE.session' Это же реальный SciTE.session конфиг, так что можете тоже пользоваться! kaster, madmasles, Creat0R, спасиб! ![]() |
------- Отправлено: 13:34, 13-08-2010 | #17 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата semiono:
![]() |
|
------- Отправлено: 13:43, 13-08-2010 | #18 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать $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 максимум по-моему. ![]() Но ты намекашь, что твой код интелектуальней. Надеюсь ошибок там нету из-за сложности функции? Однако, там наверное лишнего много для этой задачи. Вообщем мне хватит пока то что есть ![]() |
------- Отправлено: 13:53, 13-08-2010 | #19 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Creat0R, ну не знаю. у меня ведь ничего не съедалось. Да и потом, логика подсказывает, что закрытие неверного хендла всего лишь вернет 0. А после этой строки нет ничего, стало быть скрипт завершится и файл сам закроется.
|
------- Отправлено: 13:53, 13-08-2010 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Значение секторов в Desktop.ini | konstantinych | Microsoft Windows 2000/XP | 3 | 27-01-2010 23:18 | |
Разное - Изменить значение Mouse1 на Mouse3 | Dmitriusss | Microsoft Windows 2000/XP | 6 | 03-04-2009 14:43 | |
Интерфейс - [решено] Как изменить значение в реестре | DeMoN23 | Microsoft Windows 2000/XP | 2 | 24-02-2009 13:52 | |
Как в Omni Page распознавать файл переданый в качестве параметра командной строки | madmax24 | Программное обеспечение Windows | 8 | 07-06-2007 19:59 | |
Значение параметра в реестре WinME | Guest | Microsoft Windows 95/98/Me (архив) | 3 | 07-10-2004 15:26 |
|