自動化ツールUWSC使いよ集まれ19 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/12/04(日) 17:04:38.16ID:nLvo1o5D0
Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html

●UWSC 掲示板(※作成依頼掲示版ではありません)
 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&;;mode=past

●UWSC - Wikipedia
http://ja.wikipedia.org/wiki/UWSC

●使い方・基礎解説学習サイト
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://www.confrage.com/uwsc/
http://necro.jp/dev/uwsc/
http://park14.wakwak.com/~simizu/uwsc/fruwsc.html
http://canal22.org/
http://big.tm.land.to/handbook/uwsc.htm
http://www.game-rev.com/review/gameut/uwsc.html

●スクリプトテンプレサイト
http://izagne.com/uwsc/
http://scripts.web.fc2.com/
http://www.nagomi-jp.net/~liners/
http://nem.symphonic-net.com/uwsct/0610uwsct.html
http://siromasa.digi2.jp/uwsc/
http://iriyak.adam.ne.jp/uwsc.html

前スレ 自動化ツールUWSC使いよ集まれ18
http://potato.2ch.net/test/read.cgi/software/1469866649/
2017/02/03(金) 18:26:26.21ID:etbTYyZh0
表示して何をしたいのしらないけど、見るだけなら
適当な画像Viewerに引数付きで実行させて表示させたらいいんじゃないの?
2017/02/03(金) 19:45:12.11ID:1BA6xmaO0
俺も以前からchkimgデバッグ用に取得した座標を
赤丸で囲むみたいなことしたいなとは思ってるが
楽にできる方法が見当たらなくて数年過ぎた
2017/02/03(金) 19:58:59.01ID:8LyjrKpy0
デバッグ用ならsaveimgでいいんでね?
2017/02/03(金) 22:10:49.86ID:ani81y8a0
342ではないが、saveimgだと思った通りに動いていない時の取得画像は
いったいどこにあった画像なのかわからないときが多々ある

画像中にどの座標を取得したのか視覚的にわかれば便利とは思う。
ウィンドウ全体のSSと座標をセットでログに書き出して
imgmagickとかで合成してもいいけど、uwscで出来ればいいね
2017/02/04(土) 00:03:35.69ID:3B772PpT0
>>340
ここまでやるなら素直にc++でdll作ったほうがいいな
2017/02/04(土) 00:25:31.71ID:/RVIS6is0
現在win7で今度PCを新調しようと思っているのですが
win7で作成したスクリプトはwin10でも問題なく動きますか?

http://w10.vector.jp/detail.php?s_no=115105
ここ見ると厳しそうな感じなんですが。
win10で回している人いたら教えてください。
2017/02/04(土) 00:37:30.20ID:kRLafUrA0
>>346
そのスクリプトの中身によるとしか言えんだろ
動かなかったら作り直せばいいだけだし
他人が作ったものなら作ったやつに聞けよ
2017/02/04(土) 01:51:04.48ID:7qyFAJFf0
一時的な座標でいいなら描画後の保護とか気にしない前提ならWIN32APIをUWSCから叩けばいいからなぁ
Procedure Rectan(inXYWH, inWidth=2, inColor=$0000FF)
 DEF_DLL GetDC(Hwnd):long:user32
 DEF_DLL ReleaseDC(Hwnd, Long):long:user32
 DEF_DLL SelectObject(long, long):long:gdi32
 DEF_DLL Rectangle(long, long, long, long, long):long:gdi32
 DEF_DLL CreatePen(long, long, long):long:gdi32
 DEF_DLL GetStockObject(long):long:gdi32
 DEF_DLL DeleteObject(long):long:gdi32
 DEF_DLL InvalidateRect(dword, dword, bool):bool:user32
 CONST PS_SOLID = 0
 CONST NULL_BRUSH = 5
 tmpXYWH = Split(inXYWH, ",", True, True)
 If Length(tmpXYWH) <> 4 Then
  //消去
  InvalidateRect(NULL, NULL, TRUE)
  Exit
 EndIf
 x1 = tmpXYWH[0]
 y1 = tmpXYWH[1]
 x2 = x1 + tmpXYWH[2]
 y2 = y1 + tmpXYWH[3]
 dc = GetDC(0)
 pen = CreatePen(PS_SOLID, inWidth, inColor)
 SelectObject(dc, pen)
 SelectObject(dc, GetStockObject(NULL_BRUSH))
 Rectangle(dc, x1, y1, x2, y2)
 DeleteObject(pen)
 ReleaseDC(0, dc)
