by tak » 2005年7月05日(火) 11:24
> Line Inputの高速化に使えないだろうか・・・ということです。
たぶん使えないです。
V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
[追記] 7月5日 13:30
どうやら特定の文字コードを識別するのはある条件下にあるときだけで、通常は CR コードのみを判定するようです。CR を検出したら、その次が LF かどうかを検査する2段構造でした。
よって、改行コードが CR または LF だけの場合は期待した通りに動作しません。
試しに改行コードを LF に変換したテキストファイルを読み込むと、全文読み込んでしまいました。
また、CR の場合は動作せず、固まってしまいました。
> Line Inputの高速化に使えないだろうか・・・ということです。
たぶん使えないです。
V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
[追記] 7月5日 13:30
どうやら特定の文字コードを識別するのはある条件下にあるときだけで、通常は CR コードのみを判定するようです。CR を検出したら、その次が LF かどうかを検査する2段構造でした。
よって、改行コードが CR または LF だけの場合は期待した通りに動作しません。
試しに改行コードを LF に変換したテキストファイルを読み込むと、全文読み込んでしまいました。
また、CR の場合は動作せず、固まってしまいました。