- ベストアンサー
UWSの構文で繰り返しやIFの構文がうまく動作しない
- UWSの構文で繰り返しやIFの構文が上手く動作しないため、作業ができません。
- 条件に基づいてA画像をクリックしてB画面に遷移し、さらにC画面やD画面に遷移する必要がありますが、正常に動作しないため、エラーが出るとAに戻って最初からやり直しています。
- 条件の中にも条件があるため、正しい命令のタイミングがわからず、どのタイミングでどの命令をすれば良いか迷っています。ご教授いただければ助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
お礼欄のプログラムとフローチャートからすると、こうすればいいと思います。 WHILE TRUE IFB 画像チェック("A.BMP") BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) IFB 画像チェック("B.BMP") BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) WHILE TRUE IFB 画像チェック("C.BMP") BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) IFB 画像チェック("D.BMP") // F5を押しページ更新 ENDIF ELSE // タイムエラーでエラー表示 BREAK ENDIF WEND ENDIF ELSE // ここに時間切れ処理必要? さもないと無限ループ ENDIF WEND FUNCTION 画像チェック(bmp) RESULT = FALSE WHILE TRUE IFB CHKIMG(bmp,-1,0,0,1920,1024) > 0 RESULT = TRUE EXIT ENDIF // 時間切れ判定処理 時間切れの時 BREAK か EXIT する WEND FEND
その他の回答 (1)
- luka3
- ベストアンサー率72% (454/624)
私なら、B以降を関数化して、ダメな条件の場合に関数を抜けるようにします。 Aの処理条件がちょっとわかりにくいので正しいかわかりませんが、こんなかんじになります。 UWSの構文は大文字にしています。 WHILE TRUE Aの画像を見つけクリックする条件 ○ならクリックして サブ関数へ ×ならA画像をもう一度画像を探すためAに WEND PROCEDURE サブ関数 Bの条件 ×なら EXIT (○なので)クリック WHILE TRUE Cの条件 ×なら EXIT (○なので)クリック Dの条件 ×なら EXIT (○なので)F5を押して(Cへ) WEND FEND
お礼
01 WHILE TRUE 02 WHILE TRUE 03 ifB CHKIMG("A.BMP",-1,0,0,1920,1024) > 0 04 BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) 05 BREAK 06 Endif 07 WEND 08 WHILE TRUE 09 ifB CHKIMG("B.BMP",-1,0,0,1920,1024) > 0 10 BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) 11 BREAK 12 Endif 13 WEND 14 WHILE TRUE 15 ifB CHKIMG("C.BMP",-1,0,0,1920,1024) > 0 16 BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) 17 BREAK 18 Endif 19 WEND 20 WHILE TRUE 21 ifB CHKIMG("D.BMP",-1,0,0,1920,1024) > 0 22 BTN(LEFT,CLICK,G_IMG_X+25,G_IMG_Y+25,20) 23 BREAK 24 Endif 25 WEND 26 WEND 私は上記のように書き込んで、条件に合えばBreakで次の条件へ進むようにしていました BREAKとEndifの行の間に新しい構文を入れ何処かの行から読み直す事が出来ればと思っていました 例:18と19の間に関数を入れ08のスクリプトから開始させる 教えて頂いた中に初めて見る関数があるのでそちらでも可能だと思います ただ、関数が意味するものが解らずまた位置から手探り状態になりそうです CONTINUE CONTINUE 2 とかで飛ばせるという文を見つけたのですが使い方もわからず途方に暮れています 行き詰まっているので、他の方法を勉強するのもいいですよね! 一度頭の中をクリアし教えて頂いたもので書き換えてみようと思います CONTINUE の使い方や私の書き方で何か気がつく事などありましたら 教えて頂ければ幸いです 有難うございました
お礼
有難うございます! 教えて頂いた方式に時間を見て変えていこうと思います また不明な点などでてきましたら、新しいトピにて質問させて頂きますので よろしくお願いいたします。