Fend
349名無しさん@お腹いっぱい。
垢版 |
2017/02/04(土) 08:46:46.84ID:6WLzCwTE0
uwscでグローバルIPとか取得できる?
2017/02/04(土) 08:52:44.68ID:kR4mFE/e0
>>349
https://www.cman.jp/network/support/go_access.cgi
こういうのにアクセス
2017/02/04(土) 20:12:57.16ID:JBh+J3H90
スケジュールぎっしりなんだけど
変更しないまま

今日明日は行わない設定とか出来るのかな・・
2017/02/04(土) 22:25:00.86ID:N3Eh6WpV0
すいません
SaveImg("全体.BMP")
で画面をそのまま保存しようとするときに
IEやChromeが立ち上がっていると全部白で塗りつぶされたbmpファイルになってしまうんですが
何か対策はありますでしょうか?
(これらのブラウザが立ち上がっていなければ普通に画面のコピーが取れます)
353352
垢版 |
2017/02/05(日) 00:39:42.45ID:NFnN+CPr0
補足として
ChkImgXに付属の 簡単キャプチャ.exe を使用中にも
ブラウザ起動中はキャプチャ画面が真っ黒になってしまいます。
(プリントスクリーンボタンだとブラウザ起動中も画面コピーが取れますが、例によって色がわずかに変わるようです)
2017/02/05(日) 00:52:30.76ID:V0dd4qjJ0
>>353
プリントスクリーンボタンでもスクリーンショットが正しく取れないなら、
UWSCの問題じゃないよね
355352
垢版 |
2017/02/05(日) 08:52:49.81ID:NFnN+CPr0
>>354
ありがとうございます。
ブラウザ起動中にWinShotなどのいつくかのキャプチャソフトも取得した画面が常に真っ白か真っ黒、
もしくは画面下のWindowsタスクバーだけがコピーされるという症状になりました。

ブラウザ起動中に動いている何かが悪さしているようなのですが、
もしお気づきの点がありましたらどうかお願いいたします。
356352
垢版 |
2017/02/05(日) 09:12:52.41ID:NFnN+CPr0
自己解決しました。

セキュリティソフトに「ブラウザのIDを盗まれないために画面コピーをさせない」という機能があって
それがブラウザ起動時に動作することが原因でした。

UWSCを含むスクリーンショット機能のアプリケーションを許可したところ、
ブラウザ起動時にも正常に画面コピーが取れるようになりました。
2017/02/05(日) 09:19:18.96ID:k7ZQ8iDW0
色々やるなあセキュリティソフトは・・・
2017/02/05(日) 18:04:42.27ID:DdO3MfL60
>>348
ありがとうあっさり出来たよw
丸はRectangleをEllipseに書き換えるだけ引数の変更すら必要なし
引数inXYWHに文字列で"X座標,Y座標,幅,高さ"を与えるだけ
消す時はRectan("")
2017/02/06(月) 20:24:44.32ID:16KmOPkE0
新しいkeygenって、どこで落とせる?
検索して出てくるやつは、パスが必要。
2017/02/06(月) 21:28:02.95ID:EbCM1RAF0
さて何人が釣られるか
2017/02/06(月) 22:10:20.52ID:NWIYhDM50
複数キー入力をしたいのですが関数はsckey以外で何かありますか?
sckeyで試してみても先頭のキーしか出力されません
2017/02/06(月) 22:54:44.26ID:NWIYhDM50
>>361
付け加えると全く出力されないわけじゃなくvk_A,vk_Bとやりたいとすると

