Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Ответить
Настройки темы
[Архив - Часть 1.2] AutoIt скрипты

Ветеран


Сообщения: 565
Благодарности: 41

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 25-01-2008
Внимание!
Тема переведена в архивное состояние





(настоятельно рекомендуется к прочтению/поиску)


Руководство к действию по работе c AutoIt.
Можно ли с помощью AutoIt выбрать каталог? Хочу нацарапать оболочку, которая мне будет конфиги для nnBackup писать, дык выбрать каталог для бэкапа пока только вручную получается... Нельзя ли как-нть вывалить стандартный диалог по выбору файлов-папок, и получить из него результат действий пользователей?

-------
Tega AutoPatcher. Все обновления для XP в одном пакете. http://tega.ru/dirk/links.html


Отправлено: 10:47, 10-02-2006

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


XXXler
Цитата:
пложение самого раздела в файле тоже критично?
Положение нет, оно иногда может менятся (не моим скриптом), но вот название его будет всегда одинаковым.

P.S:
Под словом Раздел - я подразумиваю начало пунктам под которым есть ключи и значение у них, вот пример:
[Раздел1]
Ключь = Значение

[Раздел2]
Ключь = Значение

И т.д..

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:02, 18-07-2006 | #221



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


Вызов функции:
IniWriteVP(Файл,Секция,Параметр,Значение,[опционально:позиция параметра в секции])
Например:
IniWriteVP($File,"Section","Parametr","Этот параметр будет вторым",2)
IniWriteVP($File,"Section","Parametr","Этот параметр будет записан также, как и с пом. IniWrite")

Код: Выделить весь код
Func IniWriteVP($File,$Sect,$Param,$Val,$Pos=0)
	Local $ValArr,$i
	If $Pos<>0 Then IniDelete($File,$Sect,$Param)
	$ValArr=IniReadSection($File,$Sect)
	If @error Or $Pos=0 Or $ValArr[0][0]<$Pos Then
		IniWrite($File,$Sect,$Param,$Val)
		SetError(@error)
	Else
		For $i=1 To $ValArr[0][0]
			IniDelete($File,$Sect,$ValArr[$i][0])
		Next
		For $i=1 To $ValArr[0][0]
			If $Pos=$i Then	IniWrite($File,$Sect,$Param,$Val)
			IniWrite($File,$Sect,$ValArr[$i][0],$ValArr[$i][1])
		Next
	EndIf
EndFunc

Последний раз редактировалось XXXler, 20-07-2006 в 10:34.


Отправлено: 19:09, 18-07-2006 | #222


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


XXXler
У меня что-то не получается . Я если честно, так и не понял, что куда прописывать - Я пытался сделать так:

Код: Выделить весь код
$Sect="Test1"
$Param="Параметр"
$Val="Значение"
$File="Test.ini"

         Func IniWriteVP($File,$Sect,$Param,$Val,$Pos=0)
   IniWriteVP($File,$Sect,$Param,$Val, 2)

EndFunc
Но я понимаю что тут явно чего то нехватает, и этот вариант не срабатывает.

Если не трудно, напиши пожалуйста скрипт так, чтобы он в файл Test.ini, в секцию "Test3", и в третью строчку этой секции, записывал параметр "Проба" со значением "1". Т.е вот так должна быть прописана строка:

Код: Выделить весь код
[Test3]
Тут неважно что, но что-то записано.
Тут тоже неважная запись.
Проба = 1
Тут тоже неважная запись, но не обязательно последняя

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 00:11, 19-07-2006 | #223


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


