请问各位 AU3 能把搜索到的文件字符串存放在一个数组里吗?
一般的搜索文件都是把搜索结果写入到TXT中来存放;那么能直接存放到数组中呢?例如这样
Local $hSearch = FileFindFirstFile("*.*")
; 检查搜索是否成功
If $hSearch = -1 Then
MsgBox(4096, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
Local $sFile = FileFindNextFile($hSearch)//开始搜索 - 这里能否把搜索到的所有文件存放到一个数组里面呢?应该怎么做呢?
If @error Then ExitLoop//如果空目录就退出循环
MsgBox(4096, "找到的文件:", $sFile) //返回显示搜索到的文件名
WEnd
; 关闭搜索句柄
FileClose($hSearch) 用一个变量 $sFiles 持续连接新的文件名,比如 $sFiles &= '|' & $sFile
最末用相关函数分割一下就行了。
如果先声明一个数组再即时赋值给其元素也行,只不过大小需要在需要的时候进行 ReDim 调整。 回复 1# 不死帝国
这么做会弹死你的 回复 3# netegg
我用意不在MSGBOX。。。元老;你懂我的意思吗? 回复 2# afan
我想以例如:$sFiles[] 这种方式存放;以后调用时就直接 $sFiles ;$sFiles ...
看帮助文档都是静态的数组,所以不明白怎么动态数组把搜索到的字符信息存入一个动态数组变量里 楼主看来够狠,似乎必须上全代码才行?
我替2楼A大流汗了! 楼主看来够狠,似乎必须上全代码才行?
我替2楼A大流汗了!
user3000 发表于 2014-1-9 19:40 http://www.autoitx.com/images/common/back.gif
看TA的眼神就知道够狠,还很严肃… 回复 7# afan
绝对没有我的眼神萌可爱吧?哈哈 二楼大神的意思我是知的;是把变量内的每循环一次就放入到一个新变量里存着;如此下去...我是想知道有没有变量数组这种东西,例如 delphi 声明一个数组字符串变量那样;谢谢大家
如:
var
List:TStringAydArray; //这就是一个数组变量;不知AU3上是如何 Local $hSearch = FileFindFirstFile("*.*"), $sAll = ''
; 检查搜索是否成功
If $hSearch = -1 Then
MsgBox(4096, "错误", "没有文件/目录 匹配搜索")
Exit
EndIf
While 1
Local $sFile = FileFindNextFile($hSearch)
If @error Then ExitLoop
$sAll &= '|' & $sFile
WEnd
FileClose($hSearch)
If $sAll = '' Then Exit
Local $aFiles = StringSplit($sAll, '|', 2) ;这里直接得到数组了
$aFiles = UBound($aFiles) - 1
#include <Array.au3>
_ArrayDisplay($aFiles, '') 回复 10# afan
首先谢谢大神解答;虽然是目的是达到;原来AU3没有数组变量;还是要自己去让它变成数组。
我一直以为会像 delphi ;C++ 之类可以直接声明一个数组变量直接可以把字符串放到里面。 回复afan
首先谢谢大神解答;虽然是目的是达到;原来AU3没有数组变量;还是要自己去让它变成数 ...
不死帝国 发表于 2014-1-10 19:10 http://www.autoitx.com/images/common/back.gif
那就是2#的下面那种方式…
Dim $a
...
$a = file
...
$a = file
Redim $a 回复 11# 不死帝国
语言之间是会有些不一样的 习惯了什么就会惯用那种思维 dim $x =1
dim $a = $x
.......
$x+=1
redim $a=$x
剩下的自己处理 _FileListToArray 不知道这个行不行
页:
[1]