A A A A B A A B B A 
2017/02/06(月) 22:59:19.53ID:ZMaFkHuW0
複数キーっつったって
有効なのはCtrlとかShiftとかの修飾キーとの組み合わせだけじゃないの?
AとBとかじゃダメだろ
2017/02/06(月) 23:01:31.11ID:NWIYhDM50
>>363
理想は同時押しなんですけど同時押しはそもそも無理なんですかね・・・
2017/02/06(月) 23:24:35.95ID:A/T5VWkw0
"
WHILE True
WHILE(CHKIMG("hoge1.bmp")=FALSE) @
sleep(0.01)
WEND
BTN(LEFT,CLICK,500,500)
WHILE(CHKIMG("hoge2.bmp")=FALSE)
sleep(0.01)
WEND
BTN(LEFT,CLICK,600,600)
WEND


こんな感じのスクリプトで@の前にhoge3を読み込んだらAに、hoge3が無くてhoge1を読み込んだらそのまま続行みたいな事をしたいです
お願いします
"
2017/02/06(月) 23:32:40.61ID:/zydKSuA0
>>365
その説明だと伝わりにくくてエスパーするしかないからもう少し詳しく話して
2017/02/06(月) 23:40:41.51ID:A/T5VWkw0
>>366
BTN(LEFT,CLICK,600,600)を押した後に時々hoge3が表示されるときがあるので、表示された時はAに処理を渡して、
表示されずにループしてhoge1が表示された際はそのまま→sleep→BTNに処理を続行させたいです

Aの内容は
BTN(LEFT,CLICK,700,700)
こんな感じです

Aを処理した後はhoge1が表示されるので、その後は→sleep→BTNに処理を続行させたいです
2017/02/07(火) 00:06:41.07ID:CRTUd4LN0
KBD(VK_RCTRL,DOWN,0)
KBD(VK_NUMPAD2,CLICK,0)
KBD(VK_RCTRL,UP,0)

タブを切り替えるときにfirefoxやieだとこれで瞬時に切り替わったのですけど
chromeだとモッサリしてしまいます・・・なにか方法ありませんでしょうか?
2017/02/07(火) 00:59:43.71ID:ymYSi9tl0
>>367

while
 if hoge3
  BTN(LEFT,CLICK,700,700)
 elseif hoge1
  WHILE(CHKIMG("hoge1.bmp")=FALSE)
   sleep(0.01)
  WEND
  BTN(LEFT,CLICK,500,500)
 elseif hoge2
  WHILE(CHKIMG("hoge2.bmp")=FALSE)
   sleep(0.01)
  WEND
  BTN(LEFT,CLICK,600,600)
 endif
wend
こんなんでもいいの?
2017/02/07(火) 10:48:32.71ID:tMO8IqVH0
A画像とB画像をchximgでやりたくてA画像が見つかったらa動作
B画像が見つかったらb動作
両方とも見つからなければ
x動作をループし続けるという感じの場合はどうすればいいでしょうか?
2017/02/07(火) 11:33:43.17ID:GBF2FMj60
自己解決しました
2017/02/07(火) 13:29:23.50ID:119YQGvP0
これ初めて使いましたが使いやすいですね
CとJavaくらいしか使ったことないですが、フォアグラウンドでのマクロ部分はなんとかなりました
genymotionというソフトなんですが、バックグラウンドでのマクロは出来ないんですかね?
id = getid("genymotion")
MOUSEORG(id,2,MORG_BACK)

こうしたんですがgenymotionの右端がチカチカ点滅するだけでマクロは実行されませんでした
2017/02/07(火) 13:34:31.00ID:Tp60BiGp0
ACWで窓にさわってからやってみて
それでもダメならCTRLWINのでACTIVATEして
さらにだめなら同じCTRLWINでnorarizeも送ってみて
2017/02/07(火) 13:38:00.49ID:119YQGvP0
>>373
ありがとうございます
色々やり方あるんですね
調べてやってみます
2017/02/07(火) 19:59:58.33ID:p0Be5GMu0
泥エミュをバックグラウンドで動かすのはムリ
もうこれテンプレ入れようや
2017/02/07(火) 20:16:49.70ID:UGOauW+A0
泥エミュは禁止でいいだろ
どうせソシャゲだろうし
2017/02/08(水) 00:37:29.35ID:2RKpu/g60
''
---A.uws---
CALL common.uws

THREAD COMMONPROC.ERRORDETECT
THREAD COMMONPROC.CLICK("001.bmp")

---common.uws---
CLASS COMMONPROC

PROCEDURE CLICK(Name)
FEND
PROCEDURE ERRORDETECT
FEND

