我想每行的長度不是常數,這將使它無法使用fseek將文件指針設置爲行的開頭而不先讀取(這將使makefile設置filepointer無用)。
你在另一個問題中寫道,你的輸入文件很大,速度很重要。在這種情況下,我會建議使用設計用於快速字符串處理的工具來執行預處理(查找開始/結束日期,僅使用這些行)。
我創建的示例輸入FILE.CSV:
5,2010-05-01, Customer ID1, DataA
9,2011-05-02, Customer ID2, DataB
1,2011-05-04, Customer ID3, DataC
3,2011-05-06, Customer ID4, DataD
8,2011-05-08, Customer ID5, DataE
和預處理它與AWK(在GNU/Linux標準工具,用於windoze見http://gnuwin32.sourceforge.net/packages/gawk.htm):
awk 'BEGIN{FS=","}$2~/2011-05-02/{f=1;}; f==1{print $0}; $2~/2011-05-06/{exit}' file.csv
這返回(I也只會列出需要的列)
9,2011-05-02, Customer ID2, DataB
1,2011-05-04, Customer ID3, DataC
3,2011-05-06, Customer ID4, DataD
然後用textread to i輸入這個縮減的集合。
如果你有一個可能50行的具體文本文件,我們可以幫助更好。