找回密码
 加入
搜索
查看: 4333|回复: 10

[AU3基础] 请教三个数组数据总和问题[已解决]

  [复制链接]
发表于 2011-5-9 18:08:02 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2011-5-11 09:35 编辑

三个数组相加为什么不成功呢?请大侠们指点下。
#include <file.au3>
#Include <Array.au3>

$m1="c:\windows\Temp"
$m2="C:\123"
$m3="C:\WINDOWS\Prefetch"

$lb1=_FileListToArray($m1)  ;数组1
$lb2=_FileListToArray($m2)   ;数组2
$lb3=_FileListToArray($m3)    ;数组3

_ArrayDisplay($lb1,0) ;显示数组1
_ArrayDisplay($lb2,0) ;显示数组2
_ArrayDisplay($lb3,0) ;显示数组3

;显示三个数组的和
_ArrayAdd($lb1,$lb2)
_ArrayAdd($lb1,$lb3)
_ArrayDisplay($lb1,0)
 楼主| 发表于 2011-5-9 18:13:37 | 显示全部楼层
另外数组获取的文件名字可不可以返回完整路径呢?如图:


新建文件夹和新建文件夹2,这样的文件名,如何返回“c:\window\tem\新建文件夹”这样的完整路径呢,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-5-9 18:19:40 | 显示全部楼层
用_ArrayConcatenate
_ArrayAdd是向数组添加元素
 楼主| 发表于 2011-5-9 18:22:08 | 显示全部楼层
哦,谢谢,我试下
发表于 2011-5-9 19:02:11 | 显示全部楼层
#include <file.au3>
#Include <Array.au3>

$m1="c:\windows\Temp"
$m2=@TempDir
$m3="C:\WINDOWS\"

$lb1=_FileListToArray($m1)  ;数组1
$lb2=_FileListToArray($m2)   ;数组2
$lb3=_FileListToArray($m3)    ;数组3

_ArrayDisplay($lb1,1) ;显示数组1
$lb1=_ArrayMemeberInsert($lb1,$m1&"\")
_ArrayDisplay($lb1,"1_1") ;显示数组1
_ArrayDisplay($lb2,2) ;显示数组2
$lb2=_ArrayMemeberInsert($lb2,$m2&"\")
_ArrayDisplay($lb2,"2_2") ;显示数组2
_ArrayDisplay($lb3,3) ;显示数组3
$lb3=_ArrayMemeberInsert($lb3,$m3)
_ArrayDisplay($lb3,"3_3") ;显示数组2

;显示三个数组的和
_ArrayConcatenate($lb1,$lb2)
_ArrayConcatenate($lb1,$lb3)
_ArrayDisplay($lb1,"All")

;   数组元素插入字符串    要插入的数组   插入的字符串    方向 0为左 1为右  从第几个元素开始。
Func _ArrayMemeberInsert($__Array="",$__InsertString="",$__Direction=0,$__StartMember=1)
        If $__Array="" Then Return
        For $i=$__StartMember To UBound($__Array)-1 Step 1
                Switch $__Direction
                        Case 0
                                $__Array[$i]=$__InsertString&$__Array[$i]
                        Case 1
                                $__Array[$i]=$__Array[$i]&$__InsertString
                        Case Else
                                ExitLoop
                EndSwitch
        Next
        Return $__Array
EndFunc

                
        
发表于 2011-5-9 20:29:41 | 显示全部楼层
回复 2# m765555
$a = FileGetLongName(@HomeDrive & "\PROGRA~1")
msgbox(0,"长文件名", $a)
 楼主| 发表于 2011-5-10 08:19:06 | 显示全部楼层
5楼的代码不错,但是还是没有成功返回数组之和
_ArrayDisplay($lb1,"All")并没有返回数组全部,只是返回了数组1的数据
 楼主| 发表于 2011-5-10 08:22:14 | 显示全部楼层
再次请教各位一下,昨天我试了一下_ArrayConcatenate函数,最后代码如下:
_ArrayConcatenate($lb1,$lb2)
_ArrayConcatenate($lb1,$lb3)
_ArrayDisplay($lb1,0)     这什么这里返回的是总的数组维数,我要的是数组所有数据啊,还是没有搞明白,哎
发表于 2011-5-10 09:37:09 | 显示全部楼层
回复 8# m765555
这不就是你要的效果吗?
#Include <Array.au3>
Global $avArray1[3] = ['数组1 - 1', '数组1 - 2', '数组1 - 3']
Global $avArray2[3] = ['数组2 - 1', '数组2 - 2', '数组2 - 3']
_ArrayConcatenate($avArray1, $avArray2)
_ArrayDisplay($avArray1)
发表于 2011-5-10 10:26:48 | 显示全部楼层
再次请教各位一下,昨天我试了一下_ArrayConcatenate函数,最后代码如下:
_ArrayConcatenate($lb1,$lb2)
...
m765555 发表于 2011-5-10 08:22

_ArrayConcatenate($lb1,$lb2,1)
串联两个数组.
_ArrayConcatenate(ByRef $avArrayTarget, Const ByRef $avArraySource [, $iStart = 0]))
参数
$avArrayTarget
目标数组
$avArraySource
来源数组
$iStart
[可选]源数组首个值的索引(默认为0)
 楼主| 发表于 2011-5-10 11:26:53 | 显示全部楼层
谢谢各位,问题已解决,郁闷得很,代码和原来一样,不知道什么原因造成的,哎!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 06:26 , Processed in 0.108286 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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