【已解决】读取txt中指定的某行某列的数据
本帖最后由 zbezj 于 2014-11-29 23:35 编辑123
456
789
例如上面的内容,想把这九个数读取,并赋值到数组中。请教大神,应该怎么编写代码?谢谢!
感谢,afan大神的耐心指导。此外感谢netegg、xyold1提供意见。 在线等大神指点~~ 按行读取,正则分拆 回复 3# netegg
能提供下代码? 查了好多资料,正则弄不太明白。谢谢大侠! 那个中间的空格是固定一个?不用正则也行 回复 5# netegg 中间的空格,有好几个。但是个数是一样多的。这些数据是从Excel中复制到txt中的。
4.916094237 18.47223492 17.72360797 20.07765068 2.244682034
7.073194034 22.04562807 17.19103832 19.8221179 2.23423084
9.03093563 24.06295487 17.4786963 20.03798008 2.242400756
10.97421483 28.26196067 17.39201467 19.94261233 2.24527325 最想使用这种办法,但是代码估计更难写了:
1、建立一个ListView网格
2、将Excel中的 N行8列数据,直接复制到网格中。(但是我写的代码,ListView中的值是预先定义好的,不能像inputbox那样手动输入)
3、每个数据都赋值给一个变量(数组)。 复制成一维的还是二维的 回复 8# netegg
二维的。这些数据一共有8列,但是行数不确定。 本帖最后由 afan 于 2014-11-29 21:41 编辑
这数据格式很简单#include <Array.au3>
Local $c = 5 ;列数
Local $Str = _
'4.916094237 18.47223492 17.72360797 20.07765068 2.244682034 ' & @CRLF & _
'7.073194034 22.04562807 17.19103832 19.8221179 2.23423084 ' & @CRLF & _
'9.03093563 24.06295487 17.4786963 20.03798008 2.242400756 ' & @CRLF & _
'10.97421483 28.26196067 17.39201467 19.94261233 2.24527325'
Local $aSR = StringRegExp($Str, '\S+', 3)
If @error Or Not IsInt(UBound($aSR) / $c) Then Exit
Local $a[$c]
For $i = 0 To UBound($aSR) - 1
$a = $aSR[$i]
Next
_ArrayDisplay($a, UBound($a)) 回复 10# afan
谢谢大侠。但是我要实现的不是这个目的。
我是想直接复制TXT中的这些数据,然后粘贴到AU3的窗口中,最后对这些数据进行计算。因为这些数据不是固定不变的,每次进行计算的时候都要重新输入新的数据(有上百行的数据)。所以想到先从TXT中读取这些数据,然后赋值给 数组变量。
多谢大侠指导 {:face (239):}自己顶顶顶。。。 ;要打开的文件
Local $file = FileOpen("test.txt", 0)
; 检查打开的文件是否可为读
If $file = -1 Then
MsgBox(4096, "错误", "不能打开文件.")
Exit
EndIf
; 每次读取一个字符,直到文件结束(译注:读中文必须设置为远大于1的值!)(译注的译注(thesnow):ANSI编码中,一个中文为两个字符(char)/字节)
While 1
Local $chars = FileRead($file, 1)
If @error = -1 Then ExitLoop
MsgBox(4096, "读取的字符:", $chars)
WEnd
FileClose($file)
先读那个文本呀 回复 11# zbezj
你只需要第8-13行… 回复 10# afan
8到13行,是用正则把数据提取出来,然后 把这些数据赋值给数组。 但是,这些数据是在TXT中啊。。。还是不太懂。
页:
[1]
2