0

是否可以使用 fortran77 将文本文件读取为字符串。我实际上有一个以下格式的文本文件

Some comments
Some comments

n1  m1  comment_with_unknown_number_of_words
..m1 lines of data..

n2  m2  comment_with_unknown_number_of_words
..m2 lines of data..
and so on

而 n1,n2.. 是对象的顺序。m1, m2,..分别是包含这些对象数据的行数。我还想存储每个对象的评论以供进一步调查。

我该如何处理?非常感谢您!

4

1 回答 1

0

我不敢相信没有人为此打电话给我。我很抱歉,这实际上只是抓住了评论的第一个字……

------------原始答案----

不推荐F77,但这也不是什么棘手的问题。只需声明一个足够长的 char 变量来保存最长的评论并使用列表定向读取。

integer m1,n1
char*80 comment

...
read(unit,*)m1,n1,comment

如果您想在不填充一堆额外空格的情况下将其写回,那会有点努力,但几乎不是世界末日。

在 f77 中你根本不能做的是辨别你的文件是否在行尾有尾随空格,除非你去直接访问读取。

------------改进的答案

您需要做的是将整行作为字符串读取,然后从字符串中读取整数:

read(unit,'(a)')comment
read(comment,*)m1,n1

此时comment包含整行,包括您的两个整数(也许这将为您完成这项工作)。如果您想提取实际的字符串,则需要进行一些编码(我有一个约 40 行的子程序将字符串拆分为单词)。如果有兴趣,我可以发布,但我更倾向于像其他人一样鼓励您查看您的代码是否可以与更现代的编译器一起使用。

于 2013-01-11T21:28:14.147 回答