Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

NIKZZZZ



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
; #Example# *********************************************************************************************************************
;#cs
ConsoleWrite("Лоиск всех файлов и каталогов" & @CRLF)
$search = _FileFindFirstFile("c:\Program Files\Internet Explorer\*", 3)
If $search = -1 Then
    ConsoleWrite("No files/directories matched the search pattern" & @CRLF)
    Exit
EndIf
While 1
    $file = _FileFindNextFile($search)
    If @error Then ExitLoop
    ConsoleWrite("Find file -  " & $file & @CRLF)
WEnd
_FileFindClose($search)
;#ce
 
;#cs
ConsoleWrite("Лоиск .dll и .mui файлов c выводом полных путей" & @CRLF)
$search = _FileFindFirstFile("c:\Program Files\Internet Explorer\\.*\.(?:dll|mui)", 13)
If $search = -1 Then
    ConsoleWrite("No files/directories matched the search pattern" & @CRLF)
    Exit
EndIf
While 1
    $file = _FileFindNextFile($search)
    If @error Then ExitLoop
    ConsoleWrite("Find file -  " & $file & @CRLF)
WEnd
_FileFindClose($search)
;#ce
 
;********************************************************************************************************************************
 
; #INDEX# =======================================================================================================================
; Title .........: FileFind
; AutoIt Version : 3.2.3++
; Language ......: Русский
; Description ...: Поиск файлов, включая подкаталоги, синтаксис и возвращаемое значение в основном совпадают с FileFindFirstFile()
;                  и FileFindNextFile()
;                  в _FileFindFirstFile("filename" [,flag][,MaxLevel]) добавлены необязатенльные параметры
;                  flag=1 - поиск файлов
;                  flag=2 - поиск каталогов
;                  flag=4 - поиск по иаске регулярного выражения (перед именем файла "\" должжна удваиваться)
;                  flag=8 -  _FileFindNextFile выводит полный путь, вместо относительного, по умолчанию flag=3
;                  MaxLevel - максимальный уровень вложенности подкаталоглв, по умолчанию MaxLevel=9999
; Author(s) .....: Nikzzzz
; ===============================================================================================================================
 
Func _FileFindFirstFile($sFile, $iMode = 3, $iLevels = 9999)
    Local $avStack[6]
    $avStack[0] = 4
    $avStack[2] = $iMode
    $avStack[3] = $iLevels
    If Not BitAND($iMode, 4) Then
        $avStack[1] = StringMid($sFile, StringInStr($sFile, "\", 0, -1) + 1)
        $avStack[1] = StringRegExpReplace($avStack[1], "[\\\(\)\{\}\+\$\.]", "\\\0")
        $avStack[1] = StringReplace($avStack[1], "*", ".*")
        $avStack[1] = StringReplace($avStack[1], "?", ".")
        $avStack[4] = StringLeft($sFile, StringInStr($sFile, "\", 0, -1) - 1)
    Else
        $avStack[1] = StringMid($sFile, StringInStr($sFile, "\\", 0, -1) + 2)
        $avStack[4] = StringLeft($sFile, StringInStr($sFile, "\\", 0, -1) - 1)
    EndIf
    $avStack[5] = FileFindFirstFile($avStack[4] & "\*.*")
    If $avStack[5] = -1 Then
        SetError(1)
        Return -1
    EndIf
    Return $avStack
EndFunc   ;==>_FileFindFirstFile
 
Func _FileFindNextFile(ByRef $avStack)
    Local $sFindFile, $sFindFileFulName
    While 1
        $sFindFile = FileFindNextFile($avStack[$avStack[0] + 1])
        If Not @error Then
            If @extended Then
                $sFindFileFulName = $avStack[$avStack[0]] & "\" & $sFindFile
                If ($avStack[0] - 4) / 2 < $avStack[3] Then
                    $avStack[0] += 2
                    ReDim $avStack[$avStack[0] + 2]
                    $avStack[$avStack[0]] = $sFindFileFulName
                    $avStack[$avStack[0] + 1] = FileFindFirstFile($avStack[$avStack[0]] & "\*.*")
                EndIf
                If StringRegExpReplace($sFindFile, "(?i)" & $avStack[1], "", 1) = "" And BitAND($avStack[2], 2) Then
                    If BitAND($avStack[2], 8) Then
                        Return $sFindFileFulName
                    Else
                        Return StringMid($sFindFileFulName, StringLen($avStack[4]) + 2)
                    EndIf
                EndIf
                ContinueLoop
            Else
                If StringRegExpReplace($sFindFile, "(?i)" & $avStack[1], "", 1) = "" And BitAND($avStack[2], 1) Then
                    If BitAND($avStack[2], 8) Then
                        Return $avStack[$avStack[0]] & "\" & $sFindFile
                    Else
                        Return StringMid($avStack[$avStack[0]] & "\" & $sFindFile, StringLen($avStack[4]) + 2)
                    EndIf
                EndIf
                ContinueLoop
            EndIf
        Else
            If $avStack[0] = 4 Then
                SetError(-1)
                Return ""
            Else
                FileClose($avStack[$avStack[0] + 1])
                $avStack[0] -= 2
                ReDim $avStack[$avStack[0] + 2]
            EndIf
        EndIf
    WEnd
EndFunc   ;==>_FileFindNextFile
 
Func _FileFindClose(ByRef $avStack)
    Local $iRetVaue
    While $avStack[0] >= 4
        $iRetVaue = FileClose($avStack[$avStack[0] + 1])
        $avStack[0] -= 2
    WEnd
    ReDim $avStack[1]
    Return $iRetVaue
EndFunc   ;==>_FileFindClose

Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:11 28-09-2014 | Исправлено: NIKZZZZ, 08:19 29-09-2014
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
gyra (23-01-2020 10:51): AutoIT (Часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru