嗨,我的問題是,我有無序的數據,我想寫這些數據到一個文件的順序。例如,值的順序是第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. Fortran,將2d數組寫入excel文件
- 2. 如何將python列表寫入csv文件中的特定行?
- 3. 將數據寫入文本文件中的特定位置
- 4. 將數據寫入特定行C#
- 5. 如何讀取FORTRAN中的數據文件中的特定行77
- 6. 將文本文件的特定行寫入文本文件 - Python
- 7. 如何寫入文本文件中的特定行?
- 8. 將文本文件寫入數組並讀取特定行VB
- 9. Fortran將循環寫入多個文件?
- 10. 如何將數據寫入.SLK文件
- 11. 如何將數據寫入文件?
- 12. 如何將數據寫入Excel文件?
- 13. 如何將數據寫入xml文件
- 14. 如何將數據寫入Kinesis中的特定分片
- 15. PHP如何寫入文件中的特定行?
- 16. 如何寫入文件中的特定行?
- 17. 如何在運行中將數據寫入ini文件
- 18. 如何將數據寫入到php中的文本文件中
- 19. 我如何寫入文本文件的特定行?
- 20. 如何使用Fortran將具有特殊字符的特定GNUPLOT命令寫入txt文件?
- 21. 將文本文件寫入CSV文件中的特定列
- 22. 將數據寫入文件
- 23. 將數據寫入特定標記
- 24. 使用AJAX或PHP將數據寫入文本文件中的特定位置
- 25. python如何寫入特定的行在現有的txt文件
- 26. 將一些數據寫入PHP中文件中的特定區域
- 27. C#LINQ to XML - 如何將特定的XElements寫入文件
- 28. 將數據塊插入Fortran的大文件中
- 29. 如何將數據從textarea的文件寫入到txt文件
- 30. 將數組寫入.bin文件中R