AB4.04/4.1のコンパイラが落ちる

ActiveBasicのバグと思われる不具合を発見された方は、こちらから知らせていただけると助かります。
返信する
メッセージ
作成者
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

AB4.04/4.1のコンパイラが落ちる

#1 投稿記事 by Sinryow »

プログラミング掲示板のソートの問題をAB4に移植しようとして以下のコードを書いたのですが,コンパイル(デバッグ,リリースともに)するとAB4.04,4.1ともにコンパイラが落ちてしまいます。
原因の調査お願いします。

※環境
Windows XP SP2を使用しています。下のコードは1つのabpファイルに書いてあります。

コード: 全て選択

#prompt

Print "program start", Time$()
'
' ファイルオープン
'
Open "infile.csv" For Input As #1
Open "outfile.csv" For Output As #2
'
' ファイルリード、テーブルストック
'
Const DATANUM = 1000
Dim FileData[25] As String
Dim i As Long, j As Long, tblcnt As Long
Dim keytbl[ELM(DATANUM)] As String
Dim datatbl[ELM(DATANUM)] As String

Print "tbl stock start", Time$()
tblcnt=-1
While Eof(1)=0
	For i=0 To 25
		Input #1, FileData
	Next
	
	tblcnt=tblcnt+1
	If tblcnt>=DATANUM Then Exit While
    
	keytbl[tblcnt]=FileData[0]+FileData[1]
	datatbl[tblcnt]=Str$(tblcnt)
	For i=0 To 25
		datatbl[tblcnt]=datatbl[tblcnt]+","+FileData
	Next
Wend
Print "tbl stock end", Time$()
'
' 単純選択法ソート
'
Dim p1 As Long, p2 As Long, p3 As Long
Dim buf As String ' データの交換用

Print "sort start", Time$()
p3=tblcnt
For i=0 To p3-1
	p1=i: p2=i
	For j=i+1 To p3
		If keytbl[p1]>keytbl[j] Then
			p1=j
		End If
		If keytbl[p2]<keytbl[j] Then
			p2=j
		End If
    Next
    If p1<>i Then
		buf=keytbl: keytbl=keytbl[p1]: keytbl[p1]=buf
		buf=datatbl: datatbl=datatbl[p1]: datatbl[p1]=buf
    End If
    If p2<>i Then
		buf=keytbl[p3]: keytbl[p3]=keytbl[p2]: keytbl[p2]=buf
		buf=datatbl[p3]: datatbl[p3]=datatbl[p2]: datatbl[p2]=buf
		p3=p3-1
	End If
Next
Print "sort end", Time$()
'
' ソートしたテーブルをファイルに出力
'
Print "file out start", Time$()
For i=0 To tblcnt
    Print #2,datatbl
Next
Print "file out end", Time$()
'
' ファイルクローズ
'
Close #1
Close #2
Print "program end", Time$()
'
' 処理終了確認
'
*ProgramEnd
Print "ソート処理が終了しました。"
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

Re: AB4.04/4.1のコンパイラが落ちる

#2 投稿記事 by hira »

実は以前から問題になっているんです、これ(^^;;
String型の配列の要素数を1000~1500(環境によって多少違う)以上で宣言するとコンパイラが落ちることについては、回避策が過去ログにありますのでご覧ください。
[http://dbp.cool.ne.jp/patio/patio.cgi?mode=view&no=138 より過去ログをダウンロードしてください。この件に関しては過去ログの1915番に書いてあります。]

結局の所、バグといえばバグなんですが、文字列型の配列はあまりスマートじゃないかも、という結論に至っています。山本さんからのアナウンスはないみたいですが。
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

Re: AB4.04/4.1のコンパイラが落ちる

#3 投稿記事 by Sinryow »

その問題でしたか・・・すっかり忘れてました。

しかし,なぜコンパイラが落ちるのでしょうね・・・これは山本さんに是非原因を究明していただきたいです。
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
返信する