找回密码
 加入
搜索
查看: 3611|回复: 9

[AU3基础] 【已解决】一个数组a赋值给另外一个数组b中的一个元素,那b数组变成什么了

  [复制链接]
发表于 2010-12-15 11:36:44 | 显示全部楼层 |阅读模式
本帖最后由 binghc 于 2010-12-15 20:33 编辑


#include<array.au3>
Dim $a[2]=[23,56]
Dim $c[2]=[33,22]
Dim $b[3]
$b[0]=$a
$b[1]=$c
$b[2]=2
_ArrayDisplay($b)
_ArrayDisplay($b[0])
_ArrayDisplay($b[1])

要怎么样取得23这个元素?



    现在的情况是这样的:我是需要一个二维数组:多行多列
现在我只能确定它有多少行,但是无法确定它有多少列,而且每行的列数也可能不相等

举个实例,现在又三个txt文件,我要定义一个二维数组,数组的[0][0]存放文件名
另外分别把这三个txt文件的内容分解成行数组b,b数组长度的由这个文件行数决定

现在我要在这个数组的第一个位置【0】存放txt文件名,第二个位置存放【1】这个txt文件的内容(这是个数组,一个元素存放一行内容)

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-12-15 12:04:50 | 显示全部楼层
本帖最后由 蜘蛛抱蛋 于 2010-12-15 13:18 编辑

我记得帮助文件里说  用数组给另一个数组的元素赋值是很不明智的。
还是用二维数组吧
#include <array.au3>
Dim $a[3][2] = [[25,56],[33,22],[3,""]]
   _ArrayDisplay($a)
   MsgBox(0,"",$a[1][1])

回复 3# binghc
为什么不把内容一起放到二维数组里呢?$[0][0]和$[1][0]存放文件名   $[0][n]存放内容?
 楼主| 发表于 2010-12-15 12:46:36 | 显示全部楼层
回复 2# 蜘蛛抱蛋


    一楼更新问题补充
发表于 2010-12-15 13:15:30 | 显示全部楼层
#include<array.au3>
Dim $a[2] = [23, 56]
Dim $c[2] = [33, 22]
Dim $b[3]
$b[0] = $a
$b[1] = $c
$b[2] = 2
;_ArrayDisplay($b)
;_ArrayDisplay($b[0])
;_ArrayDisplay($b[1])
$tmp = $b[0]
MsgBox(0, '', $tmp[0])

评分

参与人数 1金钱 +30 贡献 +1 收起 理由
binghc + 30 + 1

查看全部评分

发表于 2010-12-15 13:54:33 | 显示全部楼层
莫非只是为了将文件内容存入数组?
如果是这样的话,不如用以下方法试试。
#include <array.au3>
#include <file.au3>

Local $file_array
$file_array=_FileListToArray('d:','*.txt')
For $i=1 To $file_array[0]
    $temp=FileRead('d:\'&$file_array[$i])
    If Not IsDeclared($file_array[$i]) Then Assign($file_array[$i],$temp)
Next

;以下为验证
For $i=1 To $file_array[0]
    MsgBox(4096,$file_array[$i],Eval($file_array[$i]))
Next

评分

参与人数 1金钱 +30 收起 理由
binghc + 30 看到了很多从来没用过的语句,学习了

查看全部评分

发表于 2010-12-15 14:17:27 | 显示全部楼层
#include<array.au3>
Dim $a[2]=[23,56]
Dim $c[2]=[33,22]
Dim $b[3]
$b[2] = 2

_ArrayConcatenate($b, $a) ;连接数组 A 到 B
_ArrayConcatenate($b, $c) ;连接数组 C 到 B 

_ArrayDisplay($b,"") ;列表显示

For $i = 0 To UBound($b)-1 ;遍历数组
        
        ConsoleWrite(@LF&$i&"-==>"& $b[$i] &"<==-" &@LF) 
        
Next

 _ArraySort($b)
$idx = _ArrayBinarySearch($b, "23") ;哈希匹配
If Not @error Then MsgBox(0,0, $b[$idx] )
发表于 2010-12-15 14:26:22 | 显示全部楼层
难不成要玩群论?累了
发表于 2010-12-15 15:11:28 | 显示全部楼层
本帖最后由 _ddqs. 于 2010-12-15 15:31 编辑

新问题上下好似有点对不上号( $Array[文件名][行号][列号] = "内容" )
难道你要象操作数据库一样操作数组( 移动 = 添加 + 删除 )

处理文件并内容到数组
Dim $F, $L, $C ,$fn ,$ln 

1.
文件名数组 $F = 遍历文件名


2。
遍历 $F
{        
        行数组$L = 遍历文件$F[$fn]
        {
        
                列数组 = 分割行$L[$ln]
                {
                
                
                }
                
        }        

}
 楼主| 发表于 2010-12-15 20:25:36 | 显示全部楼层
回复 4# afan


之前一只很纳闷_arraydisplay能显示元素,可却怎么也取不出里面的元素
   
感谢版主,这就是我想要的答案,Thank You!
 楼主| 发表于 2010-12-15 20:32:13 | 显示全部楼层
本帖最后由 binghc 于 2010-12-15 20:34 编辑

回复 8# _ddqs.


    还真被你说对了……一半,嘿嘿

最近在写一款纯正则处理的程序,用txt文件当数据库,不过是只读。(本人对数据库了解不多,没办法了)

刚好碰到这个问题
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 20:34 , Processed in 0.101591 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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