- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:lineinput について)
lineinputについての疑問
このQ&Aのポイント
- プログラムでLineInput関数を使って1行ずつ読み取る際、読み取る順序が正確かどうか疑問です。
- プログラムが永遠に1行目を読み取るか、ランダムになるのではないかと不安です。
- LineInput関数が順序を保つ仕組みや、ランダムになることがない理由について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>読み取る行がランダムになってしまうような気がするのですが どういう理由で「ランダム」だと思われるのでしょう? ファイル番号ごとに、内部処理用に「Seekポイント」と言うデータを保持しています。 「Seek 関数 」 (http://msdn2.microsoft.com/ja-jp/library/7af2feyt(VS.80).aspx) 例えば、 1行目が10文字(+復改行2文字)、 2行目が5文字(+復改行2文字) 3行目が20文字(+復改行2文字) だと、 「FileOpen」直後はSeekポイント「1」に初期化され、 最初の「LineInput」で、1文字目から復改行まで10文字(+2文字)読み込み、 Seekポイントを+12して13に変更。 2回目の「LineInput」で、13文字目から復改行まで5文字(+2文字)読み込み、 Seekポイントを+7して20に変更。 3回目の「LineInput」で、20文字目から復改行まで20文字(+2文字)読み込み、 Seekポイントを+22して42に変更。 ・・・と続きます。
その他の回答 (1)
- suzukikun
- ベストアンサー率28% (372/1325)
回答No.1
LineInputがそういう仕様だからとしか言いようがないのですが。
質問者
お礼
ありがとうございます。
お礼
返答ありがとうございます。 seek関数というものがあるとは知りませんでした。 今勉強している本が入門編だからか、全く触れていません(T T)。