【发布时间】:2015-05-16 19:56:42
【问题描述】:
我有一个包含 13 列和 41 行的文件,其中包含 41 个不同组的 Joback Method 的系数。但是,有些值是不存在的,表格将它们列为“X”。我将表格保存为 .csv,并在我的代码中将文件读取到数组中。 .csv 中两行的摘录(第二行包含不存在的系数)如下所示:
48.84,11.74,0.0169,0.0074,9.0,123.34,163.16,453.0,1124.0,-31.1,0.227,-0.00032,0.000000146
X,74.6,0.0255,-0.0099,X,23.61,X,797.0,X,X,X,X,X
我尝试做的是读取并定义一个数组来保存每个 IOSTAT 值,这样我就可以知道是否读取了“X”(即 IOSTAT 为正):
DO I = 1, 41
(READ(25,*,IOSTAT=ReadStatus(I,J)) JobackCoeff, J = 1, 13)
END DO
我发现的问题是,如果要读取的行的第一个值是“X”,产生 ReadStatus 的正值,那么这些行的其余值不会被正确读取。
如果 JobackCoeff(I,J) 导致读取错误,我的意图是使用 ReadStatus 数组生成错误消息,从而精确定位“X”。
出现读取错误后,我可以强制程序继续读取一行吗?或者有更好的方法吗?
【问题讨论】: