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

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

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

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

   

AZJIO



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

Код:
;#Include <File.au3>
#include <WindowsConstants.au3>
;#include <GUIConstants.au3>
AutoItSetOption("TrayIconHide", 1) ;скрыть в системной панели индикатор AutoIt
Global $Stack[50]
Global $Stack1[50]
 
GUICreate("Сортировка по расширению",440,90, -1, -1, -1, $WS_EX_ACCEPTFILES) ; размер окна
$tab=GUICtrlCreateTab (0,0, 440,90) ; размер вкладки
 
$tab3=GUICtrlCreateTabitem ("") ; имя вкладки
GUICtrlCreateLabel ("Путь к каталогу (используйте drag-and-drop)", 20,10,400,20)
$inputsh=GUICtrlCreateInput ("", 20,30,400,22)
GUICtrlSetState(-1,8)
 
$Label000=GUICtrlCreateLabel ('Строка состояния', 20,60,200,20)
$startsh=GUICtrlCreateButton ("Сортировать", 340,60,90,22)
 
GUICtrlCreateTabitem ("")   ; конец вкладок
 
GUISetState ()
 
While 1
 $msg = GUIGetMsg()
   Select
    Case
$msg = $startsh
      $inputsh0
=GUICtrlRead ($inputsh)
    ; поиск файлов
    GUICtrlSetData($Label000, 'Началось...')
    If FileExists($inputsh0) Then
      FileFindNextFirst($inputsh0)
      $aInputsh1 = StringRegExp($inputsh0, "(^.*)\\(.*)$", 3)
 
      While 1
         $tempname = FileFindNext()
         If $tempname = "" Then ExitLoop
         ; Отделить в массив путь и расширение
         $aPathname = StringRegExp($tempname, "(^.*)\\(.*)$", 3)
         $aRasshir = StringRegExp($tempname, "(^.*)\.(.*)$", 3)
         If @error=1 Then $aRasshir = StringRegExp('1.111', "(^.*)\.(.*)$", 3)
         If FileExists($aInputsh1[0]&'\root\'&$aRasshir[1]&'\'&$aPathname[1]) Then
            ; цикл проверки одноимённых файлов
            For $i=1 To 100
               $aName = StringRegExp($aPathname[1], "(^.*)\.(.*)$", 3)
               If @error=1 Then $aName = StringRegExp($aPathname[1]&'.111', "(^.*)\.(.*)$", 3)
               If FileExists($aInputsh1[0]&'\root\'&$aRasshir[1]&'\'&$aName[0]&'_'&$i&'.'&$aName[1]) Then
                  ContinueLoop
               Else

                  FileMove($tempname, $aInputsh1[0]&'\root\'&$aRasshir[1]&'\'&$aName[0]&'_'&$i&'.'&$aName[1], 8)
                  ExitLoop
               EndIf
            Next
         Else

            FileMove($tempname, $aInputsh1[0]&'\root\'&$aRasshir[1]&'\', 8)
         EndIf
      WEnd
     EndIf

    GUICtrlSetData($Label000, 'Выполнено...')
   Case $msg = -3
      ExitLoop
 EndSelect
WEnd

 
;======================================================================================================
; функция поиска всех файлов в каталоге

Func FileFindNextFirst($FindCat)
  $Stack[0] = 1
  $Stack1[1] = $FindCat
  $Stack
[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
  Return $Stack[$Stack[0]]
EndFunc   ;==>FileFindNextFirst
 
Func FileFindNext()
  While 1
    $file = FileFindNextFile($Stack[$Stack[0]])
    If @error Then
      FileClose($Stack[$Stack[0]])
      If $Stack[0] = 1 Then
        Return
""
      Else
        $Stack[0] -= 1
        ContinueLoop
      EndIf
    Else
      If
StringInStr(FileGetAttrib($Stack1[$Stack[0]] & "\" & $file), "D") > 0 Then
        $Stack[0] += 1
        $Stack1[$Stack[0]] = $Stack1[$Stack[0] - 1] & "\" & $file
        $Stack
[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
        ContinueLoop
      Else
        Return
$Stack1[$Stack[0]] & "\" & $file
      EndIf
    EndIf
  WEnd
EndFunc
  ;==>FileFindNext

Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 07:45 16-11-2009
   

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

Компьютерный форум 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