簡體   English   中英

Fortran77自動確定數據文件頂部有多少行文本

[英]Fortran77 automatically determine how many lines of text are at the top of a data file

我的一個(舊)儀器正在生成ASCII數據文件,並在數據之前在文件頂部帶有文本描述。 但是,描述文字的行數因運行而異。 我如何獲得Fortran77自動確定這一點? 這是該行下方的示例數據文件。

Line of explanatory text.

Notice the possible blank lines.
More text.
The number of lines is NOT the same every time.

1.0, 2.0
2.0, 4.0
3.0, 6.0
4.0, 8.0

[我自己找到了答案。 在這里發布以幫助他人。 必須等待8個小時才能回答我自己的問題,這很煩人,但是我理解為什么存在該規則。 愚蠢的裝腔作勢者!]

一個粗略而有效的解決方案,如果您的文本從不以數字開頭(我就是這種情況):

假設輸入文件名為Data.dat。

    integer NumTextLines
    real X
    open(8,"Data.dat")
    NumTextLines=-1
50  NumTextLines=NumTextLines+1
    read(8,*,err=50) X
    close(8)
    open(8,"Data.dat")

每次程序嘗試從文本行中將單詞讀入實變量X時,read語句錯誤和程序控制都返回到第50行。如果read語句成功,則您不再希望增加NumTextLines 。 關閉文件,然后重新打開以從頭開始。 但是現在您知道了NumTextLines。 因此,您可以一次閱讀一行文本,然后保存或跳過該文本。

{上述方法適用於我的大多數文件,但不是全部。 另一種方法是將每一行讀入一個character * 500變量(例如A),然后測試字符數組第一個元素的ASCII值。 但這變得很復雜。}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM