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

[AU3基础] [已解决]文件读取并分割存入数组的实现

  [复制链接]
发表于 2011-1-1 21:31:43 | 显示全部楼层 |阅读模式
本帖最后由 lon91ong 于 2011-1-4 16:50 编辑

文本文件的格式如下:
坐标x,坐标y,颜色,延时,优先级
23,35.5,0x385D97,500,3
430,300,0x567D63,2000,2
......
行数不固定
希望能一行一行的读取到一个二维数组中,按","(逗号)分割!
$ary[0]=[坐标x,坐标y,颜色,延时,优先级]
$ary[1]=[23,35.5,0x385D97,500,3]
$ary[2]=[430,300,0x567D63,2000,2]
......
要如何实现呢?
请大侠帮忙,多谢大侠了!
 楼主| 发表于 2011-1-1 22:08:43 | 显示全部楼层
更具体点就是
$ary[0][0]=坐标x
$ary[0][1]=坐标y
$ary[0][2]=颜色
......
$ary[1][0]=23
......
 楼主| 发表于 2011-1-2 00:11:08 | 显示全部楼层
数组一维不固定,也就是文本行数不确定
二维固定,5个元素
发表于 2011-1-2 00:45:49 | 显示全部楼层


#include <Array.au3>
#Include <File.au3>
Dim $aFile,$aAll[1][1],$p = 0
_FileReadToArray("1.txt",$aFile )

For $i = 1 To $aFile[0]
        $p += 1
        $sLine = $aFile[$i]
        $aLine = StringSplit($sLine,",")
        
        ReDim $aAll[$p][$aLine[0]+1]
        For $o = 1 To $aLine[0]
                $aAll[$p-1][$o-1] = $aLine[$o]
        Next
Next
_ArrayDisplay($aAll)

评分

参与人数 1金钱 +10 收起 理由
lon91ong + 10 多谢!

查看全部评分

 楼主| 发表于 2011-1-2 11:34:33 | 显示全部楼层
多谢大侠了,帮了我大忙了!多谢!
 楼主| 发表于 2011-1-2 11:58:55 | 显示全部楼层
刚刚使用了一下,代码功能满足我的需要了!
但是希望加入一点功能,就是文本的每行末尾用几个TAB(制表符)隔开了,用";"开头些了一段注释,希望读取数组时能忽略掉,这个功能该怎么写呢?
294,243,0xFFD43F,500,3      ;伐木点
请大侠支招!多谢了!
 楼主| 发表于 2011-1-2 19:35:17 | 显示全部楼层
忽略行尾注释的功能我自己实现了,就是先用";"分割了一次,而后把第一部分再用","再分一次

现在又有新问题了, 怎么能忽略空行呢?
发表于 2011-1-2 20:45:35 | 显示全部楼层
我肯定你继续自己思考就可以解决这个问题的 加油

评分

参与人数 1金钱 +10 收起 理由
lon91ong + 10 多谢大侠的鼓励!想到了!

查看全部评分

 楼主| 发表于 2011-1-2 22:21:57 | 显示全部楼层
想到解决办法了,第一次用";"分割后,进行下一次分割前先判断一下数组长度就好了!

只是个想法,是否有效还有待验证!
发表于 2011-1-24 13:45:42 | 显示全部楼层
是的,加油,加油
发表于 2011-6-25 18:57:42 | 显示全部楼层
是的,加油,加油
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 04:02 , Processed in 0.087061 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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