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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1006
ひろかずHSP2.6からHSP3.4への移行時の「配列の要素が無効です」というエラーの対処について4解決


ひろかず

リンク

2017/10/6(Fri) 19:47:06|NO.81576

現在、HSP2.6で作成したプログラムをHSP3.4に移行しようとプログラムの修正を行っているのですが、
「配列の要素が無効です」というエラーの対処方法が分かりません。
HSP3.4アップデートガイド「HSP2との違いについて」についても該当する記述が見当たりませんでした。
HSP2.6ではエラーの出ない、以下の記述をHPS3.4向けに修正するにはどうしたら良いのでしょうか?

dim abc,2,8
abc = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

以上、よろしくお願い申し上げます。



この記事に返信する


 

リンク

2017/10/6(Fri) 20:09:39|NO.81577

これでどうですか?
	Dim abc,2,8
abc(0,0)=0,1 abc(0,1)=2,3 abc(0,2)=4,5 abc(0,3)=6,7 abc(0,4)=8,9 abc(0,5)=10,11 abc(0,6)=12,13 abc(0,7)=14,15



科学太郎

リンク

2017/10/6(Fri) 20:26:49|NO.81578

・Mimura Software ソースコンバータ2
http://www.vector.co.jp/soft/win95/prog/se383320.html

こちらをどうぞ。



沢渡

リンク

2017/10/6(Fri) 22:47:06|NO.81579

科学太郎さんのソースコンバータ2を試してみましたが、質問者さんのケースには対応していないようですね。
いったん仮の一次元配列の中に配列の内容を置いておき、それをmemcpyで多次元配列にコピーする方法はどうでしょうか?

#define dimconv(%1,%2) memcpy %2,%1,length(%1)*4,0,0 //一次元配列の内容を多次元配列にコピー #define dimconvf(%1,%2) memcpy %2,%1,length(%1)*8,0,0 //実数対応版 dim abc0,16 abc0 = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 dim abc,2,8 dimconv abc0,abc repeat 8 cnt0=cnt repeat 2 mes abc(cnt,cnt0) loop loop



ひろかず

リンク

2017/10/6(Fri) 23:34:24|NO.81580

皆様、ご返信有り難うございます。

>名無しさん
なるほど、HPS3では簡略化した表記は許されないという事ですね。了解しました。

>科学太郎さん
コンバータを教えて頂き、有り難うございます。
早速、利用してみましたが、該当箇所は修正されませんでした。
他、修正しなくても良い箇所が修正されて、かえってエラー箇所が増える事態になってしまいました。
自分の作成したプログラムには合わないようです。残念です。

>沢渡さん
元のプログラムをなるべく壊さずに移行させるには、良い方法ですね。
有り難うございます。この方法で修正を進めたいと思います。

皆様、改めて有り難うございました。感謝申し上げます。



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