Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Прогресс-бар для скрипта (http://forum.oszone.net/showthread.php?t=243124)

Tosyk 21-09-2012 15:56 1992598

Прогресс-бар для скрипта
 
Приветствую уважаемые.

Подскажите как интегрировать прогресс-бар в скрипт:

Код:

#Include <File.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $i
Local $sSourceFile, $sDestFile
Local $sDrive, $sFolder, $sFileName, $sExt

Local $sPattern = "\.(?i:tga|jpg|bmp|dds|png|tif|jpeg)"


If $CmdLine[0] <> 0 Then
        If FileInstall("convert.exe", @TempDir & "\", 1) = 1 Then
                For $i = 1 To $CmdLine[0]
                        $sSourceFile = $CmdLine[$i]

                        If FileExists($sSourceFile) Then
                                _PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)

                                If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
                                        $sDestFile = _PathMake($sDrive, $sFolder, $sFileName, ".png")

                                        RunWait("""" & @TempDir & "\convert.exe"" """ & $sSourceFile & """ -set colorspace RGB """ & $sDestFile & """", @TempDir, @SW_HIDE)
                                Else
                                        ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
                                EndIf
                        Else
                                ConsoleWriteError("File [" & $sSourceFile & "] not found" & @CRLF)
                        EndIf
                Next

                If FileExists(@TempDir & "\convert.exe") = 1 Then
                        FileDelete(@TempDir & "\convert.exe")
                EndIf
        Else
                ConsoleWriteError("Can't extract [convert.exe] into [" & @TempDir & "]" & @CRLF)
        EndIf
Else
        MsgBox(0, "Usage", @ScriptName & " <file>")
        ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf

Exit(0)

иногда бывает несколько тысяч файлов для конвертирования и хочется показать пользователю почему всё тупит

Iska 21-09-2012 16:15 1992611

Tosyk, у Вас будет консольный или GUI-вариант исполняемого файла?

Tosyk 21-09-2012 16:37 1992624

вообще что-то типа: кидаем на exe несколько файлов (или один) — открывается окошко с прогресс-баром, в котором помимо самого ползунка - бара под ним есть имя файла, который в данный момент конвертируется и цифры (ОСТАЛОСЬ/ВСЕГО), но это в идеале. Это только мои мысли, возможно этого всего реализовать не возможно.

Iska 21-09-2012 16:56 1992640

Tosyk, это не ответ на заданный мною вопрос.

Tosyk 21-09-2012 17:12 1992658

Цитата:

Цитата Iska
это не ответ на заданный мною вопрос. »

прошу прощения, я подумал объяснение того чего я хочу будет достаточно.

Вообще конечно было бы круто объединить все функции в один UI: кидаем файлы на .exe и открывается окно, в котором ставим галки напротив функций (некоторые галки стоят по-умолчанию), которые нужно применить к группе файлам, а если у функций есть параметры то изменяем их.

но это из области фантастики конечно

Iska 21-09-2012 22:19 1992808

Цитата:

Цитата Tosyk
я подумал объяснение того чего я хочу будет достаточно. »

И этот — тоже. Я умолкаю.

Tosyk 22-09-2012 05:44 1992878

Цитата:

Цитата Iska
И этот — тоже. Я умолкаю. »

значит ли это, что не поможете мне?

Iska 22-09-2012 07:36 1992884

Цитата:

Цитата Tosyk
значит ли это, что не поможете мне? »

Да.

Косвенно можно составить представление, что подразумевалось GUI. Это ладно, но речь теперь заходит ещё и о некоем дополнительном интерфейсе, а это мне и вовсе не интересно, коллега.

Tosyk 22-09-2012 14:37 1993016

по сабжу нужно было только это:
Цитата:

Цитата Tosyk
кидаем на exe несколько файлов (или один) — открывается окошко с прогресс-баром, в котором помимо самого ползунка - бара под ним есть имя файла, который в данный момент конвертируется и цифры (ОСТАЛОСЬ/ВСЕГО) »

и это всё

Iska 23-09-2012 06:18 1993373

Tosyk, попробуйте так:
читать дальше »
Код:

#Include <File.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $i
Local $sSourceFile, $sDestFile
Local $sDrive, $sFolder, $sFileName, $sExt

Local $sPattern = "\.(?i:tga|jpg|bmp|dds|png|tif|jpeg)"


If $CmdLine[0] <> 0 Then
        If FileInstall("convert.exe", @TempDir & "\", 1) = 1 Then
                ProgressOn("Converting", "", "0%")

                For $i = 1 To $CmdLine[0]
                        $sSourceFile = $CmdLine[$i]

                        ProgressSet(($i / $CmdLine[0]) * 100, $sSourceFile, String(Round($i / $CmdLine[0] * 100, 1)) & "%")

                        If FileExists($sSourceFile) Then
                                _PathSplit($sSourceFile, $sDrive, $sFolder, $sFileName, $sExt)

                                If StringRegExp($sExt, "\A" & $sPattern & "\z", 0) = 1 Then
                                        $sDestFile = _PathMake($sDrive, $sFolder, $sFileName, ".png")

                                        RunWait("""" & @TempDir & "\convert.exe"" """ & $sSourceFile & """ -set colorspace RGB """ & $sDestFile & """", @TempDir, @SW_HIDE)
                                Else
                                        ConsoleWriteError("Extension of file [" & $sSourceFile & "] is [" & $sExt & "] and not in [" & $sPattern & "]" & @CRLF)
                                EndIf
                        Else
                                ConsoleWriteError("File [" & $sSourceFile & "] not found" & @CRLF)
                        EndIf
                Next

                ProgressSet(100 , "Converting complete", "100%")

                If FileExists(@TempDir & "\convert.exe") = 1 Then
                        FileDelete(@TempDir & "\convert.exe")
                EndIf

                Sleep(1000)
                ProgressOff()
        Else
                ConsoleWriteError("Can't extract [convert.exe] into [" & @TempDir & "]" & @CRLF)
        EndIf
Else
        MsgBox(0, "Usage", @ScriptName & " <file>")
        ConsoleWrite("Usage: " & @ScriptName & " <file>" & @CRLF)
EndIf

Exit(0)


Tosyk 23-09-2012 11:04 1993417

Цитата:

Цитата Iska
попробуйте так: »

отлично работает, спасибо!


Время: 00:52.

Время: 00:52.
© OSzone.net 2001-