[ 掲示板に戻る ]

過去ログ閲覧モード

回数を表示 / トキワ
UWSCで再生している時
残りx回とか表示する方法ありますか?
設定項目見ても見つからなかったので、、、
初歩的な質問ですが、お願いします。

No.2150 2016/02/16(Tue) 12:09:33

Re: 回数を表示 / stuncloud
回数 = 3

for i = 回数 to 1 step -1
 msg = "残り" + i + "回"
 msgbox(msg)
next

No.2151 2016/02/16(Tue) 12:26:38

Re: 回数を表示 / トキワ
ご回答ありがとうございます。
しかし処理の瞬間しか表示されず
OKを押すまで処理が止まってしまいます、、
また、読み込み時に決めた回数をそのまま表示できません

席を外そうと長時間運転させていようと
処理を止めず、常に表示しておく方法を探しています
引き続きお願いします。

No.2152 2016/02/16(Tue) 15:11:02

Re: 回数を表示 / 森
私は以下のようにしています。

end = 10
for i = 1 to end
 balloon("処理中 [ " + i + " / " + end + " ]")
 sleep(1)
next

No.2154 2016/02/16(Tue) 16:01:56

Re: 回数を表示 / stuncloud
トキワさん:

msgboxはサンプルとして動作がイメージしやすいので使ってみましたが
> 処理を止めず、常に表示しておく方法
であれば balloon 関数があります
履歴込みで表示したいのであれば print 文でも良いでしょう

> 引き続きお願いします。
回数を表示、という点に関しては以上で十分かと思われます
あなたがどのような場面でどのように表示したいかについてはこちらではわかりません
今回のように最初の質問にはない追加の要件が後出しされるようですと、的確なアドバイスがしにくかったり、的外れな回答になってしまったりしてお互いアンハッピーです
質問の際はなるべく必要な情報は全部出してもらって、要点を絞ってもらえるといいかなと思います

aceさん:

>UWSCはスマートなデザインの上級者向けsoftwareです。
初学者が使うのにも良いと思いますよ
僕はプログラム入門がUWSCでしたし、UWSCを使う過程でほかの言語に触れて学ぶ機会も得られました

>「初歩的な質問」で板汚ししないで下さい。
ちょっと言いすぎかな

No.2155 2016/02/16(Tue) 16:08:57

Re: 回数を表示 / トキワ
詳しいお返事ありがとうございます
たいへん参考になりました

>追加の要件が後出し
すみません。今回希望したような内容は、制御文を使わず
ソフト本体の機能で簡単に出来るもの、という先入観がありましたので、、
全部のファイルに記述するのが面倒ですね、、、


ひとまず、教えて頂いた制御文を試しました
balloonについては目的の動作にかなり近いのですが
やはりファイル読み込み時に決めた「実行回数」は
スクリプトで参照できないようですね

今後も実装されないと言われていましたし
「実行回数」に頼らないことにします
とりあえずこんな感じにしました

CNT = 1
REPEAT

end = 1000
for i = 1 to end
 balloon(" [ " + i + " / " + end + " ] 回")
 sleep(1)
next

PRINT "CNT:" + CNT
CNT = CNT + 1
UNTIL FALSE

皆さんご回答ありがとうございました

No.2157 2016/02/16(Tue) 18:18:05
変数名を表示する / 白
扱う変数が多くなってきてログを取ろうと最近考え始めたのですが、
変数名をそのまま表示することってできるんでしょうか?
今は""を使っていますが、できれば手間を省きたいです。
イメージではこんな感じで、プリント結果を「flag1」としたいです。

flag = 1
str = "flag"
print str + flag

flag = 1
str = getname(flag)
print str + flag

No.2139 2016/02/13(Sat) 21:46:34

Re: 変数名を表示する / しろまさ
  http://siromasa.html.xdomain.jp/uwsc/u_term/64_Hensuu.html

  20150701 変数名と変数値の対応を見やすくしたい。
が参考になります?

No.2148 2016/02/15(Mon) 09:13:14

Re: 変数名を表示する / 白
参考資料ありがとうございます!
自分の考えていたものと違いましたが、いくつかアイデアが生まれましたので試したいと思います。

No.2149 2016/02/15(Mon) 14:35:57

Re: 変数名を表示する / 森
こういうことでしょうか?
変数はグローバル変数として宣言しておく必要があります。
あまり省力化できてないような・・・
-----------------------------------
public maker , model , type , year , price

maker = "PORSCHE"
model = "911"
type = "991 carrera 4S PDK"
price = 17120000

hensu("maker")
hensu("model")
hensu("type")
hensu("price")
msgbox("OK?")

// 変数名と値を表示する関数
procedure hensu(name)
 print name + " = " + eval(name)
fend

No.2156 2016/02/16(Tue) 16:31:21
IE11 ずっとビジーになる? / 4流プログラマ
IE10からIE11へとしましたところ、出会った状況です。
(Win7*32bit)

いわゆるBusyWaitで表示完了を待つとき、ずっとビジーのままとなります。
私なりに調べていきますと、ようするに
CTRLWIN( IEID, ACTIVATE)
をすると、その後のIEは記載のようになります。

(もしかすると、No2143の方も同じなのかも?)

皆様はなりませんか? いかがなものでしょうか。

No.2145 2016/02/14(Sun) 15:17:10

Re: IE11 ずっとビジーになる? / 海士
CTRLWINは使用しておりませんが、同じ原因のように思えます。

FAQ「IE11にて画面更新後に操作(COM)ができない  #N45」の
repeat
 Sleep(0.2)
until (! ie.busy) and (ie.readyState=4)
この簡単なループを抜けてきません。

「ie」が更新されていないように思えます。

No.2147 2016/02/14(Sun) 16:35:37
タイトルが取得できない / 海士
ie = CreateOLEObj("InternetExplorer.Application")
ie.Visible = True
ie.Navigate("http://www.php-factory.net/demo/mail/MailForm01_02/contact.php")
sleep(1)
print "[" + ie.document.title + "]"

id = GETID("お問い合わせサンプルデモ - Internet Explorer", "IEFrame", -1)
sleep(5)
print "[" + ie.document.title + "]"

これは疑問を説明するために作ったスクリプトです。アクセスしているサイトは再現できるものを適当に選びました。
はじめに表示されるページは入力フォームで、タイトルはありません(<title></title>)。
print "[" + ie.document.title + "]"
の結果は
[]
と表示されます。ここまでは問題ありません。

そのフォームで何も入力せずに「確認」を押すと、エラーが表示されるページになります。そのタイトルは「お問い合わせサンプルデモ」です(<title>お問い合わせサンプルデモ</title>)。

上のスクリプトの最後の行
print "[" + ie.document.title + "]"
が実行されると
[]
と表示されます。なぜ
[お問い合わせサンプルデモ]
と表示されないのでしょうか。
sleep(5)は十分な時間で、ページの表示は完全に終わっています。

このスクリプトは古いPC(Windows 7)では正常に動作していて、新しいPC(Windows 10)にしたら動かなくなったものです。

私の力では解決できませんでしたので、助けていただけると幸いです。

No.2140 2016/02/13(Sat) 22:26:32

Re: タイトルが取得できない / Liners
当方では問題なく表示されます。 win10 x64 ie11
ただし、当方のie11は常にエンタープライズモードなので試しにサブ機でチェックした所、確かに表示されませんでした。

互換表示設定に登録するとOKなので、ieのバージョンによる互換性の問題と思われます。

No.2141 2016/02/14(Sun) 02:42:51

Re: タイトルが取得できない / 海士
ご回答ありがとうございます。
他の都合でエンタープライズモードは使えないので互換表示設定を試してみましたが、変化はありませんでした。 Win10 x64 IE11です。

フォームのデータの取り込みに使っているIEGetDataも動作しなくなっていますが、同じ原因かと思い、ひとつのみ質問いたしました。

FAQの「IE11にて画面更新後に操作(COM)ができない  #N45」を試すと、「BusyWait(ie)」を入れた行で止まったままになります。

No.2143 2016/02/14(Sun) 10:28:34

Re: タイトルが取得できない / Liners
#45 で止まるとなると、かなり厳しい環境のようですね。
当方さらに低スッペクのPCで検証しましたが、表示はOKでした。

ie11の互換表示は、ie7エミュレーターですが、今回の場合は表示されますよ。
ie10以下のように互換エンジンを搭載していないので、多少互換性が低い。だからMSは後で、エンタープライズモードを追加した。

で、このie11の互換表示で注意しておきたいのは、登録はwebサイト単位なので、今回の場合確認ボタンを押す前のページで登録してください。

No.2144 2016/02/14(Sun) 12:22:59

Re: タイトルが取得できない / 海士
再度ご回答くださいましてありがとうございます。

BusyWaitでは完全に止まったままになります。
一応PCのスペックを書きますと、Corei7-5500U/メモリ16GB/240GB SSD + 1T HDDです。

元のスクリプトは、押す前も後もURLはまったく同じです。最初に書いたサンプルもhttp://www.php-factory.netを互換表示設定に登録しても動作しませんでした。

No.2146 2016/02/14(Sun) 16:29:02
FAQの#46について / 岩崎
Windows8.0から8.1に変更したところ#46のエラー事象が発生しました。
但し、発生する場合としない場合がありました。
発生する場合)
自身のアカウント(ローカルアカウント、Administrator)でログインし実行する。
発生せず正常にその後の処理も行われる場合)
 タスクスケジューラで、"最上位の特権で実行する"設定をして実行する。