bogomolv
Цитата:
"Я читал в справке раздел по использованию функций. Приведенный там пример меня не вдохновил, и я решил усовершенствовать синтаксис команд в AutoIt3, засунув обращение к функции внутрь самой функции. Но я понимаю, что тут явно чего-то не хватает! Как бы мне еще поиздеваться над AutoIt'ом, а заодно и над сокнижниками?"
А зачем-же так издеваться надо мной, я всего навсего, прошу о помощи в том, чего ещё не понимаю, но это не значит что я полный тупицца, который не хочет слушать то, что ему твердят... вот только твердили бы ясно, а не вырожениями типа „Как бы мне еще поиздеваться над AutoIt'ом“ - Я же не знаю как эти функции работают, и что куда можно пихать, а что нельзя.
Ты хочеш сказать, что в справке ясно описанно как сделать мою задумку, или что мою задумку не реально сделать в AotoIt? Тогда как-же в нём делают очень сложные задачи? а такую простую, как запись в определённую строку определённой секции ини файла, не возможно?! не поверю. Просто другое дело, нехватает опыта, или знании сделать такую задачу (или желания), а так или иначе, прямым, или обходным путём, реализовать мою задумку возможно... и надеюсь найдутся добрые, опытные, и желающие помочь новичку в этом деле (в программировании) люди (В их число, думаю входишь и ты, но почему-то предпочитаешь видеть во мне не новичка в программировании, а чайника в целом - что вовсе неверно!).

P.S:
Извеняюсь за офтоп, но мне хочется чтобы меня понимали, это необходимо для моего прибывание на форуме!

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 01:48, 19-07-2006 | #224


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


bogomolv
Цитата:
Ты не хочешь:
1) читать справку;
2) слушать советы прочитать справку;
3) договариваться, что ты все-таки почитаешь справку.
Я справку почитал, и теперь попытаюсь объяснить (метафорой), как я понимаю то что я с неё (и не только) вычитал...

Во многих кодах, мне ясны только основные вырожения, типа IniWrite, IniRead, For..Next, Do...Untill, переменные $var, $Func, $Sect, $param, $val, $File и т.д и т.п... Но во многих случаях (да почти во всех), увидив их в примерах справки, или тут на форуме, мне не удаётся соеденить их логический смысл воедино. Это подобно тому, как я знаю с десяток слов на французском в отдельности (их звучание и дословный перевод), но если мне начнут говорить на этом языке, даже услышав знакомые слова, я не пойму о чём речь, потому что нету опыта в разгаворе и понимании языка. А взяв русско-французский словарь (аналогия на справку в AotoIt), и прочитав его залпом, будет таже ситуация, и разговор на этом языке я не пойму, пока не стану говорить на нём (разве что если тот самый словарь, будет написан с подробными разъяснениями и мини-уроками по практике речепонимания и произношения).

А пример выше, огромное конечно спасибо за попытку, но он, как я понял, проверяет существует ли заданное значение в заданной секции, и если да, то создаёт заданный параметр с заданным значением в этой секции на одну строчку ниже, распознанного значения... а если значение не найдено, то заданный параметр со значением записывается в первую строчку заданного параметра...

Но мне, вообще-то, ненужно чтобы там была какая-то либо или чего-то либо проверка, нужно чтобы был скрипт, в определённую команду которого (типа $Pos=3), я смог бы внести номер строки заданной секции, и после запуска данного скрипта, в эту строку прописался бы заданный параметр со значеним.

Цитата:
На основе этого примера очень легко нарисовать свою конструкцию:
Я согласен, что может быть тебе просто, но вот мне, вовсе не просто, не то чтобы написать такую конструкцию, но и понять мне её вовсе не просто.

Цитата:
Ты так и не прочитал пример использования функций из справки:
Так я и немогу, у меня в справке приведённого тобой примера вовсе нет... может у меня другая справка? если не трудно, дай пожалуйста ссылку, на ту справку которую юзаешь...

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:32, 19-07-2006 | #225


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


bogomolv
Цитата:
Скопируй написанный для тебя код в конец своего скрипта (после Exit) и обратись к функции командой IniWriteVP($File,"Section","Parametr","Этот параметр будет вторым",2).
Я делал точно так, но параметр со значением прописывается именно в первую строчку секции.

Цитата:
Кстати, а зачем тебе это? Обычно, программам, работающим с INI-файлами, по барабану, какая последовательность у нужных им параметров.
В моём случае, как раз-то не побарабану. Дело в том, что эти параметры, это пункты меню в программе (Файл | Правка | Вид и т.д), которые нужно убирать\показывать при необходимости. Но для этого, нужно именно прописывать строчки в то место, где они и должный быть (я знаю заранее где), чтобы небыло путанницы в последовательности их появления в программе.

А на счёт справки, Спасибо, так намного проще понимать что тебе советуют!

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 14:43, 20-07-2006 | #226


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


