找回密码
 加入
搜索
查看: 2201|回复: 5

[AU3基础] 【已解决】函数入参包含数组的情况如何处理

  [复制链接]
发表于 2011-8-23 18:55:21 | 显示全部楼层 |阅读模式
本帖最后由 xiehuahere 于 2011-8-23 20:24 编辑

譬如,我自定义一个函数:
FtpPutFile($HostIP, $SrcFilePath, $DesFilePath)

要支持传输一个文件和多个文件的情况,即需要函数入参 $SrcFilePath, $DesFilePath 使用数组形式,如何处理呢?

基础问题,请知道的不吝赐教。。。
我是思路是这样的:
先用 IsArray 判断参数是否是数组。
如果不是,就按一个文件的情况来处理;如果是,就循环调用 _FTP_FilePut() 来处理。
不知道是否正确。
发表于 2011-8-23 19:07:44 | 显示全部楼层
你为什么不先试一下呢????

统一形式更好,直接传数组。若只有一个,就放在$SrcFilePath[0]里,然后用
for $i=0 to UBound($SrcFilePath) - 1
    ;......
next
 楼主| 发表于 2011-8-23 19:17:45 | 显示全部楼层
回复 2# happytc


    谢谢!
   提问的时候还没有思路,思路是后补充上去的,来自于:
http://www.autoitx.com/forum.php ... A%FD%2B%CA%FD%D7%E9
三楼

但我还是觉得只有一个 $SrcFilePath[0] 比较丑陋。判断一下,调用的时候可以更灵活。
见仁见智吧~~
 楼主| 发表于 2011-8-23 19:30:58 | 显示全部楼层
本帖最后由 xiehuahere 于 2011-8-23 19:32 编辑

先别走,关于数组,请教如下一个问题:
Const $fileArray[2] = ['test1.txt', 'test2.txt']
$srcFilePath[2] = [ @ScriptDir & '\' & $fileArray[0], @ScriptDir & '\' & $fileArray[1] ]


$srcFilePath 这样定义会报语法错误,不能在[ ] 里面使用变量。

只能这样一个个地赋值,或者用循环(也是分别赋值的)??
Dim $srcFilePath[2]
$srcFilePath[0] = @ScriptDir & '\' & $fileArray[0]
$srcFilePath[1] = @ScriptDir & '\' & $fileArray[1]
发表于 2011-8-23 19:38:04 | 显示全部楼层
先别走,关于数组,请教如下一个问题:


$srcFilePath 这样定义会报语法错误,不能在[ ] 里面使用变量。 ...
xiehuahere 发表于 2011-8-23 19:30


你搞笑了,你定义了Const了,又去赋值?那又何必Const呢?
Local $srcFilePath[2] = [ @ScriptDir & '\' & $fileArray[0], @ScriptDir & '\' & $fileArray[1] ]
 楼主| 发表于 2011-8-23 19:45:01 | 显示全部楼层
本帖最后由 xiehuahere 于 2011-8-23 19:48 编辑

回复 5# happytc

你的的确可以。
我明白了,不是Const的问题,是要在 $srcFilePath 前面加上 Local 或 Global 或 Dim 这些关键字这样才能定义数组。
Const $fileArray[2] = [ 'FwuVersCtrl.txt', 'FwuDownCtrl.txt' ]
Global $srcFilePath[2] = [ @ScriptDir & '\' & $fileArray[0], @ScriptDir & '\' & $fileArray[1] ]
关键是这个,呵呵。对吧?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 19:37 , Processed in 0.079306 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表