|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [Архив - Часть 1.2] AutoIt скрипты |
|
[Архив - Часть 1.2] AutoIt скрипты
|
Ветеран Сообщения: 565 |
Профиль | Сайт | Отправить PM | Цитировать
Внимание! Тема переведена в архивное состояние (настоятельно рекомендуется к прочтению/поиску) Руководство к действию по работе c AutoIt. |
|
------- Отправлено: 10:47, 10-02-2006 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
Цитата:
Ладно, коли такое дело переделал функцию - теперь она возвращает начало и конец продублированных блоков (от содержания строки отказался, т.к. невостребовано). Далее - предыдущий вариант страдал нелогичностью по отношению к операциям ввода-вывода, то смотрим в массив, то в файл.... зачем тогда было его загружать?.. Поэтому все операции с файлом (в т.ч. удаление строк) переделал для массива, в заключении готовый массив выгружается поверх старого файла: #include <File.au3> #include <Array.au3> $File = "c:\test.txt" Dim $FileLines _FileReadToArray ($file, $FileLines) ; Возвращаем данные о дублирующихся блоках $DupLines = _DupBLKsInArray ($FileLines, '#URL', @TAB & 'URL=') ; Страховка от пустого массива если дублей нет If $DupLines [0][0] >0 Then For $i=$DupLines [0][0] To 1 Step -1 For $j=$DupLines [$i][1] To $DupLines [$i][0] Step -1 _ArrayDelete ($FileLines, $j) Next Next _FileWriteFromArray($File, $FileLines, 1) EndIf ; Возвращает отсортированный двумерный массив со счетчиком, содержащий ; начало и конец продублированных блоков, в качестве параметров принимаются ; строки, отмечающие начало блока и начало ключевой строки Func _DupBLKsInArray (ByRef $array, $BlkStartLine, $BlkKeyLine) Local $i, $i, $BlkStart, $res [1][2] = [[0,0]] Local $BlkStartLen= StringLen ($BlkStartLine) Local $BlkKeytLen = StringLen ($BlkKeyLine) ; рабочий массив для отметки обработанных дублей Local $flags [$array [0] +1] For $i=1 To $array [0] If StringLeft ($array [$i], $BlkKeytLen) = $BlkKeyLine Then For $j=$i+1 To $array [0] If StringLeft ($array [$j], $BlkStartLen) = $BlkStartLine Then ; отмечаем начало текущего блока $BlkStart = $j ; если у текущего дубля нет конца, значит это он и есть If $res [$res [0][0]][1] =0 Then $res [$res [0][0]][1] = $BlkStart -1 EndIf If $flags [$j] <> 1 Then If $array [$i] = $array [$j] Then ReDim $res [$res [0][0]+2][2] $res [0][0] = $res [0][0] +1 ; вспоминаем начало текущего блока $res [$res [0][0]][0] = $BlkStart $res [$res [0][0]][1] = 0 $flags [$j] = 1 EndIf EndIf Next ; если конца до сих пор не нашли, значит этот блок последний If $res [$res [0][0]][1] =0 Then $res [$res [0][0]][1] = $j-1 EndIf Next ; сортировка массива по возрастанию _ArraySort ($res, 0, 1, 0, 2) Return $res EndFunc |
|
Последний раз редактировалось amel27, 13-11-2006 в 12:38. Причина: косметические мелочи Отправлено: 08:32, 10-11-2006 | #461 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать H E L P ! ! !
Написал кучу скриптов с помощью AutoIt и тут вдруг обновляется Dr.WEB и начинает запрещать работать с этим прекрасным редактором. Начал проверять свои рабочие скрипты-на половину все заражённые вирусом BackDoor.Hengto .Скачал с оф.сайта опять эту прогу-проверил (в ней вирусы зашиты). Так почему же тогда раньше ВЕБ не кричал и почему не все тогда скрипты заражены??!! или у меня на компе просто глюк??? |
------- Отправлено: 11:20, 10-11-2006 | #462 |
Ветеран Сообщения: 1073
|
Профиль | Отправить PM | Цитировать TERMINAL, у меня Nod32 одно время обзывал скрипт для генерации Inf как Trojan.Autoit.A - потом прошло... Хотя хз, мож ты чего-то и хватанул
|
------- Отправлено: 13:52, 10-11-2006 | #463 |
Ищу Человека… Сообщения: 420
|
Профиль | Сайт | Отправить PM | Цитировать TERMINAL
Цитата:
Цитата:
|
||
------- Отправлено: 13:58, 10-11-2006 | #464 |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Да не должен подхватить-2 антивирусника стоят...
Облазил весь инет, попровирял разными антивирусниками-все отвечают что файл ОК - незаражон...,а ВЕБ орёт и блокирует. Может это у него такая реакция на скрипт??????,правда он не может сказать что файл якобы ВОЗМОЖНЫЙ ВИРУС-просто берёт и блокирует....У кого то такое было????????просто хочется быть уверенным что это из-за скрипта, а не вирус... |
------- Отправлено: 14:02, 10-11-2006 | #465 |
Ветеран Сообщения: 753
|
Профиль | Отправить PM | Цитировать Sanja Alone Я скачиваю повторно файл установки AutoIt с оф.сайта-начинаю устанавливать и ВЕБ начинает орать опять на установочные файлы.
НАРОД ПЛЗ ! Пришлите мне какой нибудь скрипт "ехе" упакованый с "au3" на trm6@mail.ru , а я его проверю.... |
------- Отправлено: 14:41, 10-11-2006 | #466 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Всё работает как по маслу! Огромное Мерсий! TERMINAL У меня тоже на несколько закомпилированных скриптов, Dr.Web ругается на вирус BackDoor.Hengto - Наверно это из за структуры самого скрипта. Но это не значит что там есть вирус, это значит что Dr.Web (и ему подобные) не достаточно “умный” (при всё уважении к нему ), чтобы определить является ли это действительно вирусром, и просто напросто перестроаховывается. У меня стоит последний Kaspersky, он молчит, также молчат проверки online, так что это глюк в этой базе данных доктора (имхо). |
------- Отправлено: 01:02, 11-11-2006 | #467 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Есть небольшая пролблема с функцией, которую ты написал для проверки подключённости к интернету ... При проверке синтаксиса в SciTE, выдаётся ошибка, а именно, эта строка подчёркнута как ошибочная: Мне нужно чтобы в случае не подключения, функция лишь возвращала уровень ошибочности (@Error = 1), и чтобы также можно былло проверть, если @error = 1, значит вывожу сообщение (не в функции, а в теле скрипта), и в нём сообщаю о том какая ошибка произошла (значение ошибки должно тоже возвращаться из функции). |
------- Отправлено: 22:58, 12-11-2006 | #468 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Creat0R
опечатку исправил... только почему-то на моем компе она перестала работать - вываливает ошибку таймаута и все тут, хотя точно знаю что все работало!... уже и PROXYCFG проверил - ничего не помогает... ладно, сейчас некогда ковыряться может позже разберусь в чем причина. Цитата:
|
|
Отправлено: 12:26, 13-11-2006 | #469 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать amel27
Если я сделаю так (см. ниже), будет ли это являться корректной проверкой подключения? ;Установка функции перехвата COM-ошибок $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") If IsNotConnect() Then MsgBox (48,"Проверка связи","Интернет-соединение отсутствует по причине:" & @CRLF & $oMyError.description) ;Функция проверки на отсутствие соединения Func IsNotConnect() Local $oHTTP=ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("GET","http://www.google.com") $oHTTP.Send() Return @error EndFunc ;Обработчик COM-ошибок Func MyErrFunc() Select Case $oMyError.source = "WinHttp.WinHttpRequest" SetError($oMyError.number) Case Else Return $oMyError.description EndSelect Endfunc P.S: Просто интересно, как ты разукрасил код скрипта? неужели каждую команду (и разделители) обрамлял тегом цветов и выделения? |
------- Отправлено: 02:22, 14-11-2006 | #470 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Открывая 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 |
|