[архив - Часть 2] AutoIt скрипты
-
HORRIBLE
Re: [архив - Часть 2] AutoIt скрипты
Как сделать поиск по маске, формат имени файла выглядит так (12_12_12.txt), в папке текстовых файлов много и у всех разный формат имени, но есть и файлы с форматом имени таким который был приведен, далее после поиска вывести массив с найденными файлами.
Я так думаю что нужно сперва воспользоваться _FileListToArray ($path ,"*.txt"), а после это этим StringRegExp (). Но я так попробовал, и ничего не вышло
StringRegExp ("12_12_12.txt 12_12_12.txt", ,'(\d\d\w\d\d\w\d\d.\w\w\w\w*?)',4) - если так писать, все прекрасно работат, находит)) а как быть с именем файла?
'(\d\d\w\d\d\w\d\d.\w\w\w\w*?)' - правильно написано или можно как нить подругому задать?
2 вопрос:
_FileCreate("1.txt")
$Array1 = _FileListToArray ($path ,"*.au3")
$Array2 = _ArrayToclip($1)
fileWrite("1.txt",ClipGet())
когда информация (имена присутствующих файлов в папке) записываается в файлик она разделяется @LF, а как сделать так чтоб информация разделялась, а Enter-ом, чтобы каждое название файла начиналось с новой строки.
Спасибо.
Я так думаю что нужно сперва воспользоваться _FileListToArray ($path ,"*.txt"), а после это этим StringRegExp (). Но я так попробовал, и ничего не вышло
StringRegExp ("12_12_12.txt 12_12_12.txt", ,'(\d\d\w\d\d\w\d\d.\w\w\w\w*?)',4) - если так писать, все прекрасно работат, находит)) а как быть с именем файла?
'(\d\d\w\d\d\w\d\d.\w\w\w\w*?)' - правильно написано или можно как нить подругому задать?
2 вопрос:
_FileCreate("1.txt")
$Array1 = _FileListToArray ($path ,"*.au3")
$Array2 = _ArrayToclip($1)
fileWrite("1.txt",ClipGet())
когда информация (имена присутствующих файлов в папке) записываается в файлик она разделяется @LF, а как сделать так чтоб информация разделялась, а Enter-ом, чтобы каждое название файла начиналось с новой строки.
Спасибо.
-
Creat0R
Re: [архив - Часть 2] AutoIt скрипты
HORRIBLE,
Цитата:
Как сделать поиск по маске, формат имени файла выглядит так (12_12_12.txt), в папке текстовых файлов много и у всех разный формат имени, но есть и файлы с форматом имени таким который был приведен, далее после поиска вывести массив с найденными файлами.
_FileListToArray вернёт массив, поэтому проходиться нужно по всему массиву циклом:
Код:
Если всегда цифр будет только две (между каждым разделителем), то \d+ нужно заменить на \d\d.
Цитата:
как сделать так чтоб информация разделялась, а Enter-ом, чтобы каждое название файла начиналось с новой строки.
А зачем использовать буфер обмена? есть функция _FileWriteFromArray()
.
Функция _ArrayToClip() помещет строчки в буфер обмена разделённые @CR (возврат каретки).
Цитата:
Как сделать поиск по маске, формат имени файла выглядит так (12_12_12.txt), в папке текстовых файлов много и у всех разный формат имени, но есть и файлы с форматом имени таким который был приведен, далее после поиска вывести массив с найденными файлами.
_FileListToArray вернёт массив, поэтому проходиться нужно по всему массиву циклом:
Код:
Код: Выделить всё
#include
#include
$sPath = @ScriptDir
$avArray = _RegExpFileListToArray($sPath, "(?i)\d+_\d+_\d+\.txt", "*.txt")
_ArrayDisplay($avArray)
Func _RegExpFileListToArray($sPath, $sPattern, $sMask="*")
Local $aRet[1]
$aFileList = _FileListToArray($sPath, $sMask)
For $i = 1 To UBound($aFileList)-1
If StringRegExp($aFileList[$i], $sPattern) Then
$aRet[0] += 1
ReDim $aRet[$aRet[0]+1]
$aRet[$aRet[0]] = $aFileList[$i]
EndIf
Next
Return $aRet
EndFuncЕсли всегда цифр будет только две (между каждым разделителем), то \d+ нужно заменить на \d\d.
Цитата:
как сделать так чтоб информация разделялась, а Enter-ом, чтобы каждое название файла начиналось с новой строки.
А зачем использовать буфер обмена? есть функция _FileWriteFromArray()
.Функция _ArrayToClip() помещет строчки в буфер обмена разделённые @CR (возврат каретки).
-
Creat0R
Re: [архив - Часть 2] AutoIt скрипты
HORRIBLE,
Цитата:
откуда такие команды??? у меня в хелпе по авто иту нету такого, вы че сами их придумавыете?
Сами
- по сути _FileListToArray() (и все функции начинающиеся с _ ) тоже самопальная функция.
Цитата:
что такое $sPattern оно же не где не задано.
Оно задано как параметр для фунции, я просто как второй параметр указываю образец (Pattern) для RegExp.
Цитата:
как это понять, тип либой файл чтоли?
Это маска, по которой определяется параметры для поиска файлов, см. функцию FileFindFirstFile().
Цитата:
откуда такие команды??? у меня в хелпе по авто иту нету такого, вы че сами их придумавыете?
Сами
- по сути _FileListToArray() (и все функции начинающиеся с _ ) тоже самопальная функция.Цитата:
что такое $sPattern оно же не где не задано.
Оно задано как параметр для фунции, я просто как второй параметр указываю образец (Pattern) для RegExp.
Цитата:
как это понять, тип либой файл чтоли?
Это маска, по которой определяется параметры для поиска файлов, см. функцию FileFindFirstFile().
-
TERMINAL
Re: [архив - Часть 2] AutoIt скрипты
Creat0R, не могу заставить выключиться Send("{CAPSLOCK off}") !
-
Creat0R
Re: [архив - Часть 2] AutoIt скрипты
TERMINAL,
Цитата:
не могу заставить выключиться Send("{CAPSLOCK off}") !
В справке по этому поводу что-то написано:
Цитата:
You can set SendCapslockMode to make CAPS LOCK disabled at the start of a Send operation and restored upon completion.
However, if a user is holding down the Shift key when a Send function begins, text may be sent in uppercase.
One workaround is to Send("{SHIFTDOWN}{SHIFTUP}") before the other Send operations.
Certain keyboard as the Czech one send different characters when using the Shift Key or being in CAPS LOCK enabled and sending a char. Due to the send AutoIt implementation the CAPS LOCKed char will be sent as Shifted one so it will not work.
а Send("{CAPSLOCK toggle}") работает?
Цитата:
не могу заставить выключиться Send("{CAPSLOCK off}") !
В справке по этому поводу что-то написано:
Цитата:
You can set SendCapslockMode to make CAPS LOCK disabled at the start of a Send operation and restored upon completion.
However, if a user is holding down the Shift key when a Send function begins, text may be sent in uppercase.
One workaround is to Send("{SHIFTDOWN}{SHIFTUP}") before the other Send operations.
Certain keyboard as the Czech one send different characters when using the Shift Key or being in CAPS LOCK enabled and sending a char. Due to the send AutoIt implementation the CAPS LOCKed char will be sent as Shifted one so it will not work.
а Send("{CAPSLOCK toggle}") работает?
-
TERMINAL
-
TERMINAL
Re: [архив - Часть 2] AutoIt скрипты
Creat0R, добрый день!Пишу Вам, т.к. прочитал ваши сообщения на форуме - очень пригодилось. До этого очень много делал программок для работы на VB.
Впервые попробовал Autoit, когда понадобилось перенести данные с листа Excel в Axata.Понравилось.
Вопрос - можно ли объединить Autoit и VB. И второй очень срочный - есть ли скрипт позволяющий работать с Listview,
как с листом ексель, т.е. вводить данные с клавиатуры во все колонки, редактировать и т.д.
Заранее благодарен.
Впервые попробовал Autoit, когда понадобилось перенести данные с листа Excel в Axata.Понравилось.
Вопрос - можно ли объединить Autoit и VB. И второй очень срочный - есть ли скрипт позволяющий работать с Listview,
как с листом ексель, т.е. вводить данные с клавиатуры во все колонки, редактировать и т.д.
Заранее благодарен.
-
rimm
Re: [архив - Часть 2] AutoIt скрипты
Прошу кто может помочь с английским переводом описаний функций "Автоматизация MS Internet Explorer", к сожалению в русской справке от Валерия Иванова этот раздел не переведен, самому мне перевести не представляется возможным.
Спасибо всем кто помогал мне в прошлый раз.
Спасибо всем кто помогал мне в прошлый раз.
-
rimm
Re: [архив - Часть 2] AutoIt скрипты
Vikma19
Хоть вопрос и не ко мне...
Цитата:
можно ли объединить Autoit и VB.
VB-script? Можно создавать обьекты и управлять ими как в WSH, пример копирования файлов с отображением системного диалога копирования:
Код:
Цитата:
второй очень срочный - есть ли скрипт позволяющий работать с Listview,
как с листом ексель, т.е. вводить данные с клавиатуры во все колонки, редактировать и т.д.
Ну как в Excel вряд ли, но в справке есть примеры редактирования Item-ов, вот немного изменённый пример из справки:
Код:
rimm
Цитата:
кто может помочь с английским переводом описаний функций "Автоматизация MS Internet Explorer"
А какая именно функция не понятна?
P.S.
Переводить на русский все функции, вряд-ли кто будет, так, как на это нужно время, а по отдельным, спрашивай, чем сможем поможем.
Хоть вопрос и не ко мне...
Цитата:
можно ли объединить Autoit и VB.
VB-script? Можно создавать обьекты и управлять ими как в WSH, пример копирования файлов с отображением системного диалога копирования:
Код:
Код: Выделить всё
_FileCopy("D:\wallpaper\*.*", "C:\wallpaper")
Func _FileCopy($Source, $Dest)
If Not FileExists($Dest) Then DirCreate($Dest)
$WinShell = ObjCreate("shell.application")
$WinShell.NameSpace($Dest).CopyHere($Source)
EndFuncЦитата:
второй очень срочный - есть ли скрипт позволяющий работать с Listview,
как с листом ексель, т.е. вводить данные с клавиатуры во все колонки, редактировать и т.д.
Ну как в Excel вряд ли, но в справке есть примеры редактирования Item-ов, вот немного изменённый пример из справки:
Код:
Код: Выделить всё
#include
#include
$Gui = GUICreate("Test", 300, 200)
$hListView = _GUICtrlListView_Create($GUI, "Items|SubItems", 2, 2, 296, 196, BitOR($LVS_EDITLABELS, $LVS_REPORT))
_GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
$ListItem1 = _GUICtrlListView_AddItem($hListView, "Item1")
$ListItem2 = _GUICtrlListView_AddItem($hListView, "Item2")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $hListView
If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $LVN_BEGINLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Return False
Case $LVN_ENDLABELEDIT
Local $tInfo = DllStructCreate($tagNMLVDISPINFO, $ilParam)
Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text"))
If StringLen(DllStructGetData($tBuffer, "Text")) Then Return True
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFuncrimm
Цитата:
кто может помочь с английским переводом описаний функций "Автоматизация MS Internet Explorer"
А какая именно функция не понятна?
P.S.
Переводить на русский все функции, вряд-ли кто будет, так, как на это нужно время, а по отдельным, спрашивай, чем сможем поможем.

-
Vikma19