#46の対処法と上記の正常終了する場合の方法はイコールなのでしょうか?

No.2131 2016/02/10(Wed) 22:24:03

Re: FAQの#46について / 通りすがり
違うでしょう。
というかこれはもう修正されていると思うけど。
ちゃんとWindows Updateしてます?

No.2134 2016/02/11(Thu) 15:13:51

Re: FAQの#46について / 岩崎
回答、有難うございました。
これにて、問い合わせを終了します。

No.2142 2016/02/14(Sun) 03:27:50
文字間に半角スペースを入れるには / みつ
いつもお世話になってます。

AAA.txtの縦の文字を横に半角スペースを入れて表示したいのですがどうすればできるでしょうか。
いろいろ考えてみたのですが分かりませんでした。

1111
2222
3333



1111 2222 3333

よろしくお願いします。

No.2132 2016/02/11(Thu) 13:12:31

Re: 文字間に半角スペースを入れるには / みつ
追記

GETIDとKBD関数を使わずに、FOPEN等でファイルを実際に開かずに裏で作業させたいです。

よろしくお願いします。

No.2133 2016/02/11(Thu) 14:33:25

Re: 文字間に半角スペースを入れるには / 通りすがり
変換後 = REPLACE(変換前, "<#CR>", " ")
でどうですか

No.2135 2016/02/11(Thu) 15:17:03

Re: 文字間に半角スペースを入れるには / みつ
通りすがりさん

こんな方法があったんですね。
無事にできました。

ありがとうございました。

No.2138 2016/02/12(Fri) 08:49:13
SPLITの区切り配列を既存の配列に代入(次元数が合いません) / ASH_LYNX
2回目のprintの結果が,
0#a#
1#b#
2#c#
3##
4##
5##
となると思ったのですが,SPLITで「次元数が合いません」エラーが出ます。

実際には,strは,"a<#TAB>b<#TAB>c<#TAB>d" や "a<#TAB>b<#TAB>c<#TAB>d<#TAB>e" など
SLCTBOX(SLCT_CHK + SLCT_STR,〜) の戻り値を想定しています。

ヘルプでは,SPLITは「区切り配列を作成し返す」とあり,作成される区切り配列の添字は[0],[1],[2]で,
それを添字[5]の配列に代入しようとしてエラーだと思うのですが,
既に宣言されている配列にSPLITの結果を代入できないでしょうか?

//------------------------------------------
Option Explicit

dim i,str,x[5]
str ="a<#TAB>b<#TAB>c"

for i = 0 to 5
  print i + "#" + x[i] + "#"
next

x[] = SPLIT(str,"<#TAB>")

for i = 0 to 5
  print i + "#" + x[i] + "#"
next

No.2136 2016/02/11(Thu) 15:55:00

Re: SPLITの区切り配列を既存の配列に代入(次元数が合いません) / リキュール
配列をx[5]にする必要があるのでしょうか。

Option Explicit

dim i,str,x
str ="a<#TAB>b<#TAB>c"

x = SPLIT(str,"<#TAB>")

for i = 0 to length(x)-1
  print i + "#" + x[i] + "#"
next

No.2137 2016/02/11(Thu) 22:55:48
COMエラーについて / 初心者
IE.Navigateを使用してページ移動を複数回する際に、COMエラーが発生してしまうことがあります。
同じプログラムを以前の環境で使用していた際には問題なかったのですが、現環境ではうまく動きません。変わった点はおそらくIEのバージョンのみだと思います。IEは11です。
COMエラーは発生するときとしないときがあります。
発生しないときはページ移動せずにそのまま次の行に移動するようです。

IESetDataなどでもプログラムが途中終了するようになりました。
一回目のIESetDataでは問題ないのですが、SleepやBusyWaitを挟んで二回目のIESetDataを実行する前に途中終了してしまいます。

どちらもDebuggerのほうでトレース実行や通常の実行をした際には問題なく実行されることを確認しました。

管理者権限での実行も試しましたがうまくいかず、IEの保護モードの解除も特に変化はありませんでした。

デバッガと同じように動作をさせることはできないでしょうか?
何卒よろしくお願いいたします。

No.2125 2016/02/09(Tue) 12:55:49

Re: COMエラーについて / routa
FAQは確認しましたか。
IE11にて画面更新後に操作(COM)ができない  #n45

No.2129 2016/02/10(Wed) 01:25:27

Re: COMエラーについて / 初心者
回答ありがとうございます。
IE.NavigateのほうはBusyWaitの変更で動くようになりました。
ありがとうございます。
RecIEのほうで記録したままのBusyWaitを使っていたのですが、
SendMessageA(ie.Hwnd, WM_ACTIVATE, 0, 0)は入っていたので問題ないと思っていました。
とりあえず動いたので良かったです。

