4
» AutoIT
timsky
ViSiToR
Вставлю и я свои 5 копеек
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)\r\n", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)" & $aStrings[$i], 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
ViSiToR
Вставлю и я свои 5 копеек
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)\r\n", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)" & $aStrings[$i], 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
Maza Faka 08:31 06-09-2008
Цитата:
Я в начале тоже думал через RegExp сделать, но тут есть некие ограничения, например при работае с юникодом
Кстати, в твоём примере есть один недочёт - Проверять нужно строку с @CRLF, иначе может удалиться не дубль, а похожая строка, которая содержит начало такое же как и у другой строки.
Пример файла:
Код: Test
Tes
Цитата:
Вставлю и я свои 5 копеек
Я в начале тоже думал через RegExp сделать, но тут есть некие ограничения, например при работае с юникодом
Кстати, в твоём примере есть один недочёт - Проверять нужно строку с @CRLF, иначе может удалиться не дубль, а похожая строка, которая содержит начало такое же как и у другой строки.
Пример файла:
Код: Test
Tes
ViSiToR
Maza Faka
Спасибо, мужики! Что бы я без вас делал...
Здесь уже поднимался вопрос насчет многопоточности... никто не вкурсе, не собираются ли АвтоИт в этом направлении дорабатывать/переделывать? Так не хочется с++ изучать... надо но не хочется
Может разработчиков продонейтить надо?
Maza Faka
Спасибо, мужики! Что бы я без вас делал...
Здесь уже поднимался вопрос насчет многопоточности... никто не вкурсе, не собираются ли АвтоИт в этом направлении дорабатывать/переделывать? Так не хочется с++ изучать... надо но не хочется
Может разработчиков продонейтить надо?
timsky 14:42 06-09-2008
Цитата:
Увы, но нет
Цитата:
Не поможет, тут не вопрос о желании это сделать (оно у них есть), тут вопрос практической/технической реализации.
Цитата:
не собираются ли АвтоИт в этом направлении дорабатывать/переделывать?
Увы, но нет
Цитата:
Может разработчиков продонейтить надо?
Не поможет, тут не вопрос о желании это сделать (оно у них есть), тут вопрос практической/технической реализации.
Очень жаль
В универе немного писал на Паскале, ВБ... не то. Недавно совсем попробовал Автоит и просто влюбился. Дело даже не в том, что все переменные Вариант, или что их можно влюбом месте объявлять, или еще каких-то поблажкаж. Код читается и пишется легко! И самое главное быстро! Классный хелп....
В универе немного писал на Паскале, ВБ... не то. Недавно совсем попробовал Автоит и просто влюбился. Дело даже не в том, что все переменные Вариант, или что их можно влюбом месте объявлять, или еще каких-то поблажкаж. Код читается и пишется легко! И самое главное быстро! Классный хелп....
ViSiToR
Цитата:
Да, я не подумал об этом
Цитата:
Да ты прав, нижеуказанный код работает, но если последняя строка не содержит символов возврата каретки и окончания строки, то
Цитата:
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)\r\n", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)(" & $aStrings[$i] & ")\r\n", 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
Цитата:
Я в начале тоже думал через RegExp сделать, но тут есть некие ограничения, например при работае с юникодом
Да, я не подумал об этом
Цитата:
Кстати, в твоём примере есть один недочёт - Проверять нужно строку с @CRLF, иначе может удалиться не дубль, а похожая строка, которая содержит начало такое же как и у другой строки.
Да ты прав, нижеуказанный код работает, но если последняя строка не содержит символов возврата каретки и окончания строки, то
Цитата:
«Tes» будет удалено
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)\r\n", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)(" & $aStrings[$i] & ")\r\n", 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
Maza Faka 16:07 06-09-2008
Цитата:
Да, но оно вроде решается в начале:
Код: $aStrings = StringRegExp($fRead, "(.*)(?:\r\n|\z)", 3)
Цитата:
если последняя строка не содержит символов возврата каретки и окончания строки, то «Tes» будет удалено
Да, но оно вроде решается в начале:
Код: $aStrings = StringRegExp($fRead, "(.*)(?:\r\n|\z)", 3)
ViSiToR
Спасибо за пример. Теперь другая проблема, не удаляет дублирующиеся строки оканчивающиеся символом ?
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)(?:\r\n|\z)", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)(" & $aStrings[$i] & ")(?:\r\n|\z)", 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
Спасибо за пример. Теперь другая проблема, не удаляет дублирующиеся строки оканчивающиеся символом ?
Код: Dim $ResultStrings
$file = "c:\test.txt"
$fRead = FileRead($file)
$aStrings = StringRegExp($fRead, "(.*)(?:\r\n|\z)", 3)
For $i = 0 To UBound($aStrings) - 1
If Not StringRegExp($ResultStrings, "(?i)(" & $aStrings[$i] & ")(?:\r\n|\z)", 0) Then $ResultStrings &= $aStrings[$i] & @CRLF
Next
$hFile = FileOpen($file, 2)
FileWrite($hFile, $ResultStrings)
FileClose($hFile)
Maza Faka 17:15 06-09-2008
Цитата:
Служебные символы:
Код: [ ] { } ( ) | . ? + * \ ^
Цитата:
на каком ещё символе споткнётся RegExp
Служебные символы:
Код: [ ] { } ( ) | . ? + * \ ^
народ в explorere открыт xml документ
если использовать _IEBodyReadHTML то получаем кучу не нужных и неправильных тегов
если использовать IEBodyReadText то тоже не получаем xml документ подскажите каким финтом воспользоваться для получения правильно сформированного xml документа, чтобы его потом обработать можно было?
вопрос 2 как перейти по ссылки и подсунуть свой referer...
Заранее благодарен.
если использовать _IEBodyReadHTML то получаем кучу не нужных и неправильных тегов
если использовать IEBodyReadText то тоже не получаем xml документ подскажите каким финтом воспользоваться для получения правильно сформированного xml документа, чтобы его потом обработать можно было?
вопрос 2 как перейти по ссылки и подсунуть свой referer...
Заранее благодарен.
Цитата:
народ в explorere открыт xml документ
если использовать _IEBodyReadHTML то получаем кучу не нужных и неправильных тегов
если использовать IEBodyReadText то тоже не получаем xml документ подскажите каким финтом воспользоваться для получения правильно сформированного xml документа, чтобы его потом обработать можно было?
InetGet не подойдет? Как вариант _IEAction с "selectall".
timsky
InetGet нет не подойдёт, ибо это закачка файла, а мне надо имитировать открытие в том же окне
а вот как применить selectall я что-то не пойму..... вот й если бы там было saveas без вопросов это было бы дело
InetGet нет не подойдёт, ибо это закачка файла, а мне надо имитировать открытие в том же окне
а вот как применить selectall я что-то не пойму..... вот й если бы там было saveas без вопросов это было бы дело
Вот тебе пример:
Цитата:
Цитата:
#include <IE.au3>
$ie = _IECreate ('http://www.gumtree.com/london/72.xml') ;Грузим xml
_IEAction ($ie, 'selectall') ; Выделяем содержимое броузера
_IEAction ($ie, 'copy') ; Копируем в буфер
_IEAction ($ie, 'quit') ; Закрываем броузер
$clip = ClipGet() ; Дергаем из буфера в переменную
; Кидаем в файл
$file = FileOpen ('xml.xml', 2)
FileWrite ($file, $clip)
FileClose ($file)
где можно скочать библиотеку.
GuiCombo.au3
GuiCombo.au3
VladDao
Скачай последнюю версию AutoIt, установи и смотри c:\Program Files\AutoIt3\Include\GuiComboBox.au3
Скачай последнюю версию AutoIt, установи и смотри c:\Program Files\AutoIt3\Include\GuiComboBox.au3
этот сценарий жмёт капу Enter попеременно через 15 и 30 сек.
While 1
Send("{ENTER}")
Sleep(15000)
Send("{ENTER}")
Sleep(30000)
WEnd
но вот как грамотно написать, чтобы он жал эту капу в случайном интервале времени от 15 до 30 сек? умучалася уже, перепробовала кучу комбинаций с функциями TimerInit() и TimerDiff,
моСк вкипел, но упорно отказывается придумать что-либо толковое, Гугиль и Яндехс тоже не помогли хелп...
While 1
Send("{ENTER}")
Sleep(15000)
Send("{ENTER}")
Sleep(30000)
WEnd
но вот как грамотно написать, чтобы он жал эту капу в случайном интервале времени от 15 до 30 сек? умучалася уже, перепробовала кучу комбинаций с функциями TimerInit() и TimerDiff,
моСк вкипел, но упорно отказывается придумать что-либо толковое, Гугиль и Яндехс тоже не помогли хелп...
Girka
Код: While 1
Send("{ENTER}")
Sleep(Random(15000 ,30000 ))
wend
Код: While 1
Send("{ENTER}")
Sleep(Random(15000 ,30000 ))
wend
Girka
Sleep (Random(15000,30000))
Sleep (Random(15000,30000))
тьфу-ты-нуты, совсем старая стала совсем забыла про эту функцию. Пошла я.... велосипед дальше мучить...
timsky и получаем файлик как на экране, но не формата xml
пока обхожусь сохранить как но имхо это не правильно...
у кого есть прямой совет как сохранить файл из IE указав путь имя этк, без доп окошек... заранее благодарен.
в догонку 2 вопрос один скрипт autoit надо два потока, где читать?
пока обхожусь сохранить как но имхо это не правильно...
у кого есть прямой совет как сохранить файл из IE указав путь имя этк, без доп окошек... заранее благодарен.
в догонку 2 вопрос один скрипт autoit надо два потока, где читать?
bornbill
Ну вот из моего примера я щас попробовал и не вижу проблемы. Да, файл другой:
1) Исходный файл в UINX кодировке, а сохраненный копированием в WINDOWS кодировке.
2) Добавились дефис и пробел: "- " в начале строк и символы табуляции заменились на 2 пробела.
Можно просто снести (заменить на символ табуляции) 2 пробела или "- " в начале всех строка и все.
В чем проблема с обработкой?
Ну вот из моего примера я щас попробовал и не вижу проблемы. Да, файл другой:
1) Исходный файл в UINX кодировке, а сохраненный копированием в WINDOWS кодировке.
2) Добавились дефис и пробел: "- " в начале строк и символы табуляции заменились на 2 пробела.
Можно просто снести (заменить на символ табуляции) 2 пробела или "- " в начале всех строка и все.
В чем проблема с обработкой?
timsky
пробую но пока при открытии _XMLFileOpen получаю дикие ошибки не опознанная ошибка DOM, этк..... ищу загвоздку, заранее благодарен за пример преобразования к виду нормального xml.... может я гдето туплю.....
заранее благодарен.
да ошибки не при открытии, а в другом месте только что наткнулся, но всё равно при открытии всегда получаю -1.
пробую но пока при открытии _XMLFileOpen получаю дикие ошибки не опознанная ошибка DOM, этк..... ищу загвоздку, заранее благодарен за пример преобразования к виду нормального xml.... может я гдето туплю.....
заранее благодарен.
да ошибки не при открытии, а в другом месте только что наткнулся, но всё равно при открытии всегда получаю -1.
Добрый день, Друзья!
Я новичок в AutoIT.
Начал разбираться со скриптами Sanja Alone http://sanjaalone.h15.ru/au3.php
Написал свой скрипт по установке Pragma 5.0,
но есть вопросы по её Offline-регистрации.
Может кто-нибудь подсказать как это делается
и кому можно выслать этот скрипт?
С уважением Алик Теляков
Я новичок в AutoIT.
Начал разбираться со скриптами Sanja Alone http://sanjaalone.h15.ru/au3.php
Написал свой скрипт по установке Pragma 5.0,
но есть вопросы по её Offline-регистрации.
Может кто-нибудь подсказать как это делается
и кому можно выслать этот скрипт?
С уважением Алик Теляков
Можно ли както вносить изменения в сам исполняемый файл? Поясню. Компилируемый скрипт в exe - это нечто вроде архива. Внутри лежит файл options.ini. Внутри есть параметры. Запускаю файл он смотрит сам в себя и берёт из себя параметры. Я меняю эти параметры и жму "сохранить". Скрипт (exe) кладёт эти параметры в себя - в файл options.ini и при следующем запуске использует их. Такое портативное приложение получается. Может есть способ напрямую общаться с внутренностями exe файла, как с архивом или, как с папкой?
VitAlll2013
Можно создать самораспаковыващийся архив, скажем с помощью консольной версии 7Zip в архив поместить сам архиватор, интерпретатор AutoIt3.exe, главный и дополнительный скрипт. Ну и автоматизировать всё это
Можно создать самораспаковыващийся архив, скажем с помощью консольной версии 7Zip в архив поместить сам архиватор, интерпретатор AutoIt3.exe, главный и дополнительный скрипт. Ну и автоматизировать всё это
VitAlll2013 14:18 09-09-2008
Цитата:
Вот примерно реализация того что написал Maza Faka , но без 7z, я использовал уже имеющийся upx.exe. Получилось немного бредово правда, хотя если сильно надо ...
Код:
$sTempDir = _CreateTempFile(@TempDir, '~Au3_', '')
$sConfig = $sTempDir & "\Options.ini"
$sScript = $sTempDir & "\Script.au3"
$sCompiler = $sTempDir & "\Aut2Exe.exe"
$sUpx = $sTempDir & "\Upx.exe"
$sBin = $sTempDir & "\AutoItSC.bin"
FileInstall(".\Options.ini", $sConfig, 1)
FileInstall(".\Aut2Exe.exe", $sCompiler, 1)
FileInstall(".\Upx.exe", $sUpx, 1)
FileInstall(".\AutoItSC.bin", $sBin, 1)
FileInstall(".\Script.au3", $sScript, 1)
;Проверяем во второй раз (первый игнорируем - будет выведено текущее значение, т.к ещё не была сделана запись), на сохранение
MsgBox(64, "Results", IniRead($sConfig, "Sect", "Key", ""))
;Пишем в инишку, она будет запакована в новый exe'шник
IniWrite($sConfig, "Sect", "Key", "Some New Data")
;Компилируем всё обратно, с новыми параметрами
Run($sCompiler & ' /in "' & $sScript & '" /out "' & @ScriptDir & '\Script.exe" /comp 4', @ScriptDir, @SW_HIDE)
;Эта строка удаляет временную папку (будет выполненно через 5 сек. после выполнения скрипта, чтобы компилятор успел отработать)
Run(@ComSpec & ' /c ping -n 5 localhost > nul & rd /s /q "' & $sTempDir & '"', @TempDir, @SW_HIDE)
Func _CreateTempFile($s_DirectoryName = @TempDir, $s_FilePrefix = "~", $s_FileExtension = ".tmp", $i_RandomLength = 7)
Local $s_TempName
If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName &= "\"
Do
$s_TempName = ""
While StringLen($s_TempName) < $i_RandomLength
$s_TempName = $s_TempName & Chr(Random(97, 122, 1))
WEnd
$s_TempName = $s_DirectoryName & $s_FilePrefix & $s_TempName & $s_FileExtension
Until Not FileExists($s_TempName)
DirCreate($s_TempName)
Return $s_TempName
EndFunc
Цитата:
Можно ли както вносить изменения в сам исполняемый файл?
Вот примерно реализация того что написал Maza Faka , но без 7z, я использовал уже имеющийся upx.exe. Получилось немного бредово правда, хотя если сильно надо ...
Код:
$sTempDir = _CreateTempFile(@TempDir, '~Au3_', '')
$sConfig = $sTempDir & "\Options.ini"
$sScript = $sTempDir & "\Script.au3"
$sCompiler = $sTempDir & "\Aut2Exe.exe"
$sUpx = $sTempDir & "\Upx.exe"
$sBin = $sTempDir & "\AutoItSC.bin"
FileInstall(".\Options.ini", $sConfig, 1)
FileInstall(".\Aut2Exe.exe", $sCompiler, 1)
FileInstall(".\Upx.exe", $sUpx, 1)
FileInstall(".\AutoItSC.bin", $sBin, 1)
FileInstall(".\Script.au3", $sScript, 1)
;Проверяем во второй раз (первый игнорируем - будет выведено текущее значение, т.к ещё не была сделана запись), на сохранение
MsgBox(64, "Results", IniRead($sConfig, "Sect", "Key", ""))
;Пишем в инишку, она будет запакована в новый exe'шник
IniWrite($sConfig, "Sect", "Key", "Some New Data")
;Компилируем всё обратно, с новыми параметрами
Run($sCompiler & ' /in "' & $sScript & '" /out "' & @ScriptDir & '\Script.exe" /comp 4', @ScriptDir, @SW_HIDE)
;Эта строка удаляет временную папку (будет выполненно через 5 сек. после выполнения скрипта, чтобы компилятор успел отработать)
Run(@ComSpec & ' /c ping -n 5 localhost > nul & rd /s /q "' & $sTempDir & '"', @TempDir, @SW_HIDE)
Func _CreateTempFile($s_DirectoryName = @TempDir, $s_FilePrefix = "~", $s_FileExtension = ".tmp", $i_RandomLength = 7)
Local $s_TempName
If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName &= "\"
Do
$s_TempName = ""
While StringLen($s_TempName) < $i_RandomLength
$s_TempName = $s_TempName & Chr(Random(97, 122, 1))
WEnd
$s_TempName = $s_DirectoryName & $s_FilePrefix & $s_TempName & $s_FileExtension
Until Not FileExists($s_TempName)
DirCreate($s_TempName)
Return $s_TempName
EndFunc
VitAlll2013
Зависит от того, что в итоге нужно, где будет запускаться файл и на каком носителе храниться.
Если нужно всего один файл, файл будет храниться на носителях с файловой сиситемой NTFS и таскаться на флехе, тоже отформатированной в NTFS, то можно юзать NTFS потоки. Что это такое - довольно развернуто узанешь в гугле Реализовать - как 2 пальца.
bornbill
Начни с простого... возьми и обкатай на мелкой проге вроде той, что я дал, а потом уже в виде функции в свою основную прогу пихай, а то так до посинения будешь ковыряться. А вообще раз такие геморрои, то юзай Save As или Opera.udf / FireFox.udf попробуй. Может там и рефер можно подставлять. Оперный удф видел на сайте уважаемого Visitor'a, за что ему гигантский респект!
Зависит от того, что в итоге нужно, где будет запускаться файл и на каком носителе храниться.
Если нужно всего один файл, файл будет храниться на носителях с файловой сиситемой NTFS и таскаться на флехе, тоже отформатированной в NTFS, то можно юзать NTFS потоки. Что это такое - довольно развернуто узанешь в гугле Реализовать - как 2 пальца.
bornbill
Начни с простого... возьми и обкатай на мелкой проге вроде той, что я дал, а потом уже в виде функции в свою основную прогу пихай, а то так до посинения будешь ковыряться. А вообще раз такие геморрои, то юзай Save As или Opera.udf / FireFox.udf попробуй. Может там и рефер можно подставлять. Оперный удф видел на сайте уважаемого Visitor'a, за что ему гигантский респект!
ViSiToR
VitAlll2013
Я использовал такой метод в одном из своих проектов
ViSiToR
Кстати такой метод не противоречит лицензионному соглашению AutoIt?
VitAlll2013
Я использовал такой метод в одном из своих проектов
ViSiToR
Кстати такой метод не противоречит лицензионному соглашению AutoIt?
Подскажите, пожалуйста, как в некой сторонней программе проверить checkbox на checked/unchecked
если в своей программе создавать эти checkbox'ы, то к ним можно обращаться, как к переменным, а стороннии как искать?
если в своей программе создавать эти checkbox'ы, то к ним можно обращаться, как к переменным, а стороннии как искать?
Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
Предыдущая тема: Quintura Search
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.