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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
1120
Sakura動作不良4解決


Sakura

リンク

2017/11/20(Mon) 22:47:04|NO.81882


cls seta=0 sdim setb,50,50 sdim setd,50,50 sdim password,20,20     sdim pasd,20,20     sdim pasa,20,20 notesel seta noteload "d.txt" notesel setb noteload "a.txt" notesel setd noteload "b.txt" notesel password noteload "c.txt" notesel pasa noteload "d.txt" notesel setc noteload "e.txt" notesel sete noteload "f.txt" if seta=1 : goto *topa if seta=0 : goto *topb stop
このコマンドを実行すると、画面が真っ白のままで、
*topbの処理が行われません。
(*topbはただテキストを表示するだけで、単体でしっかり動きます)
テキストファイル(a.txt〜f.txt)も用意してあり、スクリプトが動かない
原因がわかりません。(noteselとnoteloadの使い方が違うのでしょうか?)
原因や改善策等、教えていただけると嬉しいです。



この記事に返信する


ham

リンク

2017/11/20(Mon) 23:20:42|NO.81883

noteloadでsetaに読み込んだデータは数値ではなく文字列として扱われるので、
多分ここを
	if seta=1 : goto *topa
if seta=0 : goto *topb
こうすれば良いと思います。
	if seta="1" : goto *topa
if seta="0" : goto *topb

数字を"で囲んだだけです。

もし数値として扱いたいのであれば、
notelloadで読み込んだ後にint命令を使って文字列から数値に変換する事もできます。(文字列が半角の数字なら)
seta=int(seta)

その場合は"はいりません。



Sakura

リンク

2017/11/21(Tue) 22:29:25|NO.81885

hamさん、ありがとうございます!

if seta="1" : goto *topa if seta="0" : goto *topb
の方はうまくいきませんでしたが、

seta=int(seta)
の方で成功しました。



Drip

リンク

2017/11/22(Wed) 01:10:03|NO.81886

HSPでは以下の書式でもTRUEを返すので、hamさんの指摘は誤りです。

a="3" if a=3:mes "TRUE"
また同時に、if seta="0"がTRUEにならずint(seta)の結果が0になったとすると、
setaの内容は「0以外の想定外の何か」が代入されている可能性が高いです。
充分にデバッグされることをお勧めします。



SquidSky

リンク

2017/11/22(Wed) 17:23:27|NO.81888

スクリプト冒頭でsetaを0にしているので、sdim setaにすると、うまく動作したのではないでしょうか?



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