找回密码
 注册
Simdroid-非首页
查看: 379|回复: 6

[2. C/C++/C#] 如何读从txt文件中读取数据?

[复制链接]
发表于 2005-12-19 22:29:37 | 显示全部楼层 |阅读模式 来自 陕西西安
如何从如下两个数组中读取数据并赋给两个数组一维数组?请多多指教!!
x.txt:
2.8007985E-03  8.5829868E-04  2.3045798E-04  3.4466668E-04  5.9264887E-04
  8.0068997E-04  9.8334381E-04  1.1536585E-03  1.3207862E-03  1.4917935E-03
  1.6730434E-03  1.8710460E-03  2.0934150E-03  2.3498945E-03  2.6538661E-03
  3.0250039E-03  3.4939640E-03  4.1124593E-03  4.9756700E-03  6.2803729E-03
  8.5075023E-03  1.3053562E-02  1.9583050E-02  1.2241082E-02  1.0449129E-02
  9.9724010E-03  8.7538185E-03  7.5322506E-03  6.4901789E-03  5.6439587E-03
y.txt
   1.000000       2.000000       3.000000       4.000000       5.000000   
   6.000000       7.000000       8.000000       9.000000       10.00000   
   11.00000       12.00000       13.00000       14.00000       15.00000   
   16.00000       17.00000       18.00000       19.00000       20.00000   
   21.00000       22.00000       23.00000       24.00000       25.00000   
   26.00000       27.00000       28.00000       29.00000       30.00000   
   31.00000       32.00000       33.00000       34.00000       35.00000   
   36.00000       37.00000       38.00000       39.00000       40.00000
发表于 2005-12-20 00:28:23 | 显示全部楼层 来自 湖南湘潭

Re:如何读从txt文件中读取数据?

Simdroid开发平台
最基本的就不用在这问吧
 楼主| 发表于 2005-12-20 08:37:23 | 显示全部楼层 来自 陕西西安

Re:如何读从txt文件中读取数据?

希望各位高手给我指点一二万分感谢!
发表于 2005-12-21 08:59:15 | 显示全部楼层 来自 广西桂林

Re:如何读从txt文件中读取数据?

这是VB源代码,适合于不定长度格式,空格和换行作为分界符

如果使用其他编程语言,可按思路翻译过去

Rem 1.先定义一个足够大的数组(或者是动态数组).和数组顶部指针
Dim A#(1000), Top%
Rem 2.定义临时字符串变量,循环变量
Dim sLin$, I%
Rem 3.打开文件
Open App.Path & "\x.txt" For Input As #1
Rem 4.循环读取行,直到文件尾
Do While Not EOF(1)
Rem 4.1.读入一行到临时字符串
Line Input #1, sLin
Rem 4.2.前后修剪字符串
sLin = Trim(sLin)
Rem 4.3.循环查找数值,直到查找完整个字符串
Do While Len(sLin) > 0
Rem 4.3.1.查找分界符号(空格)
    I = InStr(sLin, " ")

   If I > 0 Then
   Rem 4.3.2 找到分界符号,取前面部分,把后面部分修剪后仍赋值给临时字符串
     A(Top) = Val(Left(sLin, I - 1))  '数组顶部赋值
     sLin = Trim(Mid(sLin, I + 1))
   Else
   Rem 4.3.3否则,取全部,把空格赋值给临时字符串
     A(Top) = Val(sLin)  '数组顶部赋值
     sLin = ""
   End If
   Rem 4.3.4顶部指针向后移动一格
   Top = Top + 1
Loop '循环查找数值
Loop '循环读取行
Rem 5.读入成功信息提示
MsgBox "文件读入成功!"

评分

1

查看全部评分

发表于 2005-12-21 14:14:55 | 显示全部楼层 来自 湖南湘潭

Re:如何读从txt文件中读取数据?

VB我不清楚
在FORTRAN中读数据就是一个一个读的
你在读数的设置中每行读5个数据就可以了
在分别赋给一维数组就可以了
很简单的
 楼主| 发表于 2006-1-1 15:29:32 | 显示全部楼层 来自 陕西西安

Re:如何读从txt文件中读取数据?

谢谢,受益匪浅!
发表于 2006-1-2 10:54:47 | 显示全部楼层 来自 广西桂林

Re:如何读从txt文件中读取数据?

如果知道txt数据文件的格式特点,代码可以短一些,比如

格式<1>逗号为分隔符号(有的语言支持用空格作分隔符),字符串用双引号标识:
23,5,"abc",4.5
44,56,"acc",6
就可以用:
input #1,a,b,c$,d
格式就可以了.

格式<2>数据长度固定并且已经知道(有的还指定小数位数):
1.000000 2.000000 3.000000
6.000000 7.000000 8.000000
就可以用:
line input #1,strlin$
a=mid(strlin,1,8)
b=mid(strlin,10,8)
c=mid(strlin,19,8)
格式就可以了. fortran语言好象要用(3f9.4)来指明数据格式,

如果数据行数固定并且已经知道,可以用[FOR ... NEXT]语句来循环读取
如果行数不固定,只有用[DO WHILE ... Loop]语句来循环读取,并每次检查是否读到文件尾部.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-11-1 21:36 , Processed in 0.052856 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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