ENDCLASS

こんな感じで作ってみたのですが、動かすとすぐに終了してしまいます。
THREADではなくCLICK単体で動かす際は動きます
THREADで別ファイルのPROCEDUREは呼べないんですかね?
2017/02/08(水) 07:39:47.09ID:1uHnufYZ0
Procedureの中で待たずに終わってるだけじゃないの?
2017/02/08(水) 07:42:02.79ID:h4/lnqrq0
CLICKが動作する前に本体が終わってるのでは?
2017/02/08(水) 09:08:39.43ID:XKIny89g0
待ちが全然ないからそれだろね
2017/02/08(水) 10:21:22.20ID:2RKpu/g60
ありがとうございます
common.uwsの中のPROCEDUREは両方共WHILE trueの無限ループなので、動作が渡ったらTHREADが終わるまでA.uwsも終わらないと思ったんですが違うんですかね?
A.uwsも無限ループでSLEEPさせた方が良いですか?
2017/02/08(水) 12:11:28.94ID:XKIny89g0
あまりにも省略しすぎて質問になってない
2017/02/08(水) 12:50:15.75ID:h4/lnqrq0
>>381
メインだって並列に走るんだからほっといたら勝手に終わる、そのままの記述なら瞬時に終わる
THREADで走らせる処理がメインならフラグなり時間なりで処理が終わるのを待つ必要がある
2017/02/08(水) 13:58:36.06ID:pg5LhT3t0
んなもん試せばすくわかることだろうに
なんでいちいち聞くのかね
2017/02/08(水) 14:23:14.98ID:h4/lnqrq0
理屈がわからんのでは対策のしようがないからだろうよw
2017/02/08(水) 14:46:54.38ID:XKIny89g0
デバッグ用にprint使う習慣作らんとな
2017/02/08(水) 14:58:48.86ID:pg5LhT3t0
>>385
printって知ってる?なんと文字を出力できるんだ!
それを任意の場所に入れておけば、どう動作しているか簡単に確かめられるんだ!
その"理屈"とやらも簡単にわかるし、対策も立てられるぞ!すごい!やったね!
2017/02/08(水) 15:50:05.25ID:XKIny89g0
レスする相手が違うだろ
2017/02/08(水) 17:08:08.07ID:h4/lnqrq0
2発目の質問は余計だったな
1発目の質問は責められるようなもんじゃないよw
2017/02/08(水) 20:34:16.70ID:2RKpu/g60
ありがとうございます
無事動きました
2017/02/09(木) 17:34:37.48ID:NZg+Gim40
質問です
WIN10 64bit、IE11で、JAVAのページからファイルをダウンロードしたいのですが、
IELINKでダウンロードボタンを押した1回目だと、
ポップアップが出てフリーズ?したようになり、その次の行のfukidasiが実行されません
それを手動でOKなりキャンセルなどし、
再び同じダウンロードポタンを押す2回目以降は、若干違う形のポップアップが出て、
そのときはフリーズせずにGetIDとCLKITEMでポップアップを処理できました
1回目のクリックからきちんと処理するにはどうすればいいのでしょうか?
2017/02/09(木) 20:19:57.14ID:Mg0saXCh0
ウインドウ見失ってる
IE10くらいからのバグでダウンロードウインドウが出ると必ず最初の一回目はそうなる
UWSCじゃなくて実マウスや実キーボードでもなる現象

一旦別のウインドウをアクティブにしたりマウスで対象ウインドウ以外をつついてから
1〜2秒後にコントロールを戻すとちゃんとアクセスできるようになる

アクセス受け付けなくなったら最小化コマンドを送ってみてもいい
393名無しさん@お腹いっぱい。
垢版 |
2017/02/09(木) 20:41:18.26ID:NZg+Gim40
>>392
レスありがとうございます
完全に自動でファイルをダウンロードしたいんですが、その場合はどのようにすればいいんでしょうか
別のウインドウをアクティブにしようにも、IELINKで止まってしまいます
2017/02/10(金) 02:57:35.90ID:ksVxSaYd0
IELINKで処理してるなら直接DL出来たりしない?
スマートなやり方では無いけど…
IE前提ならDL対象のファイル名とかも取得出来るんじゃないかな

