嗨,我的问题是,我有无序的数据,我想写这些数据到一个文件的顺序。例如,值的顺序是第70个,那么这个值被写入文件的第70行。如何向前移动文件指针。有没有像BACKSPACE这样的命令。Fortran - 如何将数据写入文件中的特定行?
1
A
回答
3
正如你在谈论线和退格,可能你的意思是access =“sequential”和form =“formatted”。
在这种情况下,为了跳过记录,您可以只进行空白读取,例如,
read(unitnum, *)
3
您还可以使用直接访问文件,在该文件中可以按顺序写入和读取记录。见,例如,编辑后一天http://en.wikipedia.org/wiki/Fortran_95_language_features#Direct-access_files
:
解决方案使用顺序文件已经提出。我不认为这些会起作用......请解释一下,如果你知道如何使它工作。 (当然,您可以对内存中的值进行排序,然后依次写出它们。)下面是一些示例代码来说明问题。它创造的10行的文件,那么假设你想写第五值:
program test_rewind
integer :: i, j
open (unit=15, file="test_rewind.txt", access="sequential", form="formatted", action="readwrite")
do i=1,10
write (15, '(I4)') i
end do
rewind (15)
do i=1,4
read (15, *) j
end do
write (15, '(I4)') 99
stop
end program test_rewind
输出文件包含:
1
2
3
4
99
的顺序文件的问题是,一个写现有文件会在该点后删除所有内容。
比较来直接访问解决方案:
program test_rewind
integer :: i
open (unit=15, file="test_rewind.dat", access="direct", form="unformatted", action="readwrite", recl=4)
do i=1,10
write (15, rec=i) i
end do
write (15, rec=5) 99
stop
end program test_rewind
短,它的工作原理 - 输出文件中包含10个数字与5日从5变更为99。然而,它们是二进制。
1
对于每个数据输入,使用janneb描述的方法来达到所需的行。然后使用REWIND语句返回到文件的开头(仅限access ='sequential')。
另外如果您需要它,请查看格式描述符以了解如何沿着一条线移动左/右。
相关问题
- 1. 如何将数据写入TXT文件中的特定位置?
- 2. Fortran:格式化写入特定行
- 3. 如何将python列表写入csv文件中的特定行?
- 4. Fortran,将2d数组写入excel文件
- 5. 将数据写入文本文件中的特定位置
- 6. 将数据写入特定行C#
- 7. 如何将文本的特定行写入新文件?
- 8. 如何读取FORTRAN中的数据文件中的特定行77
- 9. 写入文件中的特定行
- 10. 如何写入文本文件中的特定行?
- 11. 将文本文件的特定行写入文本文件 - Python
- 12. 将文本文件写入数组并读取特定行VB
- 13. 如何将数据写入.SLK文件
- 14. 如何将数据写入xml文件
- 15. 如何将数据写入XML文件?
- 16. 如何将数据写入到文件
- 17. 如何将数据写入Excel文件?
- 18. 如何将数据写入文件?
- 19. Fortran将循环写入多个文件?
- 20. 如何将数据写入Kinesis中的特定分片
- 21. 如何将列表写入CSV文件中的特定位置?
- 22. Fortran随机写入文件中的数据
- 23. 如何在bash脚本中写入文件的特定行?
- 24. 如何写入文件中的特定行?
- 25. 如何在特定的行#之后将行写入文本文件?
- 26. 如何在运行中将数据写入ini文件
- 27. 如何使用awk将文本文件中的数据写入Excel文件行?
- 28. 在程序运行期间从FORTRAN中写入的文件中检索数据
- 29. 使用QT写入文件。将数据写入已写入文件的特定点
- 30. 如何将数据写入到php中的文本文件中