Что нового

[Массивы] _FileDirList в функции (Subscript used with non-Array variable)

toxa757

Новичок
Сообщения
1
Репутация
0
Есть часть кода. Прошу прощения за большое кол-во include
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <_FileDirList.au3>
#include <Array.au3>
#include <String.au3>
#include <File.au3>
#include <EditConstants.au3>


Global $input  
Global $files    


Local $Wind1, $msg, $b1,$i1
$Wind1 = GUICreate("title",500,250)
$b1=GUICtrlCreateButton ("Выбрать", 420,30,50,20)  ;;
GUISetState(@SW_SHOW,$Wind1)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
		Case $b1
			$input=FileSelectFolder ( "Путь к папке с файлами.", "" , 1+4 , $input )
            $files=_FileDirList ( $input ,".mpg")
			_ArrayDisplay($files)
			MsgBox(0,"", $files[1])
	EndSwitch
 WEnd

и пишет следующую ошибку
D:\test.au3 (27) :==> Subscript used with non-Array variable.:
GUICtrlSetData($l2, $files[0] )
GUICtrlSetData($l2, $files^ ERROR
НО если вынести _FileDirList из всего этого, то оно работает
Так же не работает если делать через функцию.
Нужно, что бы оно делалось в Case $b1
ПАМАГИТЕ!
Подскажите, как исправить.

UPD: нашёл косяк до этого. просьба не отвечать в теме. можно удалять
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
_FileReadToArray

_FileDirList это что такое?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
toxa757
Звездочку забыл. Да и проверку не мешало бы
Код:
$files=_FileDirList ($input, "*.mpg")
			If Not @error Then
			   _ArrayDisplay($files)			   
			Else 
			   MsgBox(48, "Инфо", "Файлы mpg не найдены")
			EndIf
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
toxa757
Кстати пример в FileSelectFolder есть.
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <Array.au3>
#include <FileOperations.au3>


$hGui = GUICreate('Функция FileSelectFolder')
$iButton = GUICtrlCreateButton('-', 10, 10, 21, 21, $BS_ICON)
GUICtrlSetImage(-1, @SystemDir & '\shell32.dll', 4, 0)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $iButton
			; пример с использованием GUI аналогичен для FileOpenDialog и FileSaveDialog
			$sPath = FileSelectFolder('Выберите папку', '', 3, @DesktopDir, $hGui)
			; продолжить цикл опроса от начала, если выбор отменён или объект не является папкой, например "Мой компьютер"
			If @error Or Not _FO_IsDir($sPath) Then ContinueLoop
			; MsgBox(4096, 'Выбрана папка', $sPath)
			$aFileList = _FO_FileSearch($sPath, '*.mpg')
			If @error Then ContinueLoop
			_ArrayDisplay($aFileList, 'файлы')
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 
Верх