DIR = "C:\Users\" + Trim(DosCmd("echo %USERNAME%")) + "\Desktop\"
DLURL = "http://www.uwsc.info/uwsc523.zip";

PCMD = "Invoke-WebRequest -Uri <#DBL>" + DLURL + "<#DBL> -OutFile <#DBL>" + DIR + "\uwsc523.zip<#DBL>"
POWERSHELL( PCMD, FALSE, FALSE)

あとはCLKITEMで代用とかタイムアウト設定するなり色々ありそうな気がする
2017/02/10(金) 13:46:10.29ID:FC082wqF0
クロームとオペラが同時に強制更新してきてまともに動かなくなった
全部のマクロ作り直しとか死ぬほどめんどくせぇ

クソアプデやめろ
2017/02/10(金) 14:51:08.02ID:Pdfrz+W60
chkimgのG_IMG_X、 G_IMG_Y が-99999になっちゃうのは何が問題なんだっけ?
2017/02/10(金) 15:09:03.11ID:Pdfrz+W60
ああ、画像がヒットしてない時に出るやつか
2017/02/11(土) 09:07:40.34ID:BVjojK3b0
9が1個足りない

CHKIMGのヘルプにはERR_VALUEが格納されるとは明示されてないし、
ERR_VALUE が -999999 であることはVAL関数に記載されているが、
-999999 が何なのか独立した項目がないので、
結局ヘルプを予めくまなく全部読んでなきゃ事前にはわからないんだよねぇ
2017/02/11(土) 09:20:40.30ID:OH2ZCIr30
chkimgはラップして、
見つかったらpublicな変数に座標入れて
見つからなかったらそのままにしてる
前回見つかった座標を保持してられるから
その方が使い勝手がいい
2017/02/11(土) 12:55:36.99ID:6yMQgGj+0
それって画像ファイルが複数あるときに管理が煩雑にならない?
2017/02/11(土) 16:10:22.83ID:OH2ZCIr30
>>400
一致する画像が複数ある場合って意味なら、
確かに考える必要があるね
俺は複数個マッチして処理するようには
もともと組まないから支障はないけど
2017/02/11(土) 17:56:00.68ID:UPOoqpv50
>>401
chkimg(A)
chkimg(B)

複数画像を処理する場合に、前の座標とか保持されてても意味ないんじゃね?
2017/02/11(土) 18:17:39.77ID:OH2ZCIr30
>>402
例えばこんな処理
if mychkimg(a) and !mychkimg(b)
click画像()
endif
2017/02/11(土) 20:28:33.22ID:eL+VrJ/B0
>>403
なんか、一言で解決する魔法の言葉があった気がする
思い出せないけど
2017/02/11(土) 20:39:40.23ID:UPOoqpv50
>>404
OPTION SHORTCIRCUIT
2017/02/11(土) 21:23:50.53ID:KT7+3hLd0
画像クリックならラップしてclkImg関数作ったほうがいいよ
無かったら戻り値がfalse
407名無しさん@お腹いっぱい。
垢版 |
2017/02/11(土) 21:25:22.96ID:KT7+3hLd0
if !clkImg(A,…) then clkImg(B,…)
の1行で済む
2017/02/12(日) 00:19:41.39ID:mpWlybf80
>>404
andだと短絡評価は意味ない

>>407
それだとaの画像があったらクリックしてしまうから少し違う
clkimgで戻り値を返すのはいいね
クリック以外にやりたいことがあれば
if elseで書けて便利そう
2017/02/12(日) 00:26:23.96ID:yKgPkvjR0
>>403
aをクリックしたいなら
if !mychkimg(b) and mychkimg(a)
ってすればいいよね?

>>408
そもそも短絡評価をandに適用したら大変なことになる
2017/02/12(日) 08:21:11.19ID:mpWlybf80
>>409
もちろんその順にしてればchkimgでもok
>>399の実装ならfalseが後にあっても問題ないってだけ
2017/02/12(日) 11:11:43.90ID:xmSjDP1G0
複数の画像をchkimgしたいのですが
それぞれの有無と座標を保存しておくにはどうするのが良いのでしょうか

