山本様にお願いがあります。
最近いくつかのスレでLine Inputの話が出ていますが,そこで
AB2のLine Inputが(システム内部で)どういう実装だったのか教えていただけないでしょうか。
Line Inputの高速化に使えないだろうか・・・ということです。
<山本様にお願い> Line Input について
<山本様にお願い> Line Input について
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
Re: <山本様にお願い> Line Input について
> Line Inputの高速化に使えないだろうか・・・ということです。
たぶん使えないです。
V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
[追記] 7月5日 13:30
どうやら特定の文字コードを識別するのはある条件下にあるときだけで、通常は CR コードのみを判定するようです。CR を検出したら、その次が LF かどうかを検査する2段構造でした。
よって、改行コードが CR または LF だけの場合は期待した通りに動作しません。
試しに改行コードを LF に変換したテキストファイルを読み込むと、全文読み込んでしまいました。
また、CR の場合は動作せず、固まってしまいました。
たぶん使えないです。
V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
[追記] 7月5日 13:30
どうやら特定の文字コードを識別するのはある条件下にあるときだけで、通常は CR コードのみを判定するようです。CR を検出したら、その次が LF かどうかを検査する2段構造でした。
よって、改行コードが CR または LF だけの場合は期待した通りに動作しません。
試しに改行コードを LF に変換したテキストファイルを読み込むと、全文読み込んでしまいました。
また、CR の場合は動作せず、固まってしまいました。
Re: <山本様にお願い> Line Input について
> たぶん使えないです。
> V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
> その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
> ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
ということは恐らく,内部ではC++のコードの力を借りられるため速いのでしょうね。
現在,まけイヌさんのコードを(直接)C++に変換してみているところです。
> V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
> その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
> ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。
ということは恐らく,内部ではC++のコードの力を借りられるため速いのでしょうね。
現在,まけイヌさんのコードを(直接)C++に変換してみているところです。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================