不死帝国 发表于 2014-1-9 13:47:08

请问各位 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)

afan 发表于 2014-1-9 14:19:26

用一个变量 $sFiles 持续连接新的文件名,比如 $sFiles &= '|' & $sFile
最末用相关函数分割一下就行了。

如果先声明一个数组再即时赋值给其元素也行,只不过大小需要在需要的时候进行 ReDim 调整。

netegg 发表于 2014-1-9 14:28:17

回复 1# 不死帝国
这么做会弹死你的

不死帝国 发表于 2014-1-9 15:25:09

回复 3# netegg


    我用意不在MSGBOX。。。元老;你懂我的意思吗?

不死帝国 发表于 2014-1-9 15:29:21

回复 2# afan


    我想以例如:$sFiles[] 这种方式存放;以后调用时就直接 $sFiles ;$sFiles ...

看帮助文档都是静态的数组,所以不明白怎么动态数组把搜索到的字符信息存入一个动态数组变量里

user3000 发表于 2014-1-9 19:40:22

楼主看来够狠,似乎必须上全代码才行?
我替2楼A大流汗了!

afan 发表于 2014-1-9 20:12:58

楼主看来够狠,似乎必须上全代码才行?
我替2楼A大流汗了!
user3000 发表于 2014-1-9 19:40 http://www.autoitx.com/images/common/back.gif


    看TA的眼神就知道够狠,还很严肃…

xms77 发表于 2014-1-9 21:53:43

回复 7# afan
绝对没有我的眼神萌可爱吧?哈哈

不死帝国 发表于 2014-1-10 14:03:23

二楼大神的意思我是知的;是把变量内的每循环一次就放入到一个新变量里存着;如此下去...我是想知道有没有变量数组这种东西,例如 delphi 声明一个数组字符串变量那样;谢谢大家

如:

var
List:TStringAydArray; //这就是一个数组变量;不知AU3上是如何

afan 发表于 2014-1-10 14:33:22

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, '')

不死帝国 发表于 2014-1-10 19:10:01

回复 10# afan


    首先谢谢大神解答;虽然是目的是达到;原来AU3没有数组变量;还是要自己去让它变成数组。
我一直以为会像 delphi ;C++ 之类可以直接声明一个数组变量直接可以把字符串放到里面。

afan 发表于 2014-1-10 19:13:09

回复afan


    首先谢谢大神解答;虽然是目的是达到;原来AU3没有数组变量;还是要自己去让它变成数 ...
不死帝国 发表于 2014-1-10 19:10 http://www.autoitx.com/images/common/back.gif


    那就是2#的下面那种方式…

Dim $a
...
$a = file
...
$a = file
Redim $a

魔导 发表于 2014-1-10 22:20:23

回复 11# 不死帝国


    语言之间是会有些不一样的   习惯了什么就会惯用那种思维

netegg 发表于 2014-1-15 16:14:38

dim $x =1
dim $a = $x
.......
$x+=1
redim $a=$x
剩下的自己处理

骗子 发表于 2014-1-15 21:37:10

_FileListToArray 不知道这个行不行
页: [1]
查看完整版本: 请问各位 AU3 能把搜索到的文件字符串存放在一个数组里吗?