の一案が関数でラップして自分で宣言したローカル配列にいれてしまえ
ってこと
なんでしょ?
2017/02/12(日) 11:16:36.39ID:xmSjDP1G0
少し違うのか

複数の画像をchkimgしたいのですが
それぞれの有無で
処理をいろいろ分けるにはどうするのが良いのでしょうか
一つあると他の画像をchkimgしないし
全部無いと変な座標(-999999,-999999)をクリックして困っています

みたいな?
2017/02/12(日) 19:12:38.65ID:8R9Vb9Cg0
if mychkimg(a) and !mychkimg(b)
  clkImg(a,…)
endif

でいいじゃん?
2017/02/15(水) 12:32:35.34ID:lEDfLDNY0
HiMacroEx ですが教えて。
http://fefnir.com/soft/himacroex00.htm

HiMacroExのソフトをつかってマクロを
タイマーで実行させたいが、どうもスクリーンセーバーが
かかると、マクロ(ループあり)が実行ができないようです。
スクリーンセーバーは絶対にかけたいのですが
スクリーンセーバー中でも実行する方法がありますか?

「このコンピュータのロック」をかけてもHiMacroExの実行が止まるようです。
2017/02/15(水) 13:08:21.47ID:6XRQZaCd0
専用スレ立てるなり作者の掲示板で聞くなりして
UWSC以外のことは分からんわ
2017/02/15(水) 14:30:46.51ID:7j4eK8C70
質問できるコミュニティを持たないツールをあなたが選んだあなたの責任
2017/02/15(水) 14:36:00.16ID:lEDfLDNY0
>>415
>>416

ちなみに、UWSCだと、「このコンピュータのロック」中でも
タイマーによって、ループなどのプログラムが動作しますか?
2017/02/15(水) 14:41:41.16ID:6XRQZaCd0
OSのバージョンにより動くとも動かないともいえる
10や8はウインドウの線画が止まってるからアタッチするような処理は無理
2017/02/15(水) 15:14:22.07ID:lEDfLDNY0
>>418
すいません、Windows7での動作になります。

UWSCのようなソフトはデスクトップの画面が見えるときは動作するが
ロックがかかると、ウイルス対策か何かで通常の設定ではマクロが動作しないのでは
と思っています。
2017/02/15(水) 21:39:41.63ID:fEp3jdZU0
そんくらい自分で試せよ
2017/02/15(水) 22:00:40.02ID:6XRQZaCd0
すぐ一つ上の文章を読んでいるのか理解できていないのか、取り敢えず相手する必要はないと思いました
2017/02/16(木) 16:45:03.82ID:otJGv3/o0
連想配列について教えてください
通常の配列では複数の値を入れることができるようですが
DIM ARY[] =0,1,2,3
連想配列はキー一つにつき1つの値を入れる、ということなのでしょうか?
2017/02/16(木) 17:50:30.35ID:5XfV/d4x0
ぐぐれ
もしくは死ね
2017/02/16(木) 19:01:52.59ID:wFSeTwuE0
>>422
> DIM ARY[] =0,1,2,3

これは

DIM ARY[3]
ARY[0]=0
ARY[1]=1
ARY[2]=2
ARY[3]=3

というのを簡略化したもの
連想配列は簡略化ができない&配列数の宣言が要らない
2017/02/16(木) 20:58:44.94ID:otJGv3/o0
つまりキー一つにつき一つが入るということでしょうか?
HASHTBL ARY
ARY["NAME"] ="田中久雄","室町正志".,"綱川智"
こういうやり方ができると思ったのですが、エラーが出ます


"NAME" → "田中久雄","室町正志".,"綱川智"
連想配列は↑のような使い方ではなく
↓のように 1対1で対応するように使うものなのでしょうか?
"十七代" → "田中久雄"
"十八代" → "室町正志"
"十九代" → "綱川智"
2017/02/16(木) 22:02:01.81ID:BqEp4CGj0
>>425
お前が何を一つと認識しているかわからんので、なんとも答えにくいが、

HASHTBL ARY
ARY["NAME"] ="<#DBL>田中久雄<#DBL>,<#DBL>室町正志<#DBL>.,<#DBL>綱川智<#DBL>"
PRINT ARY["NAME"]

print結果
"田中久雄","室町正志".,"綱川智"

