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

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

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

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

   

AZJIO



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

Цитата:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Global $Stack[50], $Stack1[50], $a, $BL, $List=''
 
GUICreate("Графический просмотр каталога", 380, 410, -1, -1, -1, 0x00000010)
$StatusBar = GUICtrlCreateLabel('Строка состояния            AZJIO 2010.06.16', 5, 410 - 20, 370, 20, $SS_LEFTNOWORDWRAP)
$CatchDrop = GUICtrlCreateLabel("    кинь сюда каталог", 0, 0, 380, 17, $SS_SUNKEN)
GUICtrlSetState(-1, 8)
$CatchDrop1 = GUICtrlCreateLabel("", 0, 20, 380, 360)
GUICtrlSetState(-1, 136)
$BL=GUICtrlCreateButton ("L", 360 ,24,18,18)
 
GUISetState()
 
While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = -13
            If StringInStr(FileGetAttrib(@GUI_DragFile), "D") = 0 Then
                MsgBox(0, "Мелкая ошибка", 'Перетаскивайте каталог, а не файл.')
                ContinueLoop
            Else
                GUICtrlDelete($CatchDrop1)
                ;GUICtrlDelete($BL)
                GUICtrlDelete($a)
                _Create()
            EndIf
        Case $msg = $BL
            MsgBox(0, 'Список файлов', $List)
        Case $msg = -3
            Exit
    EndSelect
WEnd
 
Func _Create()
    GUICtrlSetData($CatchDrop, @GUI_DragFile)
    $a = GUICtrlCreateGraphic(10, 20, 360, 360)
    GUICtrlSetState(-1, 8)
    ;подсчёт общего размера файлов
    FileFindNextFirst(@GUI_DragFile)
    $Size4=DirGetSize(@GUI_DragFile,2)
    $size4 = $Size4 / 360
    $Size = 0
    While 1
        $tempname = FileFindNext('', 0, 1)
        If $tempname = "" Then ExitLoop
        $Size5= FileGetSize($tempname)
        If $Size5<$size4 Then ContinueLoop
        $k=Floor($Size5/$size4)
        ;$Size5=$size4*$k
        $Size += $size4*$k
    WEnd
    $size2 = $Size / 360 ; количество байт приходящихся на один градус
 
    ;создание графика
    $nach = 0
    $kol000 = 0
    $List=''
    FileFindNextFirst(@GUI_DragFile)
    While 1
        $tempname = FileFindNext('', 0, 1)
        If $tempname = "" Then ExitLoop
        $Size5= FileGetSize($tempname)
        If $Size5<$size2 Then ContinueLoop
        $k=$Size5/$size4
        $grad = Floor($Size5/$size2) ; угол файла (ширина сектора)
 
        GUICtrlSetGraphic($a, $GUI_GR_COLOR, 0, Dec(Random(50, 99, 1) & Random(50, 99, 1) & Random(50, 99, 1))) ; цвет сектора
        GUICtrlSetGraphic($a, $GUI_GR_PIE, 180, 180, 180, $nach, $grad) ; создание сектора
        $kol000 += 1
        ; If $kol000<7 Then
            ; GUICtrlCreateLabel($kol000, (90+$kol000*14)*cos($nach)+190, (90+$kol000*14)*sin($nach)+200, 10, 14)
            ; GUICtrlSetTip(-1, $tempname)
        ; EndIf
        $nach += $grad ; начальный угол отсчёта (смещение, сдвиг)
        $List&=$kol000&') '&StringRegExpReplace($tempname, '(^.*)\\(.*)$', '\2')&@CRLF
    WEnd
    GUICtrlSetGraphic($a, $GUI_GR_REFRESH)
    GUICtrlSetData($StatusBar, 'Размер ' & Ceiling($Size / 1024 / 1024) & ' Мб    колич ' & $kol000 & '     путь ' & @GUI_DragFile)
    GUICtrlSetTip($CatchDrop,$List)
EndFunc   ;==>_Create
 
 
;========================================
; функция поиска всех файлов в каталоге (NIKZZZZ+мод_AZJIO)
 
Func FileFindNextFirst($FindCat)
    $Stack[0] = 1
    $Stack1[1] = $FindCat
    $Stack[1] = FileFindFirstFile($FindCat & "\*.*")
    Return $Stack[1]
EndFunc   ;==>FileFindNextFirst
 
Func FileFindNext($type = 'log', $mode = 0, $Level = 49)
    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
                If $Stack[0] = $Level Then ContinueLoop
                $Stack[0] += 1
                $Stack1[$Stack[0]] = $Stack1[$Stack[0] - 1] & "\" & $file
                $Stack[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
                If $mode = 2 Then
                    Return $Stack1[$Stack[0]]
                Else
                    ContinueLoop
                EndIf
            Else
                If $mode = 2 Then ContinueLoop
                If $mode = 1 Then
                    If StringInStr(';' & $type & ';', ';' & StringRight($Stack1[$Stack[0]] & "\" & $file, 3) & ';') = 0 Then
                        ContinueLoop
                    Else
                        Return $Stack1[$Stack[0]] & "\" & $file
                    EndIf
                Else
                    Return $Stack1[$Stack[0]] & "\" & $file
                EndIf
            EndIf
        EndIf
    WEnd
EndFunc   ;==>FileFindNext

Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 04:36 16-06-2010 | Исправлено: AZJIO, 09:23 16-06-2010
   

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

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