[ 掲示板に戻る ]

過去ログ閲覧モード

TOKENの仕様??バグ??勘違いならすみません / RICES
明確に確認できていないのですが、TOKENを連想配列の入れると誤作動?するようです?

 連想配列[TOKEN(文字列,x)]=TOKEN(文字列,x)

とすると正常に動作しないようです。TOKENの切り出しが正常に行われない?

一方、

 DIM A = TOKEN(文字列,x)
 連想配列[A]=TOKEN(文字列,x)

とすると正常に動作するようです。

No.4152 2017/06/20(Tue) 21:28:54

Re: TOKENの仕様??バグ??勘違いならすみません / RICES
すみません、TOKENの引数を逆に書いてしまいましたが、正しく書いても挙動は同じです。
No.4153 2017/06/20(Tue) 22:41:09

Re: TOKENの仕様??バグ??勘違いならすみません / satocha
別に誤動作はないようですが。
UWSCが代入文を処理するとき、最初に右辺値(何を)を計算し、次に左辺値(どこへ)を決定しているだけではないでしょうか。

tokenでなくても、また、連想配列でなくても、呼ぶたびに違う値を返す関数を左辺値の評価が必要な代入文で使ってみれば、右辺値、左辺値の順で計算していることが分かります。

通常の代入文は左辺値がただの変数なので評価順を気にする必要はないのですが。

public round=1
str="a,b,c,d"
hashtbl hash
dim ary[]=0,1,2,3,4,5,6

hash[token(",",str)]=token(",",str)
hash["a"+foo()]=foo()
ary[foo()]=-1*foo()

for key in hash
msgbox("hash["+key+"]="+hash[key])
next

msgbox(join(ary))

function foo()
result=round
round=round+1
fend

No.4154 2017/06/21(Wed) 01:25:08

Re: TOKENの仕様??バグ??勘違いならすみません / しろまさ
確認できました。
下記テストで a1() は 23 1 、a2() は 1 23 となります。
1行で書くと = を挟み、代入側よりも式側のほうから評価されている感じです。

仕様かどうか umiumiさんの回答が必要だと思います。
まあ1行増えるだけなので大した問題ではないですね。

HashTbl 連想配列
Dim x = " ", 文字列 = "1 23 456"
a1(連想配列, x, 文字列) // 23 1
a2(連想配列, x, 文字列) // 1 23

Procedure a1(連想配列[], x, 文字列)
  連想配列[TOKEN(x,文字列)]=TOKEN(x,文字列)
  MsgBox(連想配列[0, HASH_KEY] + " " + 連想配列[0, HASH_VAL])
FEnd

Procedure a2(連想配列[], x, 文字列)
  DIM A = TOKEN(x,文字列)
  連想配列[A]=TOKEN(x,文字列)
  MsgBox(連想配列[0, HASH_KEY] + " " + 連想配列[0, HASH_VAL])
FEnd

No.4155 2017/06/21(Wed) 08:12:03

Re: TOKENの仕様??バグ??勘違いならすみません / RICES
satochaさんしろまささんありがとうございます。
右辺から計算されるといわれてみれば全くその通りですね…
できる限りコードを削ろうとしてこんな羽目になりましたが、とても勉強になりました。
配列に関しては定義から先に算出されると勝手に思い込んでいましたので、そう考えれば全くつじつまが合いますね。

No.4156 2017/06/21(Wed) 09:19:12
debuggerでのlocal変数表示について / syuhari
いつもお世話になっております。

首記の件につきまして、debuggerにてスクリプトを実行させた際、
画面右下にlocal欄が表示されません。
Function内ででブレークを貼って実行すれば表示されるかと思ったのですが、
該当のブレークで止まった際にもローカル変数がdebuggerのlocal欄に表示されませんでした。

local欄を表示させる方法があれば教えて下さい。

Win7 64bit
UWSC Pro Ver.5.3.0.2です

よろしくお願いします。

No.4138 2017/06/18(Sun) 11:27:00

Re: debuggerでのlocal変数表示について / syuhari
すみません。自己解決しました。

debuggerを縦に縮めるとlocal欄が隠れてしまうだけでした。

ある程度縦に伸ばすと表示されました。

お騒がせしました。

No.4139 2017/06/18(Sun) 11:35:06
sendstrでexcelに貼り付けできない / orally
こんにちは
uwscでできることを確認しようと、サンプルを打って試している者です。

N11のサンプル(http://www.uwsc.info/sample.html#N11)なのですが、
新規エクセルファイルに対して、既存csvファイルの内容のコピーができません。
エクセルに値を書き込むのに何か方策があればご教授いただけますと助かります。

print関数を使用し、csvファイルから読み込みはできていることを確認しております。
また、notepadに対しては書き込めることを確認しております。

掲示板過去ログでは、似た内容は
「sendstrで文字が送れない / まるぱ 2016/04/16(Sat)」ぐらいで、今年ではなさそうでした。

UWSC: ver 5.3.0.2
OS: Windows 10 pro
EXCEL: 2010

// コード
// app = exec("EXCEL.exe")
app = exec("C:\Program Files\Microsoft Office\Office14\EXCEL.exe")
// app = exec("notepad.exe") なら書き込めることを確認
Sleep(3)
print app
fid = FOpen("hoge.csv", F_READ) // 実際はフルパスで指定
print fid
for i = 1 to FGET(fid, F_LINECOUNT)
print FGet(fid, i, 1)
SendStr(app, FGet(fid, i, 1), 1, True)
print FGet(fid, i, 2)
sendStr(app, Fget(fid, i, 2), 2, True)
print FGet(fid, i, 3)
sendStr(app, fget(fid, i, 3) , 3, True)
Sleep(3)
next
Fclose(fid)

No.4137 2017/06/18(Sun) 00:01:57
子ウィンドウのボタンが押せない / sage
私は日経新聞CD-ROMを使って特定の期間の特定のページを印刷するwindowsマクロを作っているのですが、子ウィンドウのtextboxに入力したり、特定のボタンを押せずに困っています。

↓このように親ウィンドウのIDは上手く取得でき、アクティブにできます。
id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300)
CTRLWIN(id, ACTIVATE)

↓しかし、子ウィンドウのIDは取得できず、アクティブにできません。
id = GETID("記事検索", "ThunderRT6FormDC",300)
CTRLWIN(id, ACTIVATE)

「マクロの記録」を有効にして、子ウィンドウを左クリックしアクティブにしてから、タブキーを何回か押下して、子ウィンドウのボタンを選択してからエンターキーを押下し、記録停止⇒コードを見るとアクティブになっているのは親ウィンドウだし、キーボード操作は記録されていません。

↓強引に下記のコードを入れても親ウィンドウに命令が行き、巧く行きません。
SENDSTR(id, "PG001") //textboxにPG001と送る
KBD(VK_TAB, CLICK, 100) //タブクリック
KBD(VK_RETURN, CLICK, 100) //リターン押下
CLKITEM(id, CLK_BTN , 1) //1番目のクリックボタンを押下

なお、BTN(LEFT,CLICK,742,461,609)などクリックを使って代用しようとすると、CD-ROM起動時に毎回ウィンドウの座標が変わるので変なところがクリックされ巧く行きません。

↓このサイトを参考にし、全てのオブジェクトを取得した結果、
https://stuncloud.wordpress.com/2012/05/22/uwsc-%E6%8C%87%E5%AE%9A%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E4%B8%8A%E3%81%AE%E5%90%84%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%88%E3%83%AB/

↓このような表示が得られました。
「日経 全文記事データベース」が親、「記事検索」と「検索結果」が子ウィンドウになります。
"日経 全文記事データベース", "ThunderRT6MDIForm"
"", "ToolbarWndClass"
"", "ToolbarWindow32"
"", "MDIClient"
"検索結果", "ThunderRT6FormDC"
"", "ThunderRT6TextBox"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"記事検索", "ThunderRT6FormDC"
"", "ThunderRT6TextBox"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"", "ThunderRT6CommandButton"
"メニュー", "ThunderRT6FormDC"
"", "StatusBarWndClass"

No.4133 2017/06/15(Thu) 09:31:06

Re: 子ウィンドウのボタンが押せない / 森
私は普段web系がメインなのでgetidを使うことはほとんどない無いのですが、ヘルプによると第4引数を指定することで子ウインドウが取得できるようですね。
戻値 = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] )
MDI子タイトル: MDIウィンドウ中の子ウィンドウタイトル

なので、以下でどうでしょうか?

// 子ウィンドウのIDを取得
id = GETID("日経 全文記事データベース", , , "記事検索")

ダメならクラスも指定してみてください

No.4134 2017/06/16(Fri) 10:52:51

Re: 子ウィンドウのボタンが押せない / 森
> BTN(LEFT,CLICK,742,461,609)などクリックを使って代用しようとすると、
> CD-ROM起動時に毎回ウィンドウの座標が変わるので変なところがクリックされ巧く行きません。


これに関してはウインドウを決まった位置に移動させることで簡単に対処できます。

id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300)
CTRLWIN(id, ACTIVATE)
acw(id , 0 , 0) //----- 必要であれば、第4〜5引数で大きさも固定してください。

No.4135 2017/06/16(Fri) 10:57:20

Re: 子ウィンドウのボタンが押せない / sage
森 さま
本当にありがとうございます!

>// 子ウィンドウのIDを取得
>id = GETID("日経 全文記事データベース", , , "記事検索")

この方法で子ウィンドウをアクティベート出来るようになりました!

>id = GETID("日経 全文記事データベース", "ThunderRT6MDIForm",300)
>CTRLWIN(id, ACTIVATE)
>acw(id , 0 , 0) //----- 必要であれば、第4〜5引数で大きさも固定してください。

親ウィンドウ、子ウィンドウ両方の座標を(0,0)にすることで、どのボタンも巧くクリック出来るようになりました!

本当に助かりました!重ねてお礼申し上げます。m(__)m

No.4136 2017/06/17(Sat) 16:11:16
記録が出来ない / skyblue
本日uwscをデスクトップ上にダウンロードし、同じフォルダー内にRecUws.dllがあります。
右クリックで管理者権限で実行にしても記録のボタン(色が薄いまま)が押せません。

ウィンドウズ10です。

素人の質問で申し訳ありませんが、ご指導ください。

No.4119 2017/06/11(Sun) 14:59:07

Re: 記録が出来ない / satocha
「デスクトップ上にダウンロードし」たあと、きちんと解凍したのでしょうか。
zipファイルをダブルクリックしただけでは、一見通常のフォルダのように見えても、UWSC.exeが圧縮フォルダ内のRecUws.dllを認識できません。
http://www.uwsc.info/faq.html#N5

もし、きちんと解凍したうえで上記の問題が起きているなら、ダウンロードが不完全だった可能性がありますので、もう一度ダウンロードし直してみてください。

No.4124 2017/06/12(Mon) 17:01:14

Re: 記録が出来ない / skyblue
・GruGru.uwsを読み込んで、電卓がぐるぐる回り、電卓計算はできています。
 この状況では解凍できているとは保証できませんか?

・2回ほどダウンロードし解凍していますが結果は同じです。

・ウィンドウズ10で問題が起きる場合が有るのでしょうか?

No.4131 2017/06/13(Tue) 17:53:10

Re: 記録が出来ない / 確認
使用期限が過ぎているのでは? 以前一度インストールしているとか。
No.4132 2017/06/14(Wed) 08:05:19
ソフトのボタンがグレイアウトの場合は分岐する / jasmine
弥生販売の集計をUWSCソフトで行っています。

集計の元値がないと、CKLITEMで押す予定のボタンがグレイアウトしていて押下できず、
プログラムがそこで止まってしまいます。

グレイアウトしていて押せない場合は処理をとばして(分岐して)数行先の処理に進む、という素敵な方法はないでしょうか?

よろしくお願い致します。

No.4123 2017/06/12(Mon) 15:10:38

Re: ソフトのボタンがグレイアウトの場合は分岐する / satocha
getitemの第5引数の真偽で、全部品を取得するかイネーブルのものだけを取るか指定できます。
No.4125 2017/06/12(Mon) 17:18:23

Re: ソフトのボタンがグレイアウトの場合は分岐する / stuncloud
ret = clkitem(id, "ボタン名", CLK_BTN, FALSE)
if ret then
 print "クリックできます"
else
 print "クリックできません"
endif

ボタンがディセーブルで押せない場合はclkitemがFALSEを返します
clkitemの第四引数をFALSEにすることでクリック可能な場合でもクリック処理を行わないので、クリックできるかどうかだけを調べるたい場合はこの方法が便利です
クリックしつつ処理を続行する場合は第四引数をTRUEにするか、省略してください

No.4126 2017/06/12(Mon) 18:11:15

Re: ソフトのボタンがグレイアウトの場合は分岐する / jasmine
ご回答ありがとうございます♪
これからTryしてみます!!
ありがとうございました。

少し時間がかかるかもしれませんが、
うまくいきましたら、またこちらでご報告致します!

No.4129 2017/06/13(Tue) 09:51:25

Re: ソフトのボタンがグレイアウトの場合は分岐する / jasmine
できました!!
stuncloudさんが示していただいた方法で問題クリア!!できました♪
素晴しいです!!感謝です!

satochaさんもありがとうございましたm(__)m

とりあえずご報告まで☆

No.4130 2017/06/13(Tue) 11:53:10
TXT読み込みおよび計算について / null
TXTファイルの内容
200

TXTファイルの内容をKBDを使って出力
またTXTファイル"200"に*2をしてKBDを使って出力

このコードを作成したいのですがうまくいきません
ご回答よろしくお願いします(o*。_。)oペコッ

No.4120 2017/06/12(Mon) 02:29:15

Re: TXT読み込みおよび計算について / 森
スクリプトは以下の通りです。
基本的なコマンドの基本的な使い方ばかりなので、各コマンドについてはヘルプを参照してください。

f = fopen("TXTファイル.txt")
s = fget(f, F_ALLTEXT)
fclose(f)

id = getid("出力したいウインドウ")
ctrlwin(id , ACTIVATE)

// 200を出力
for i in s
 kbd(eval("VK_" + i))
next

// 200 * 2を出力
s = val(s) * 2
for i in s
 kbd(eval("VK_" + i))
next

No.4121 2017/06/12(Mon) 08:33:50

Re: TXT読み込みおよび計算について / null
森様ありがとうございます
kbd(eval("VK_" + i))が定義されてませんとエラーが出ます
どこの部分が悪いのでしょうか?

No.4122 2017/06/12(Mon) 11:33:20

Re: TXT読み込みおよび計算について / 森
UWSCのエラーはコマンドが大文字で表示されるので、提示されたエラー文は実際のものとは違っていて、実際はこのように表示されていたのでは?
-----------------
変数:VK_が定義されていません
〇行目:KBD(EVAL("VK_" + I))
-----------------

だとすると、原因はテキスト中に"200"以外に、スペース、改行、タブなどが含まれていることが可能性の一つとして推測できます。
このことは以下のスクリプトを動かしてみると理解できると思います。
---------------------------------------
// 改行が含まれたテキスト
textblock txt
123

endtextblock

// 123出力の後、改行でエラー発生
exec("notepad")
for i in txt
 kbd(eval("VK_" + i))
next

No.4127 2017/06/12(Mon) 18:25:53

Re: TXT読み込みおよび計算について / null
無事することができました
原因は読み込みファイル名の間違いでした
ありがとうございました!次からちゃんと確認します

No.4128 2017/06/12(Mon) 21:03:24
exe化のコマンドライン書式を教えてください。 / もも
すいません、数年前に一度、教えて頂いたと思うのですが、
*.uwsのexe化のコマンドライン版の設定方法とかヘルプの場所とか
どなたか解説or誘導お願いします。

いつもはUws2ExeのGUI版で問題ない頻度なのですが、
最近、ちびっと修正してはexe化してデバッグ…が頻発してまして、
定番設定をショートカット化してドロップ変換とかしたいんです。

よろしくお願いします。

No.4116 2017/06/08(Thu) 18:22:58

Re: exe化のコマンドライン書式を教えてください。 / もも
うわすいません、
書いた直後に Uws2Exe.chm 見つけました。
失礼しました。

No.4117 2017/06/08(Thu) 18:27:19

Re: exe化のコマンドライン書式を教えてください。 / stuncloud
> 最近、ちびっと修正してはexe化してデバッグ…が頻発してまして、
> 定番設定をショートカット化してドロップ変換とかしたいんです。

僕もこういうのやることあるんですが、そういう場合はGET_UWSC_NAMEを見て.uwsで実行されたら自身をexe化、.exeで実行されたら本来の処理を行うようにしてます
楽ちんでいいです

No.4118 2017/06/09(Fri) 11:18:25
nextSibling がエラーを起こす / t-kawamura
以下のプログラムが

  COM_Error:例外が発生しました。 32行目: PRINT G_RESULT.nextSibling.outerhtml

となります。

動作環境 GET_UWSC_VER=5.21 GET_UWSC_PRO=0
Windows 7 professional 32bit   Internet Explorer 11 です。

何が問題なのでしょうか?


////////////////////エラーを起こすプログラム////////////////////////////////////

public g_ie,g_result
print " "

///手動で http://pr.nikkei.com/pc/n/index.html をInternet Explorerのカレントタブにする

