|
●この掲示板でいつも解決して助かっています。 以下のスクリプトで矢印のところがエラーです。 行いたいことは「開いた”フォルダの選択”という記入欄にI番目のフォルダー名を送る」ことです。
n=GETDIR("D:\VSRADfinish", "\", TRUE, 0) //フォルダ数とフォルダー一覧を得る PRINT N + "個のフオルダーが見つかりました" SLEEP(1)
FOR i =0 to (LENGTH(GETDIR_FILES) - 1) //フォルダ数だけLOOPする
//以下BAAD解析する ACW(GETID("BAAD ver.4.2.1.0","SunAwtFrame"),31,9,1024,768,0) MOUSEORG(GETID("BAAD ver.4.2.1.0","SunAwtFrame"))
BTN(LEFT,CLICK,738,680,0) ACW(GETID("DICOM Convert","SunAwtFrame"),395,345,599,191,0) MOUSEORG(GETID("DICOM Convert","SunAwtFrame")) BTN(LEFT,CLICK,404,70,0)
SENDSTR("フォルダの選択","D:\VSRADfinish\FILES[i]") ←ここでエラー出ます KBD(VK_ENTER,CLICK)
BREAK
NEXT
|
No.4981 2018/01/14(Sun) 21:11:36
|
☆ Re: GETDIRで得たI番目のフォルダー名をSENDSTRで送るには? / satocha |
|
|
sendstr関数の第一引数は文字列ではなくウインドウIDです。ヘルプのsendstrの項を参照してください。
もしかして、第二引数の部分でNo.4967と同じミスをしてはいませんか? せきこうじさんが書いたコードはD:\VSRADfinish\にある「FILES[i]」という名前のフォルダ?ファイル?の意味ですが。
|
No.4984 2018/01/15(Mon) 07:47:35
|
|
☆ Re: GETDIRで得たI番目のフォルダー名をSENDSTRで送るには? / せきこうじ |
|
|
●投稿者本人からのお礼
SENDSTR("フォルダの選択","D:\VSRADfinish\FILES[i]") の前後を
WID=GETID(GET_ACTIVE_WIN) SENDSTR(WID,"D:\VSRADfinish\+FILES[i]+")
として解決しそうです。
|
No.4986 2018/01/15(Mon) 10:56:36
|
|
☆ Re: GETDIRで得たI番目のフォルダー名をSENDSTRで送るには? / stuncloud |
|
|
>SENDSTR(WID,"D:\VSRADfinish\+FILES[i]+") >として解決しそうです。 …しませんよ!
+ を使うのは「文字列の連結」を行うためです
print "foo" + "bar" + "baz"
とすると "foobarbaz" という文字列になります 文字列と文字列を繋ぐように + を書いているのがわかるでしょうか 数値と数値であれば足し算になりますが、文字列同士であればそれらがくっつきます これが、文字列の連結です その応用で文字列の入った変数と文字列の連結もできます
bar = "bar" print "foo" + bar + "baz" // foobarbaz
これを踏まえて先程書かれたものを見てみましょう
"D:\VSRADfinish\+FILES[i]+"
+ が書かれていますがこれは連結記号としての + ではありません "" で括られているのでただの文字列です 当然ただの文字列ですから、連結の機能はありません また FILES[i] も本来は変数として扱いたかったのでしょうが同じ理由でこれもただの文字列です
正解は以下です
"D:\VSRADfinish\" + FILES[i]
"D:\VSRADfinish\" という文字列と FILES[i] (に入っている文字列)を連結した文字列になります
|
No.4988 2018/01/15(Mon) 13:49:31
|
|
☆ Re: GETDIRで得たI番目のフォルダー名をSENDSTRで送るには? / せきこうじ |
|
|
●ありがとうございました。諸兄のアドバイスでようやく動きました。 医用画像解析を行っていますが、少しずつ完成に近づいています。
n=GETDIR("D:\VSRADfinish", "\", TRUE, 0) //フォルダ数とフォルダー一覧を得る PRINT N + "個のフオルダーが見つかりました" SLEEP(1)
FOR i =1 to n //フォルダ数だけLOOPする i=i-1 //カウンター
//以下BAAD解析する ACW(GETID("BAAD ver.4.2.1.0","SunAwtFrame"),30,10,1024,768,0) MOUSEORG(GETID("BAAD ver.4.2.1.0","SunAwtFrame")) SLEEP(1) BTN(LEFT,CLICK,804,678,0) //DICOM convert開く ACW(GETID("DICOM Convert","SunAwtFrame"),40,70,599,191,0) SLEEP(1) MOUSEORG(GETID("DICOM Convert","SunAwtFrame")) BTN(LEFT,CLICK,422,71,0) ACW(GETID("フォルダの選択","#32770"),48,70,734,542,0) MOUSEORG(GETID("フォルダの選択","#32770")) //選択画面が開く SLEEP(1) WID=GETID(GET_ACTIVE_WIN) SENDSTR(WID,"D:\VSRADfinish\"+GETDIR_FILES[i]) KBD(VK_ENTER,CLICK) SLEEP(1)
|
No.4989 2018/01/15(Mon) 20:54:04
|
|