また、IESetDataのほうは変わらず二回目を実行できない状態です。
BusyWaitを入れかえたことにより強制終了はせずにプログラムは動きますが、
二回目のIESetDataのみ実行せずにスルーする状態です。

IESetDataをfor文で囲っているのですが、その影響はあるのでしょうか?

No.2130 2016/02/10(Wed) 09:42:13
コピーできません / taka
いつもお世話になっております.
解析結果をコピーするプログラムを書いているのですが,なぜかコピーできません.
どこが間違っているのでしょうか?
ご指摘宜しくお願い致します.

AAA = GETID("PRNSOL Command","ListerPopup")
CTRLWIN(AAA,ACTIVATE)
MOUSEORG(AAA)
KBD(VK_WIN, DOWN)
KBD(VK_RIGHT, CLICK)
KBD(VK_WIN, UP) //ページを右端に寄せる
SLEEP(1)
BTN(LEFT,DOWN,779,76)
MMV(779,837)
BTN(LEFT,UP,779,837) //スクロールバーを一番下まで下げる
ACW(AAA,800,0,800,860,0)
MOUSEORG(AAA)
CHKIMG("節点番号.bmp",-1)
MMV(G_IMG_X + 350, G_IMG_Y + 1)  //画像から350離れた所から403離れた所までコピー
BTN(LEFT,CLICK)
SLEEP(1)
BTN(LEFT,DOWN)
MMV(G_IMG_X + 403, G_IMG_Y + 1)
BTN(LEFT,UP)
KBD(VK_CTRL, DOWN)
KBD(VK_C, CLICK)
KBD(VK_CTRL,UP)
どうも下から8行目のBTN(LEFT,CLICK)まではうまく作動しているようです.
宜しくお願い致します.

No.2118 2016/02/08(Mon) 15:42:03

Re: コピーできません / taka
すいません.8行目以降に1行毎にsleepを挟むと上手く行きました.
No.2119 2016/02/08(Mon) 16:57:49

Re: コピーできません / taka
何度もすいません.Sleepを入れる事でコピーできるようにはなったのですが,何回も試してみると,数回に1回はコピーされないといった状態です.どうすれば毎回コピーしてくれるようになるのでしょうか.コピー範囲はきちんと選択されています.
御手数おかけしますが,宜しくお願い致します.

No.2121 2016/02/08(Mon) 20:03:53

Re: コピーできません / stuncloud
対象アプリケーションがなんなのかわからない上に、MMVとBTNによる操作とあってはどなたもアドバイスのしようがないのでは
要点を絞って質問をしていただくか、さもなければご自分で試行錯誤していただくほかないと思います

・Sleepでおおよそうまくいく
・数回に一回くらいは失敗する

ということなので、失敗する場合の状況をよく観察して失敗頻度を減らせるようSleepを調整する、あるいは失敗した場合は再施行できるような仕組みを導入する、など地道にやってみてください

No.2123 2016/02/09(Tue) 10:49:07

Re: コピーできません / taka
申し訳ありません.
私の質問の仕方が悪かったようで.
ありがとうございました.

No.2128 2016/02/09(Tue) 16:09:14
エラーやストップボタンを押した際のファイルの保存について / アッキー
お世話になります。

fopen()して、WEBページからテキストの情報を抜き出して、
fput()でテキストファイルに保存していくツールを作っているのですが、
エラーで終了したり、ストップボタンを押して終了すると、
FCLOSE()を実行できないためだと思いますが、ファイルが保存できません。

結構大量な情報になるので、保存できなかった際のダメージが大きいです。

エラーやストップボタンを押して途中終了させた際にも、
ファイルの内容を保存する方法はないでしょうか?

どうぞよろしくお願い致します。

No.2124 2016/02/09(Tue) 11:36:41

Re: エラーやストップボタンを押した際のファイルの保存について / stuncloud
OPTION OPTFINALLYとtry-finallyの組み合わせで、finally部が停止やエラーの後でも実行されるようになります

OPTION OPTFINALLY
try
 fid = fopen("hoge.txt", F_READ or F_WRITE)
 fput(fid, "何か書く")
 gettime(0, "aaaaa") // エラー
finally
 fclose(fid)
endtry

No.2126 2016/02/09(Tue) 13:50:05

Re: エラーやストップボタンを押した際のファイルの保存について / アッキー
stuncloud様

ありがとうございました!

try-finallyってそうやって使うんですね。
勉強になりました。

早速スクリプトに組み込んでみます。
本当に助かりました。

今後ともよろしくお願い致します。

No.2127 2016/02/09(Tue) 16:07:44
全1170件 [ ページ : << 1 ... 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 ... 117 >> ]