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

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

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

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

ynbIpb



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
Func _FILESEARCH($SPATH, $SFILTER = "*.*", $IFLAG = 0, $SEXCLUDE = "", $IRECURSE = True)
    If Not FileExists($SPATH) Then Return SetError(1, 1, "")
    If $SFILTER = -1 Or $SFILTER = Default Then $SFILTER = "*.*"
    If $IFLAG = -1 Or $IFLAG = Default Then $IFLAG = 0
    If $SEXCLUDE = -1 Or $SEXCLUDE = Default Then $SEXCLUDE = ""
    Local $ABADCHAR[6] = ["\", "/", ":", ">", "<", "|"]
    $SFILTER = StringRegExpReplace($SFILTER, "\s*;\s*", ";")
    If StringRight($SPATH, 1) <> "\" Then $SPATH &= "\"
    For $ICC = 0 To 5
        If StringInStr($SFILTER, $ABADCHAR[$ICC]) Or StringInStr($SEXCLUDE, $ABADCHAR[$ICC]) Then Return SetError(2, 2, "")
    Next
    If
StringStripWS($SFILTER, 8) = "" Then Return SetError(2, 2, "")
    If Not ($IFLAG = 0 Or $IFLAG = 1 Or $IFLAG = 2) Then Return SetError(3, 3, "")
    Local $HOUTFILE = @TempDir & "\winsetup" & Random(10, 9999, 1) & ".tmp"
    If Not StringInStr($SFILTER, ";") Then $SFILTER &= ";"
    Local $ASPLIT = StringSplit(StringStripWS($SFILTER, 8), ";"), $SREAD, $SHOLDSPLIT
    For $ICC = 1 To $ASPLIT[0]
        If StringStripWS($ASPLIT[$ICC], 8) = "" Then ContinueLoop
        If
StringLeft($ASPLIT[$ICC], 1) = "." And UBound(StringSplit($ASPLIT[$ICC], ".")) - 2 = 1 Then $ASPLIT[$ICC] = "*" & $ASPLIT[$ICC]
        $SHOLDSPLIT &= '"' & $SPATH & $ASPLIT[$ICC] & '" '
    Next
    $SHOLDSPLIT = StringTrimRight($SHOLDSPLIT, 1)
    If $IRECURSE Then
        RunWait(@ComSpec & " /c dir /b /s /a " & $SHOLDSPLIT & ' > "' & $HOUTFILE & '"', "", @SW_HIDE)
    Else
        RunWait(@ComSpec & " /c dir /b /a " & $SHOLDSPLIT & ' /o-e /od > "' & $HOUTFILE & '"', "", @SW_HIDE)
    EndIf
    $SREAD &= FileRead($HOUTFILE)
    If Not FileExists($HOUTFILE) Then Return SetError(4, 4, "")
    FileDelete($HOUTFILE)
    If StringStripWS($SREAD, 8) = "" Then SetError(4, 4, "")
    Local $AFSPLIT = StringSplit(StringTrimRight(StringStripCR($SREAD), 1), @LF)
    Local $SHOLD, $A_ANSIFNAME
    For $ICC = 1 To $AFSPLIT[0]
        $A_ANSIFNAME = DllCall("user32.dll", "Int", "OemToChar", "str", $AFSPLIT[$ICC], "str", "")
        If @error = 0 Then $AFSPLIT[$ICC] = $A_ANSIFNAME[2]
        If $SEXCLUDE And StringLeft($AFSPLIT[$ICC], StringLen(StringReplace($SEXCLUDE, "*", ""))) = StringReplace($SEXCLUDE, "*", "") Then ContinueLoop
        Switch
$IFLAG
            Case 0
                $SHOLD &= $AFSPLIT[$ICC] & Chr(1)
            Case 1
                If StringInStr(FileGetAttrib($SPATH & "\" & $AFSPLIT[$ICC]), "d") = 0 And StringInStr(FileGetAttrib($AFSPLIT[$ICC]), "d") = 0 Then
                    If
StringRegExp($AFSPLIT[$ICC], "\w:\\") = 0 Then
                        $SHOLD &= $SPATH & $AFSPLIT[$ICC] & Chr(1)
                    Else
                        $SHOLD &= $AFSPLIT[$ICC] & Chr(1)
                    EndIf
                EndIf
            Case 2
                If StringInStr(FileGetAttrib($SPATH & "\" & $AFSPLIT[$ICC]), "d") Or StringInStr(FileGetAttrib($AFSPLIT[$ICC]), "d") Then
                    If StringRegExp($AFSPLIT[$ICC], "\w:\\") = 0 Then
                        $SHOLD &= $SPATH & $AFSPLIT[$ICC] & Chr(1)
                    Else
                        $SHOLD &= $AFSPLIT[$ICC] & Chr(1)
                    EndIf
                EndIf
        EndSwitch
    Next
    If StringTrimRight($SHOLD, 1) Then Return StringSplit(StringTrimRight($SHOLD, 1), Chr(1))
    Return SetError(4, 4, "")
EndFunc

Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 20:23 23-03-2010 | Исправлено: ynbIpb, 20:34 23-03-2010
   

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

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru