HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0811
ANTARES二次元配列の初期化7解決


ANTARES

リンク

2009/8/11(Tue) 16:18:23|NO.27004

 以下のスクリプトはhsp2.61では正常動作しますが、
hsp3.1,3.2では配列の初期値セットでエラーが出ます。
これは仕様ですか?

dim pnt,2,6 pnt=100,0, 300,0, 400,173, 300,346, 100,346, 0,173 i=0 repeat 6 repeat 2 mes "pnt."+cnt+"."+i+"="+pnt.cnt.i loop i++ loop stop



この記事に返信する


Ve

リンク

2009/8/11(Tue) 17:09:55|NO.27005

2.61の曖昧さを修正した結果だと思いますが?



ANTARES

リンク

2009/8/11(Tue) 18:27:49|NO.27006

 二次元配列は初期化できなくなったということですか?



通りすがりC

リンク

2009/8/11(Tue) 19:09:51|NO.27008

大人しく分けろ、ってことじゃないですかねぇ。
まとめて突っ込めた方が便利なんですけど…


pnt(0,0)=100, 0 pnt(0,1)=300, 0 pnt(0,2)=400,173 pnt(0,3)=300,346 pnt(0,4)=100,346 pnt(0,5)= 0,173



undefined

リンク

2009/8/15(Sat) 20:00:34|NO.27080

このコードだとHSPにはpntは一次元配列で

pnt(0)=100 pnt(1)=0 pnt(2)=300 pnt(3)=0 pnt(4)=400 ・ ・ ・

と解釈されているのではないでしょうか?
なのに二次元目を参照したためにエラーが出たのでは?



おにたま(管理人)

リンク

2009/8/15(Sat) 21:53:08|NO.27091

これはHSP3での仕様です。
難しいところですが、1次元配列の初期化では、配列の自動拡張が行なわれるようになったため
次元をまたいで初期化を行なうという方向性を修正しています。



ANTARES

リンク

2009/8/16(Sun) 12:20:05|NO.27107


pnt.0.1=300,0 pnt.0.2=400,173 pnt.0.3=300,346 pnt.0.4=100,346 pnt.0.5=0,173
は、ちょっと辛いので、Cのように

pnt={{100,0}, {300,0}, {400,173}, {300,346}, {100,346}, {0,173}}
とか

pnt={100,0}, {300,0}, {400,173}, {300,346}, {100,346}, {0,173}
とか

pnt=[100,0], [300,0], [400,173], [300,346], [100,346], [0,173]
とか

pnt=(100,0), (300,0), (400,173), (300,346), (100,346), (0,173)
とかできるようにしてもらえませんかね?



Ve

リンク

2009/8/16(Sun) 12:59:07|NO.27109

>pnt=(100,0), (300,0), (400,173), (300,346), (100,346), (0,173)

実装されるならこの表記がいいなぁ。



ONION software Copyright 1997-2023(c) All rights reserved.