Fortran Coder

标题: 读写txt文档 [打印本页]

作者: 871100103    时间: 2014-6-6 14:10
标题: 读写txt文档


初始建立文档txt,里面有初始值0,读取它为a,赋值 Value=a+Value,将Value值再写入txt,替换掉原始的0。value是软件运行自动会得到的结果。例如自己写的中间部分,有错误。
大神能帮我写个吗?


[Fortran] 纯文本查看 复制代码
open(22,file='I:\Wear simulation\data.txt',form='formatted',status='old',position='append')
T=vmc1+273.15
teq=10**((T/773.15)*(20+log10(DTMAXC/3600))-20)
open(10,file='I:\Equivalent time\data.txt',form='formatted',status='old',position='asis')
read(10,*) sum
teq=sum+teq
write(10,*) teq
M=773.15*(20+log10(teq+4.58682))
Hroom=(-5.0E-15)*M**4+(2.0E-10)*M**3-(2.0E-6)*M**2+0.0086M+58.516
Fhot=(-6.282844E-9)*T**3+(1.0630785E-5)*T**2-(5.8086096E-3)*T+1.9575015
Hhot=Hroom*Fhot
k=(29.29*log(T)-168.73)/(10*10*10*10*10*10)
a=2.0
WI=(VMC4/Hhot**a)*k*VMC3*DTMAXC
WA=(VMC4/Hhot**a)*k*VMC3*DTMAXC+WA
close(10)
write(22,*) dtmaxc
write(22,"(7f21.10)") VMC1,VMC2,VMC3,VMC4,k,Hhot,WI,WA
close(22)




作者: 楚香饭    时间: 2014-6-6 14:21
本帖最后由 chuxf 于 2014-6-6 14:22 编辑

具体有什么错误?请给出错误提示或截图。

既然初始值为 0 ,你加他干嘛?直接把 teq 写进去就OK了

作者: 871100103    时间: 2014-6-6 17:10
这是一个子程序,你说的把第一次得到的teq直接写进去也行,但是也得循环teq=sum+teq 赋值,因为每一次都会得到新的teq,而且之后用到的是之前得到的所有teq的和。。。谢谢你的回复。。简单地说就是读取--累积---替换  的过程。。。

QQ截图20140606171548.png (4.27 KB, 下载次数: 393)

QQ截图20140606171548.png

QQ截图20140606171605.png (19.13 KB, 下载次数: 373)

QQ截图20140606171605.png

作者: 871100103    时间: 2014-6-6 17:11
再次感谢你
作者: 楚香饭    时间: 2014-6-6 17:14
第一,没必要每次写文件。用一个变量记录下来,最后再写入文件。
第二,你的问题不是写文件的问题,而是编译就有问题。
第三,我不确定 absoft 允许中文的源代码文件名。建议不要用中文的。
第四,错误行分别在 28,36,39 行,仔细找找吧。
作者: 871100103    时间: 2014-6-7 09:24
您好,能帮我写个吗?我没学过编程,是赶鸭子上架啊。
作者: 安靖    时间: 2014-6-7 11:49
这要求有点过了啊……
作者: 楚香饭    时间: 2014-6-7 12:37
本帖最后由 chuxf 于 2014-6-7 12:54 编辑

这不是过分不过分的问题。

写一段代码,需要你提供很多很多的需求,各种数据格式,物理意义,你期望的计算方法等等等等。是需要比较多的沟通和交流才能做成的。

而不是说,你让我写,我就可以写。

另外,我恐怕也没有足够的时间和精力了代你完成你的工程。
作者: 871100103    时间: 2014-6-7 15:16
表示十分感谢
作者: 871100103    时间: 2014-6-7 15:16
安靖 发表于 2014-6-7 11:49
这要求有点过了啊……

只是一小段
作者: 楚香饭    时间: 2014-6-7 15:26
871100103 发表于 2014-6-7 15:16
只是一小段

只是一小段,也需要与你其他的代码之间进行融合。这一小段负责什么内容?文件格式如何?需要读取到哪些变量里?如果有数组,是多大?这一系列问题。

我建议你,认真对待自己遇到的错误,根据错误和我们的提示自我排查。这才是王道。
作者: 魔啸天龙    时间: 2014-6-8 10:22
absoft 用的人很少啊。看起来像中文文件名
作者: 山大克鲁士    时间: 2014-6-8 12:38
木有程序的上下文,就是神也没法查错啊~~~
作者: 871100103    时间: 2014-6-18 10:47
chuxf 发表于 2014-6-7 15:26
只是一小段,也需要与你其他的代码之间进行融合。这一小段负责什么内容?文件格式如何?需要读取到哪些变 ...

多谢。。。假如txt文档中第一行有初始值1,我怎样读取它为a,赋值t=t+a(t有之前的程序计算得出),t写入第二行,子程序再次运行时,该次次读取第二行为a,赋值t=t+a(t有之前的程序计算得出),t写入第三行。然后子程序重新运行第三次。。。。这样清楚吗
作者: fcode    时间: 2014-6-18 11:02
871100103 发表于 2014-6-18 10:47
多谢。。。假如txt文档中第一行有初始值1,我怎样读取它为a,赋值t=t+a(t有之前的程序计算得出),t写入 ...

这样或许更容易,也更清晰一些。

1.  读取TXT文档第一行初始值。a0
2.  t=t+a0
3.  写入 t 到第二行,此时,t保存在公共区,或全局变量,或module中。也就是,t 的值会保留下来。
4.  子程序再次运行 t = t + a
5.  再写入 t 到第三行
....以下循环

实在没必要每次写入,每次再读入,每次再写入,多累啊。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2