Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


EgOrus,
Во-первых я бы не стал пользоваться «Opt("ExpandEnv/VarStrings", 1)», значительно замедляет обработку строк.

Можно перебирать сразу нужные маски...

Код: Выделить весь код
_ListFiles('*.doc|*.xls|*.ppt', @WindowsDir & '\Temp\files.tmp')

Func _ListFiles($sMasks, $sFile)
    ;Получаем буквы имеющихся жёстких дисков
    Local $aDrives = DriveGetDrive("FIXED")
    If @error Then Exit

    ;Если файл не существует, пишем в него типа сигнатуру для UTF-8 :)
    If Not FileExists($sFile) Then FileClose(FileOpen($sFile, 2 + 128))

    Local $hFileOpen = FileOpen($sFile, 1 + 64)
    Local $sDirList, $sDirMaskList

    For $i = 1 To $aDrives[0]
        ;Получаем строку с текущим диском и всеми масками
        $sDirMaskList = '"' & $aDrives[$i] & '\' & StringReplace($sMasks, '|', '" "' & $aDrives[$i] & '\') & '"'
        If @extended = 0 Then $sDirMaskList = '"' & $aDrives[$i] & '\' & $sMasks & '"'

        ;Получаем листинг файлов для текущих расширении на текущем диске
        $sDirList = _DirList($sDirMaskList)

        ;Заполняем файл со списком из листинга
        FileWrite($hFileOpen, $sDirList)
    Next

    FileClose($hFileOpen)
EndFunc

Func _DirList($sPath)
    Local $iStdOut = Run(@Comspec & ' /c chcp 1251 | dir ' & $sPath & ' /s /b', '', '', 6)
    Local $sStdOutRead = ""

    While 1
        $sStdOutRead &= StdoutRead($iStdOut)
        If @error Then ExitLoop
    Wend

    Return $sStdOutRead
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Последний раз редактировалось Creat0R, 08-05-2008 в 01:44. Причина: Поправил код, забыл про проблему с кодировкой :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:21, 08-05-2008 | #497