一次性读入整个文本到字符串, 包含换行符
VB有个命令 readall() 可以读入整个文本到一个字符串fortran read 好像只能逐行读入, 就算预先设定一个很长的字符串, 读入也是文本的一行, 后面空格
不想用循环逐行读取, 还要截断拼接
不明白换行符也是字符串, 为啥不能一次读入
可以。先查询文件大小,然后用二进制方式打开和读取。 li913 发表于 2024-10-4 07:18
可以。先查询文件大小,然后用二进制方式打开和读取。
差点忘记了流文件这茬:-L
但有个问题, 如果全部读出来之后在一个字符串里, 再从中间读出某个数据就麻烦了
以前每行读的时候
aaa 3
bbb 4
字符串读了, 就接着读数据很容易
aaa 3换行符bbb 4换行符
这样就不好读数了, 好像不能把换行符认为像空格或逗号一类的分隔 自动读出数字 所以你明白为什么有“有格式”文件读写方式了。
你非要用流文件去读取全部文件内容,那自然“拆分数据”的工作就要由你自己来做。
语法给你提供了“有格式”方式读写文件,你偏不用。 fcode 发表于 2024-10-7 14:55
所以你明白为什么有“有格式”文件读写方式了。
你非要用流文件去读取全部文件内容,那自然“拆分数据”的 ...
我的意思是在先期读入整个字符串的基础上, 再用有格式读取字符串中的内容, 本质和 read(str, *)....应该是一样的吧,str 只不过换成了整个文本字符串(包含换行符) cqflhl 发表于 2024-10-7 20:06
我的意思是在先期读入整个字符串的基础上, 再用有格式读取字符串中的内容, 本质和 read(str, *)....应 ...
是的,可以这样,没有问题。
read( str ,* )
这种用法叫内部文件。
如果你还有其他疑问,请详细描述你的需求。 fcode 发表于 2024-10-7 20:27
是的,可以这样,没有问题。
read( str ,* )
这种用法叫内部文件。
其实没那么复杂, 本质就是换行符不是Fortran支持的数据分隔符, 比如逗号,空格,制表符 循环把换行符替换成空格就行了
页:
[1]