g_ie=GETACTIVEOLEOBJ("InternetExplorer.Application","日経電子版")
IEwait()
IEshow()
print g_ie.document.title // 「日経電子版ご購読の申し込み」を確認する

MSGBOX("中断1")

for tag1 in g_ie.document.GetElementsByTagName("div")
ifb pos( "/common/images/logo", tag1.outerhtml )
n = 0
tag2s = tag1.GetElementsByTagName("div")
for i = 0 to tag2s.length-1
ifb pos( "/common/images/logo", tag2s.item(i).outerhtml )
n = 1
break
endif
next
ifb n = 0
g_result = tag1
break
endif
endif
next

print g_result.outerhtml
print g_result.parentnode.outerhtml
print g_result.nextSibling.outerhtml

MSGBOX("中断2")
exit



// 起動中のIEを見えるように
procedure IEshow()
g_ie.visible = True

// 位置調整
wid = hndtoid( g_ie.hwnd )
acw( wid )
//acw( wid, 0, 0 )

// 最大化
ctrlwin( wid, ACTIVATE )
//ctrlwin( wid, MAX )

// マウス相対座標をこのブラウザ基準に設定
MouseOrg( wid )
fend


// IEがビジー状態の間待ちます
procedure IEwait()
repeat
sleep( 0.1 )
until ( ! g_ie.busy ) and ( g_ie.readystate = 4 )
fend

No.4098 2017/06/03(Sat) 14:33:04

Re: nextSibling がエラーを起こす / satocha
htmlのソースはこんな感じに書かれています。
<tag1>
 tag1の中身
</tag1>
ここに何かテキスト
<tag2>
 tag2の中身
</tag2>

で、tag1の次要素はtag2ではなく、「ここに何かテキスト」というテキストノードとなることは納得できると思います。

今、「ここに何かテキスト」部分を削除し、改行だけを残すとどうなるでしょう。

あたかもtag1の次要素はtag2であるかのように人の目には見えますが、改行がある以上、機械的には次要素はテキストノード(ただし中身の文字列は空)のままです。テキストノードのinnerHTMLやouterHTMLは取れませんから、エラーになります。

ちなみに昔のIEはここらへん、融通を利かせていたのですが、モダンブラウザ化が進み、HTMLの原則に従うようになってきています。

対処法:あるノードのnextSiblingのノードタイプがテキスト(=3)なら、さらに次を探せばよい。下はループにしなくてもいいと思いますが念のため。

nextElement =g_result
repeat
 nextElement =nextElement.nextSibling
until nextElement.nodeType<>3

print nextElement.outerhtml

No.4101 2017/06/04(Sun) 11:28:36

Re: nextSibling がエラーを起こす / t-kawamura
satocha様
ご指摘のように、tag1 と tag2 の間のノードのことを無視していました。
「next」 は 単純に「次のタグ」と思い込んでいました。


https://syncer.jp/javascript-reference/element/nextelementsibling

もしも2つ目と3つ目のli要素の間に何も文字がなければ、
nextSiblingとnextElementSiblingプロパティの内容は同じになります。
要素だけが必要となる場合、nextElementSiblingプロパティは有用です。


にあるように、最近のブラウザの作り方の変更により、
DOM呼び出しの結果に違いが出ているのだとわかりました。

今回は、nextElementSibling で解決するみたいです。

本当にお世話になりました。ありがとうございました。

No.4109 2017/06/05(Mon) 15:54:05
動作を一つに / れい
初心者の質問で申し訳ありません。

uwscの仕様について質問なのですが、マクロをこまめに作っていき、複数のマクロファイルを一つの動作としてつなげるといったことは可能なのでしょうか?

フリーのuwscを使っており、有料のも
のだとテキストの関数を繋げればよいだけなので可能かと思いますが、フリーのuwscでは複数の保存した動作をまとめることは不可能でしょうか?

No.4107 2017/06/05(Mon) 13:50:22

Re: 動作を一つに / しろまさ
> 有料のものだとテキストの関数を繋げればよいだけなので可能かと思いますが

フリーでもその考えでOKですよ?

別ファイルをCallで繋げることは可能ですが、
Callは関数群の読み込みとしメインで関数の順番を組み立てるのが
管理しやすい使い方だと思います(個人的に)

まあ、使用方法はお好みで。

No.4108 2017/06/05(Mon) 15:11:28
全1154件 [ ページ : << 1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 ... 116 >> ]