Creat0R, пустые строки в секции имеют место?

-------
Исходные коды проектов


Отправлено: 14:54, 20-07-2006 | #227


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


XXXler
Цитата:
пустые строки в секции имеют место?
Их там нету (за исключением последней, и то, я могу её стереть, она там не обязательна).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 15:04, 20-07-2006 | #228


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


Creat0R, все отловил ситуацию:
при таком заполнении:

Код: Выделить весь код
Func IniWriteVP($File,$Sect,$Param,$Val,$Pos=0)
	Local $ValArr,$i
	If $Pos<>0 Then IniDelete($File,$Sect,$Param)
	$ValArr=IniReadSection($File,$Sect)
	If @error Or $Pos=0 Or $ValArr[0][0]<$Pos Then
		IniWrite($File,$Sect,$Param,$Val)
		SetError(@error)
	Else
		For $i=1 To $ValArr[0][0]
			IniDelete($File,$Sect,$ValArr[$i][0])
		Next
		For $i=1 To $ValArr[0][0]
			If $Pos=$i Then	IniWrite($File,$Sect,$Param,$Val)
			IniWrite($File,$Sect,$ValArr[$i][0],$ValArr[$i][1])
		Next
	EndIf
EndFunc

For $i=1 To 3
	For $y=1 to 10
		IniWriteVP(@ScriptDir&"\Test.ini","Test"&$i,"Par"&$y,"Фигня")
	Next
Next

IniWriteVP(@ScriptDir&"\Test.ini","Test1","Par100","пятое значение",5)
IniWriteVP(@ScriptDir&"\Test.ini","Test3","Par3","третье значение",3)
IniWriteVP(@ScriptDir&"\Test.ini","Test3","Par1","седьмое значение",7)
при присвоении Par1 седьмой позиции Par3 становится вторым, т.к. Par1 переходит в 7 строку:

Код: Выделить весь код
[Test1]
Par1=Фигня
Par2=Фигня
Par3=Фигня
Par4=Фигня
Par100=пятое значение
Par5=Фигня
Par6=Фигня
Par7=Фигня
Par8=Фигня
Par9=Фигня
Par10=Фигня
[Test2]
Par1=Фигня
Par2=Фигня
Par3=Фигня
Par4=Фигня
Par5=Фигня
Par6=Фигня
Par7=Фигня
Par8=Фигня
Par9=Фигня
Par10=Фигня
[Test3]
Par2=Фигня
Par3=третье значение
Par4=Фигня
Par5=Фигня
Par6=Фигня
Par7=Фигня
Par1=седьмое значение
Par8=Фигня
Par9=Фигня
Par10=Фигня
тут наверное прийдется, предварительно загнать все изменения ini-файла в массив, а потом его перезаписать с нуля - тогда позиции будут жесткими, иначе все будет плавать.

попожжа наваяю, может быть

Отправлено: 15:18, 20-07-2006 | #229


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


XXXler
Огромное спасибо за такое внимание!

А может быть есть такая команда, которая после вставки параметра в первую строку, будет как бы двигать его (параметр) по одной строке вниз?

А вообще, как я потихоньку начинаю убиждаться, моя задумка очень сложная для выполнения (не только на AutoIt) тем способом который я объяснил. Тогда у меня есть немного другая альтернатива, но цель впринципе та же:

Вместо прописывания параметров в определённую строку секции, можно было бы проверять если заданный параметр прописан так как он определён (в скрипте), и если так и прописан, то пусть к этому параметру дописывается символ ; (чтобы параметр был как бы закоментирован), а если у этого параметра уже прописан такой символ, то пусть он убирается, и параметр таким образом становится активным - Этот вриант, как мне кажется, наиболее подходящий, и думаю даже более прост для выполнения скриптом AutoIt.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 16:10, 20-07-2006 | #230



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Открывая 7z архив пишет не удаётся открыть как архив. Можно ли его восстановить? DreDo Хочу все знать 4 01-12-2009 18:54
[Архив - Часть 3] AutoIt скрипты .:[общие вопросы]:. Vadikan AutoIt 1543 18-01-2009 10:46
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
[Архив - Часть 1.3] AutoIt скрипты biork AutoIt 503 09-06-2007 11:27
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход