请问怎样把一个矩阵格式的文本文件读入二维数组?

jacobier 2007-10-03 05:31:00
请问怎样把一个矩阵格式的文本文件读入二维数组?

文本文件数据格式如下:

+2.533510E+000 +2.533500E+000 +2.533500E+000 +2.533500E+000
-2.533500E+000 +2.533500E+000 +2.533500E+000 +2.533500E+000
+2.533500E+000 +2.533500E+000 +2.533500E+000 +2.533500E+000
+2.533500E+000 +2.533500E+000 +2.533500E+000 +2.533516E+000

要求读入 data(4,4) 中去。
ps: 我用input, 弄来弄去都跑不通:

......

Open "data.txt" For Input As #1
Dim matrix() As Double
For i = 1 To 4
Input #1, matrix(i)
Next
Close #1

......
...全文
244 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2007-10-04
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim s() As String, data(3, 3) As Double, i As Long, j As Long, temp() As String
Open "d:\data.txt" For Input As #1
s = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf)
Close #1
For i = 0 To 3
temp = Split(s(i))
For j = 0 To 3
data(i, j) = CDbl(temp(j))
Next
Next

For i = 0 To 3
For j = 0 To 3
Debug.Print data(i, j);
Next
Debug.Print
Next

End Sub
of123 2007-10-04
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Open "data.txt" For Binary As #1
Dim matrix(3, 0) As Double, tmp As String, strtmp() As String
Dim i As Long, j As Long

Do Until EOF(1)
Line Input #1, tmp
strtmp = Split(tmp, Space(1))
ReDim Preserve matrix(3, j)
For i = 0 To 3
matrix(i, j) = strtmp(i)
Next
j = j + 1
Loop
Close #1
End Sub

Redim 只能更改最后的维数,所以将行放在第二下标。这样可以适应每行 4 个数据的多行文件。
jacobier 2007-10-03
  • 打赏
  • 举报
回复
谢谢, 不过我要的是二维array, 而且文件格式也是方阵形式的, 不是只有一行的数据流
  • 打赏
  • 举报
回复
你每个数字之间是用空格来分割的吧
Private Sub Command1_Click()
Open "e:\1.txt" For Binary As #1
Dim matrix() As Double, tmp() As Byte, strtmp() As String
Dim i As Long
ReDim tmp(LOF(1))
Get #1, , tmp
strtmp = Split(StrConv(tmp, vbUnicode))
ReDim matrix(UBound(strtmp))
For i = 0 To UBound(strtmp)
matrix(i) = strtmp(i)
Print matrix(i)
Next
Close #1
End Sub

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