とちゃんと使える
2017/02/16(木) 22:46:48.28ID:otJGv3/o0
<#DBL>を入れないと駄目なんですね
ありがとうございました
2017/02/17(金) 00:58:47.55ID:iLAzKVSi0
まったく理解してないようにしか見えずもどかしい
2017/02/17(金) 01:05:37.57ID:glJ5dClm0
>>425
値を入れることばっかり考えてるみたいだけど

> ARY["NAME"] ="田中久雄","室町正志".,"綱川智"
> こういうやり方ができると思ったのですが、エラーが出ます

これでさ、どうやって値を取り出すのさ?
そこ考えてみ。
そしたら上の文はおかしいってわかるさ
2017/02/17(金) 01:18:39.77ID:qOucvuN+0
>>428
いや、さすがにダブルクオーテーションの記号ってのはわかります、>>427はジョークです

名前:綱川智
年齢:61歳
役職:代表執行役社長
こういった、それぞれの属性の値があるとき
多次元配列ならば
array[ i ][ j ]
としてエクセルの行と列のように考えてしまえばいいのでしょうが
連想配列ではどのようにして扱うのかわからないんです
2017/02/17(金) 01:47:57.09ID:iLAzKVSi0
person["名前"]="綱川智"
person["年齢"]=61
person["役職"]="代表執行役社長"
2017/02/17(金) 02:03:19.84ID:cBBrEBMg0
横からだけど構造体みたいなもん?
2017/02/17(金) 02:06:25.22ID:iLAzKVSi0
ただ、その例みたいな
少数かつ固定のキーを格納したいだけの目的に連想配列を使うメリットはさほどでもない
(意味の無い数値ではなく意味のあるキー名と結びつけられるという理由はある)
連想配列は連続してないキーによる大量のデータを高速に検索できるのが大きなメリット

ただの配列に格納したデータを検索するのは、ソートされていない場合は、頭からしっぽまで線形検索するしかないけれど
連想配列で名前をキーとして格納しておけば、名前から探すときは一瞬で見つかる

計算量のオーダーの話までするのは面倒なのでしないが
大量のデータなら大きな違いになる
2017/02/17(金) 08:54:33.51ID:iAbXlHyw0
HASHTBL age
HASHTBL position

age["山田孝雄”] = 61
position["山田孝雄"] = "課長"

連想配列ってこういう使い方でないの?
2017/02/17(金) 12:16:17.87ID:PVkwW9Qi0
>>434
2つのりんごが3組あるのか、3つのりんごが2組あるのか、気になっちゃタイプ?
2017/02/17(金) 12:37:59.74ID:glJ5dClm0
数が増えればその違いは果てしなく多いというのに
2017/02/17(金) 12:44:37.36ID:VHtqFKoE0
取り出しやすさなら連想配列で
格納しやすさなら次元配列だなあ

そのデータにどれだけ頻繁に後からアクセスするかで使い方が変わるんじゃないの?
一回格納したら出力時にしか使わないなら多次元でいいし
頻繁にキーを入出力するなら連想配列

でも、データ数が千・万単位でないなら次元をFORで取り出すスピードと
連想配列自体のもともとも遅さと殆ど変らない


UWSCでDBファイル扱う方法ってあったっけ
ACCESSとかのDLL介すことが出来ればまとめて投げちゃってもいいよなあ
2017/02/17(金) 12:53:19.52ID:glJ5dClm0
千・万単位の連想配列作ると連想配列の動作がおかしくなるのが問題だけどな

かといってそれを通常配列でやると検索が超遅い
万単位の通常配列で検索速くする方法なんかないものだろうか
インデックスでも作ればいいのか
2017/02/17(金) 12:58:10.76ID:VHtqFKoE0
やっぱDB扱うコマンドが必要だよなあ
2017/02/17(金) 13:01:14.11ID:ubzS4Bfh0
そこまでやる気なら
UWSCに頼らず普通に別の言語使って作れよ
■ このスレッドは過去ログ倉庫に格納されています
16歳の水野カイトが封印の刀を見つけ、時間が裂けて黒い風と亡霊の侍が現れ、霊の時雨と契約して呪われた刀の継承者となる場面

ニューススポーツなんでも実況