ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月27日(土) 15:31

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2005年8月26日(金) 01:59 
オフライン

登録日時: 2005年5月31日(火) 09:34
記事: 141
お住まい: 北海道
プログラミング掲示板のソートの問題を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/
' ============================================================


通報する
ページトップ
投稿記事Posted: 2005年8月26日(金) 08:37 
オフライン

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

結局の所、バグといえばバグなんですが、文字列型の配列はあまりスマートじゃないかも、という結論に至っています。山本さんからのアナウンスはないみたいですが。

_________________
[hira]
http://hira.hopto.org/


通報する
ページトップ
投稿記事Posted: 2005年8月26日(金) 22:19 
オフライン

登録日時: 2005年5月31日(火) 09:34
記事: 141
お住まい: 北海道
その問題でしたか・・・すっかり忘れてました。

しかし,なぜコンパイラが落ちるのでしょうね・・・これは山本さんに是非原因を究明していただきたいです。

_________________
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[4人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean