如果你的檔案是二進位制檔案,那麼你可以獲得檔案大小 size,然後除以每個資料的長度,比如4位元組或8位元組。既可得到資料量。
如果你的檔案是文字檔案,且每行的資料個數是固定的,每行的長度也是固定的。也可以參照上面的方法。
如果你的檔案是文字檔案,但每行的資料個數不確定,或者每行的長度不一致。
那麼有辦法知道檔案的行數,或者每一行分別的資料個數。總的陣列,需要你自己去統計行數,或者每一行的資料量加起來就是總的資料量。
大多數情況下,你只需要知道行數,就可以確定資料量了。下面的函式可以獲得檔案的行數。
Integer Function GetFileN( iFileUnit )
Implicit None
Integer , Intent( IN ) :: iFileUnit
Character*(1) :: cDummy
GetFileN = 0
Rewind( iFileUnit )
Do
Read( iFileUnit , * , End = 999 , Err = 999 ) cDummy
GetFileN = GetFileN + 1
End Do
999 Rewind( iFileUnit )
Return
End Function GetFileN
如果你的檔案是二進位制檔案,那麼你可以獲得檔案大小 size,然後除以每個資料的長度,比如4位元組或8位元組。既可得到資料量。
如果你的檔案是文字檔案,且每行的資料個數是固定的,每行的長度也是固定的。也可以參照上面的方法。
如果你的檔案是文字檔案,但每行的資料個數不確定,或者每行的長度不一致。
那麼有辦法知道檔案的行數,或者每一行分別的資料個數。總的陣列,需要你自己去統計行數,或者每一行的資料量加起來就是總的資料量。
大多數情況下,你只需要知道行數,就可以確定資料量了。下面的函式可以獲得檔案的行數。
Integer Function GetFileN( iFileUnit )
Implicit None
Integer , Intent( IN ) :: iFileUnit
Character*(1) :: cDummy
GetFileN = 0
Rewind( iFileUnit )
Do
Read( iFileUnit , * , End = 999 , Err = 999 ) cDummy
GetFileN = GetFileN + 1
End Do
999 Rewind( iFileUnit )
Return
End Function GetFileN