Автор Тема: [Файловая система] Вроде, проблема с GUI  (Прочитано 83 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн TotKtoNado96 [?]

  • Новичок
  • *
  • Сообщений: 5
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Для сортировки файлов. Что я делаю не так? есть другие идеи?


Код: AutoIt [Выделить]
#include <File.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Local $m1, $m2, $m3, $f1, $f2, $f3, $BtnOk, $msg, $sText

MsgBox (0, "enter filemasks", "три окна с вводом маски")

$hGui = GUICreate("GUI", 530, 160, @DesktopWidth / 2 - 190, @DesktopHeight / 2 - 80, -1, $WS_EX_ACCEPTFILES)
;маски
$m1 = GUICtrlCreateInput('маска1', 10, 5, 250, 20)
$m2 = GUICtrlCreateInput('маска2', 10, 30, 250, 20)
$m3 = GUICtrlCreateInput('маска3', 10, 55, 250, 20)
;папки
$f1 = GUICtrlCreateInput('папка1', 270, 5, 250, 20)
$f2 = GUICtrlCreateInput('папка2', 270, 30, 250, 20)
$f3 = GUICtrlCreateInput('папка3', 270, 55, 250, 20)

$BtnOk = GUICtrlCreateButton("OK", (380 - 70) / 2, 127, 70, 26)

While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $BtnOk
            $sText = 'Garaş'
    EndSwitch
WEnd
GUISetState()


$f = @ScriptDir ;папка, в которой искать
$f1_read = @ScriptDir & '/' & GuiCtrlRead($f1) ;пути к папкам, куда надо фасовать
$f2_read = @ScriptDir & '/' & GuiCtrlRead($f2)
$f3_read = @ScriptDir & '/' & GuiCtrlRead($f3)

$aFile = _FileListToArray($f, Default, 1)

If Not @error Then
    For $i = 1 To $aFile[0]
        If StringInStr($f&'\'&$aFile[$i], GuiCtrlRead($m1)) Then FileMove($f & '\' & $aFile[$i], $f1_read, 8)
        If StringInStr($f&'\'&$aFile[$i], GuiCtrlRead($m2)) Then FileMove($f & '\' & $aFile[$i], $f2_read, 8)
        If StringInStr($f&'\'&$aFile[$i], GuiCtrlRead($m3)) Then FileMove($f & '\' & $aFile[$i], $f2_read, 8)
    Next
EndIf


Русское сообщество AutoIt

[Файловая система] Вроде, проблема с GUI
« Отправлен: Январь 13, 2019, 16:02:25 »

Помечен как лучший ответ пользователем TotKtoNado96 Отправлен Январь 14, 2019, 10:36:23

Оффлайн ra4o [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 863
  • Репутация: 154
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: [Файловая система] Вроде, проблема с GUI
« Ответ #1, Отправлен: Январь 13, 2019, 22:30:56 »
Цитировать
Что я делаю не так?
"GUISetState()" не туда поставили , нужно перед циклом .
И то , что у Вас после цикла выполнится только в момент завершения работы скрипта (после закрытия окна GUI), если действие по кнопке "Ок" - "Garaş" это название функции, тогда как-то так:
Код: AutoIt [Выделить]
#include <File.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>

Local $m1, $m2, $m3, $f1, $f2, $f3, $BtnOk, $msg, $sText

MsgBox(0, "enter filemasks", "три окна с вводом маски")

$hGui = GUICreate("GUI", 530, 160, @DesktopWidth / 2 - 190, @DesktopHeight / 2 - 80, -1, $WS_EX_ACCEPTFILES)
;маски
$m1 = GUICtrlCreateInput('маска1', 10, 5, 250, 20)
$m2 = GUICtrlCreateInput('маска2', 10, 30, 250, 20)
$m3 = GUICtrlCreateInput('маска3', 10, 55, 250, 20)
;папки
$f1 = GUICtrlCreateInput('папка1', 270, 5, 250, 20)
$f2 = GUICtrlCreateInput('папка2', 270, 30, 250, 20)
$f3 = GUICtrlCreateInput('папка3', 270, 55, 250, 20)

$BtnOk = GUICtrlCreateButton("OK", (380 - 70) / 2, 127, 70, 26)
GUISetState()
While 1
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $BtnOk
            Garaş()
    EndSwitch
WEnd


Func Garaş()
    $f = @ScriptDir ;папка, в которой искать
    $f1_read = @ScriptDir & '/' & GUICtrlRead($f1) ;пути к папкам, куда надо фасовать
    $f2_read = @ScriptDir & '/' & GUICtrlRead($f2)
    $f3_read = @ScriptDir & '/' & GUICtrlRead($f3)

    $aFile = _FileListToArray($f, Default, 1)

    If Not @error Then
        For $i = 1 To $aFile[0]
            If StringInStr($f & '\' & $aFile[$i], GUICtrlRead($m1)) Then FileMove($f & '\' & $aFile[$i], $f1_read, 8)
            If StringInStr($f & '\' & $aFile[$i], GUICtrlRead($m2)) Then FileMove($f & '\' & $aFile[$i], $f2_read, 8)
            If StringInStr($f & '\' & $aFile[$i], GUICtrlRead($m3)) Then FileMove($f & '\' & $aFile[$i], $f2_read, 8)
        Next
    EndIf
EndFunc
 

OffTopicЭтот же вопрос и в другой теме...
« Последнее редактирование: Январь 13, 2019, 22:48:57 от ra4o »

Русское сообщество AutoIt

Re: [Файловая система] Вроде, проблема с GUI
« Ответ #1 Отправлен: Январь 13, 2019, 22:30:56 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
3 Ответов
6994 Просмотров
Последний ответ Март 24, 2010, 12:09:02
от Yashied
0 Ответов
5475 Просмотров
Последний ответ Февраль 09, 2011, 00:14:20
от `p r o x y
0 Ответов
3208 Просмотров
Последний ответ Июнь 30, 2012, 13:45:14
от Kreol2013
3 Ответов
2090 Просмотров
Последний ответ Сентябрь 15, 2012, 15:01:24
от SECTOR
3 Ответов
1724 Просмотров
Последний ответ Ноябрь 06, 2012, 23:05:41
от RMX
2 Ответов
2634 Просмотров
Последний ответ Ноябрь 27, 2012, 08:53:58
от Dm666
65 Ответов
36397 Просмотров
Последний ответ Январь 16, 2016, 15:55:06
от ra4o
0 Ответов
1744 Просмотров
Последний ответ Октябрь 07, 2013, 23:38:05
от CreatoR
9 Ответов
4225 Просмотров
Последний ответ Апрель 16, 2014, 13:38:36
от Коршун
3 Ответов
595 Просмотров
Последний ответ Октябрь 31, 2017, 07:03:10
от Anton1982