<山本様にお願い> Line Input について

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

<山本様にお願い> Line Input について

#1 投稿記事 by Sinryow »

山本様にお願いがあります。
最近いくつかのスレでLine Inputの話が出ていますが,そこで
AB2のLine Inputが(システム内部で)どういう実装だったのか教えていただけないでしょうか。

Line Inputの高速化に使えないだろうか・・・ということです。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
tak
記事: 162
登録日時: 2005年5月31日(火) 07:49

Re: <山本様にお願い> Line Input について

#2 投稿記事 by tak »

> Line Inputの高速化に使えないだろうか・・・ということです。

たぶん使えないです。
V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。


[追記] 7月5日 13:30
どうやら特定の文字コードを識別するのはある条件下にあるときだけで、通常は CR コードのみを判定するようです。CR を検出したら、その次が LF かどうかを検査する2段構造でした。
よって、改行コードが CR または LF だけの場合は期待した通りに動作しません。
試しに改行コードを LF に変換したテキストファイルを読み込むと、全文読み込んでしまいました。
また、CR の場合は動作せず、固まってしまいました。
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

Re: <山本様にお願い> Line Input について

#3 投稿記事 by Sinryow »

> たぶん使えないです。
> V2.6の Line Input# は、1バイトずつ読み込む仕組みになっているようです。
> その上、ダブルクォートや空白文字などの特定の文字コードを検出して処理を変えるようなこともしていますから、一般には遅くなると考えられます。
> ただ、かなり高度な最適化が適用されてますから、その分だけ高速化したものと思われます。

ということは恐らく,内部ではC++のコードの力を借りられるため速いのでしょうね。

現在,まけイヌさんのコードを(直接)C++に変換してみているところです。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
返信する