自動化ツール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/
2016/12/29(木) 23:59:07.95ID:0J8hjrif0
>>156
お前は自分自身ができないことを人に偉そうに語ってもなんの説得力もないことがわからんのか
少なくともお前が黙っていればここ10レスくらいは減ったはずだぞ?
あれ、おかしいな、本末転倒だな?スルーもできないの?黙ってろよ
2016/12/30(金) 00:06:09.23ID:gX956bOM0
笑った
ブーメラン好きやなあ
もはや叱られたガキがいつまでも屁理屈こねて喚いてるだけやな
2016/12/30(金) 00:07:37.60ID:JbKooo3U0
それ自体もブーメランなのでは
2016/12/30(金) 00:10:19.24ID:o8f6LEC90
だから無意味だつってんだろ
アホも大概にしろ
2016/12/30(金) 01:30:40.47ID:8EQh5lbZ0
最初にスルーしないで答えた奴がいた時点で終わってる
2016/12/30(金) 03:50:38.70ID:JbKooo3U0
回答者を叩くような奴がいる時点で終わってる
2016/12/30(金) 04:49:51.91ID:E/drPFwn0
ID:wmejl4Ny0 = ID:JbKooo3U0
おまえの味方いないぞ
2016/12/30(金) 11:33:46.69ID:8EQh5lbZ0
>>162
いくら回答者といっても

荒らしの質問に回答した奴は同じく荒らし

2chの超基本事項
2016/12/30(金) 12:28:38.28ID:eXZgCSO10
味方(自演)
荒らし(自演)
2016/12/30(金) 15:25:33.61ID:o8f6LEC90
>>162
終わってると思うならこんなスレ来なきゃいいだろうが
余所にお前が一番望むルールのスレを建ててそっちでやれよ

勝手に入ってきて好き勝手言っていつまでもガキみたいな駄々捏ねてんじゃねーよ猿
2016/12/30(金) 20:21:45.77ID:bnd5fj4J0
thread命令で並走させてる複数の関数から
同じテキストファイルに追記していっても
問題ないですかね?
FOPENやFCLOSEは、thread開始前と終了後に
thread関数外で処理します

処理したDATAを追記するだけで
特定の行を弄ることはないんですけど
問題が出てくる場合があれば教えてください

全くの同タイミングで追記処理が出た場合でも
ちゃんと正しく追記されるんでしょうか?
2016/12/30(金) 21:39:38.25ID:o8f6LEC90
関数ごとに何行かまとまったものを書き込むようなときに場合に拠っては
割り込まれてグチャグチャになる可能性があるくらいしか思いつかん
2016/12/31(土) 00:12:34.52ID:2ZPqS4GP0
よく分からんけど、同時処理になると不具合出るんじゃない?

while True
 thread A()
 thread B()
 while 1
  sleep(0.1)
  if GETKEYSTATE(VK_ESC) then exit
 wend
wend

procedure A()
 COUNT_A = 0
 While True
  fid = FOPEN("test.csv", F_READ or F_WRITE)
   COUNT_A = COUNT_A+1
   FPUT(fid, COUNT_A, COUNT_A, 1)
  FCLOSE(fid)
 Wend
fend

procedure B()
 COUNT_B = 0
 fid = FOPEN("test.csv", F_READ or F_WRITE)
 While True
  fid = FOPEN("test.csv", F_READ or F_WRITE)
   COUNT_B = COUNT_B+1
   FPUT(fid, COUNT_B, COUNT_B, 2)
  FCLOSE(fid)
 Wend
fend
2016/12/31(土) 02:52:47.04ID:fN14r8tv0
乞食ちゃん何を言っても完全論破されて逃げちゃったか
2016/12/31(土) 03:44:31.04ID:X3+AO6Ma0
そうやって荒らすのはやめろ
2016/12/31(土) 04:22:50.00ID:1R8kjcvE0
>>167
上のほうに排他制御の話が出てるからMUTEXで排他制御すればいいよ。
2016/12/31(土) 07:13:53.08ID:FaTnNh2J0
最近触ってないからうろ覚えだが
実際に書き込まれるのはfcloseのタイミングだったと思うからfcloseしなけりゃ問題起きないんじゃね
2016/12/31(土) 07:15:38.32ID:pf/BCF6/0
fcloseせず、fopenが複数スレッドで走ると落ちそうだな
sleepなしで数十ループ呼び出して確認すればいい
そもそもロガー部品ならわかるが
ただのファイル書き込み部品に
スレッドセーフであることを期待するのは厳しい
2016/12/31(土) 07:19:52.25ID:1R8kjcvE0
>>173
fputの中がスレッドセーフかどうかわからない。
2016/12/31(土) 10:30:13.23ID:b9LMTS+V0
>>174
ファイルオープンは32個だったか?それ以上やるとエラーで落ちる
177名無しさん@お腹いっぱい。
垢版 |
2017/01/01(日) 06:44:56.89ID:cdQLM3cG0
module内からはどの関数からもアクセス可能、でもmodule外からはアクセス不可って変数を作りたいんですが無理ですか?
publicにするしかないですかね?
2017/01/01(日) 09:15:28.05ID:heLn9NaQ0
>>177
省略かdim付ければprivateな変数じゃね?
2017/01/01(日) 09:36:43.58ID:cdQLM3cG0
print Hoge.getTest()
module Hoge
  procedure Hoge()
    dim test = 100
  fend
  function getTest()
    result = test
  fend
endmodule

こういうのです。module内では変数共有したいんですが、これやると怒られるので
2017/01/01(日) 09:47:19.83ID:EPmA+08U0
module内かつ関数外に書いた普通の変数
2017/01/01(日) 10:03:08.47ID:heLn9NaQ0
>>179
module hoge
dim test=100
procedure

でいいのでは?
2017/01/01(日) 11:10:16.01ID:cdQLM3cG0
出来ました。ありがとうございます
2017/01/01(日) 18:41:10.95ID:wZhwSD4E0
KEY = "VK_A" とかやって KBD(KEY) ってやると実行できないんだけどなんで?
2017/01/01(日) 18:51:22.02ID:HGM/h/CO0
for N = 48 to 90
 KBD(N, CLICK)
next

とかじゃ駄目なの?
2017/01/01(日) 19:32:14.11ID:zPjac8Nt0
仮想キーとしてのVK_Aではなくて"VK_A"っていうただの文字列が入ってKBD("VK_A")になるからじゃないの
>>184のやり方の方がいいと思うが、どうしてもその形にしたいならevalでググれ
2017/01/01(日) 19:42:58.12ID:wZhwSD4E0
きたー!そういうことかー
""外したら動きました!ありがとうございました
2017/01/01(日) 20:23:20.69ID:zPjac8Nt0
ああそうか、vk_って変数扱いにはならんからevalいらんかったわ
2017/01/04(水) 10:34:58.53ID:C7aIL3+S0
windowsプログラミング未経験者だと仮想キーが定数ということは
付属のHELP一見だけで理解することはほぼ不可能。
数学関数にしてもEXCEL関数などから推測的に恐る恐る使うことになるし、
16進数表現が直接数値として扱えるというのもかなり気づきにくい。
2017/01/04(水) 13:17:41.84ID:IPdVWe4V0
そら、>>184のように即値で書いて欲しくないから定数だと明記してないんでしょ
2017/01/04(水) 16:41:49.94ID:cKZTMJYr0
仮想キーを仮想キーとして扱う限りは定数であることを理解する必要が無いし
2017/01/04(水) 16:57:19.86ID:RDwXrBZr0
threadで開始したサブスレッドをメインスレッドから強制的に停止する方法はありますか?
フラグをグローバル変数で管理し、サブスレッドからその都、グローバル変数を確かめる方法しか思いつきませんでした。
2017/01/04(水) 23:06:27.76ID:OUqsLfVs0
>>191
ない
その方法でいいと思う
2017/01/05(木) 20:27:34.46ID:HlOG+ODE0
メインからthreadを停止だけじゃなく
一時停止/再開を制御できればなぁ・・・
と思う今日この頃
2017/01/05(木) 21:51:52.69ID:ylXYEv170
やろうと思えば出来るしサンプルもネットの海にあるよ
2017/01/05(木) 22:31:53.46ID:HlOG+ODE0
ごめんなさい
その手の命令がUWSCに標準であればなぁ・・・
ということです
2017/01/05(木) 23:57:32.27ID:JPNDLjRU0
すみません。 CHKIMGXを使ってるのですが、突然エラーが出るようになってしまい、原因がわかりません。
詳しい方ご教授願います。

ifb chkimgx("T.bmp",0, SH_X + 25 + (112 * S_No), SH_Y + 95, SH_X + 70 + 112 * S_No, SH_Y + 115, 0, 10)

消去法で調べた結果上の一行からエラーが出ていました。
B.bmpの判定をかなり範囲を限定的にして行いたいのですが、エラーになってしまいます。
SH_X + 70 + (112 * S_No)の部分を、例えば 700 とか適当な数字を入れるとなぜかエラーは解消します。
2017/01/06(金) 05:45:24.71ID:uBtJhKu20
突然エラーが出るようになってしまったのなら以前は動いていた。
以前と今の違いは何と考えたらまず変数の中身を確認したいよね。
2017/01/06(金) 08:03:00.44ID:llupNmZ30
>>196
でかすぎるor小さすぎる値になってないか
変数が文字列になってないか
小数になってないか
2017/01/06(金) 19:39:52.07ID:Q0Q/mhIT0
>>196 です。
すみません解決しました。 SH_X、SH_Yは別の画像を反映してその座標を代入していたのですが、
テストのやり方が悪かったせいか、画像を正しく判定できていませんでした。
正しく画像を判定すると正常に動作しました。初歩的なミスでした…
回答くださった方々、ありがとうございます。
2017/01/06(金) 19:47:54.30ID:62iEvIJm0
OK
2017/01/06(金) 23:09:29.25ID:PCXMg0Fu0
ホスト名によってDL元を変えたくて、認証不要な場合はPOWERSHELLでDLさせてるんだけど、
認証が必要な場合にwgetみたいにユーザー名・PASSを通すのってどうすればいいんだろうか。

SvUrl =
2017/01/06(金) 23:10:15.54ID:PCXMg0Fu0
途中送信になったけど、ざっくり下記

SvUrl = "http://hoge.jp/";
BSvUrl = "https://hoge2.jp/";
Hostname = "hoge"
FName = "hogehoge"
DIR = "C:\Users\[user]\Desktop\"

ifb Hostname = "XXXX"
 print Hostname + " 認証不要設定"
 PCMD = "Invoke-WebRequest -Uri <#DBL>" + SvUr + "<#DBL> -OutFile <#DBL>" + DIR + "\" + FName + ".csv<#DBL>"
 POWERSHELL( PCMD, FALSE, FALSE)
else
 print Hostname + " Basic認証設定"
 //BSvUrlに対して認証を行い、ファイルをDL
endif
2017/01/06(金) 23:16:56.78ID:HVqKqE5J0
プロトコルをまず勉強しろよ
servicetype://username:password@hostname:port-_-tunnelserver

UWSCと無縁の問題はこっちのスレで質問してくんなや
2017/01/07(土) 00:06:19.10ID:enBDeHYN0
>>203
すまない、ありがとう
http調べつつやってみるよ
2017/01/09(月) 10:43:26.49ID:XHjHn2Fu0
バックグラウンドで画像をクリックしたいのですが出来ません。
どこが間違っているかご指摘いただけないでしょうか。
2行目を抜いた状態での稼働は確認しています。
よろしくお願いします。

id = GETID("BlueStacks App Player")
MOUSEORG(id, 2,MORG_BACK)
       ifb chkimg("a.bmp") then
btn(left,click,g_img_x,g_img_y) //クリック
endif
2017/01/09(月) 11:19:21.91ID:D5x/wxFV0
id = GETID("BlueStacks App Player")
またゲーム用かよ
2017/01/09(月) 12:02:14.56ID:oe55YSLj0
>>205
バックグラウンドはうまくいかないことが多い、詰まったら諦めて仮想PCでやれ
clickだと短過ぎてボタンリスナーが反応しないことがあるから
down、sleep、upに分けた方が確実に押せる
2017/01/09(月) 12:56:04.78ID:zuy/y34b0
>>207
Bluestacks自体が仮想環境だけどな
2017/01/09(月) 15:37:30.32ID:yzx2Y0tH0
>>208
じゃあBluestacks上で動くマクロでやれよ
2017/01/09(月) 15:56:58.26ID:slB4Jvdv0
バックグラウンドの時に操作対象のアプリがどの様に振る舞うか
そのアプリが決めるってのが基本中の基本

演算に集中する為に描画を省略するアプリだって
全省略したりウインドウが重なっている部分だけ省略したりとか色々ある

だからその手のアプリは仮想環境の中でバックグラウンドにしないで運用するのが
なんだかんだ言って確実で一番の近道だったりする
2017/01/10(火) 12:29:06.14ID:GUbGXCRo0
qsortでソートしたときって同じ値の場合ってどっちが先にくるんかな
元の配列の添え字が小さいのが先?

dim a = 3
dim b = 2
dim c = 4
dim d = 1
dim e = 5
dim f = 3
dim test[] = a,b,c,d,e,f

qsort(test,1)

for i = 0 to length(test) - 1
    print test[i]
next

結果
5
4
3
3
2
1

この3はどっちがaとfなのかが知りたい
2017/01/10(火) 12:46:17.35ID:CSrqCF0a0
全く無意味な質問
2017/01/10(火) 12:51:47.81ID:YiwhFKiM0
結果はどうあれ、運用上困ることはないと思うんだけど
2017/01/10(火) 13:38:12.06ID:OlL37dkI0
思いつきだけど、連想配列にしてソートすれば分かるんじゃないの?
このままじゃ、3と3はどっちが3なの?と言ってるだけ
2017/01/10(火) 13:38:36.92ID:GUbGXCRo0
>>212
お前の回答の方がよっぽど無意味だよ^^;

>>213
困るから聞いているんですよ^^;

無意味だろうがなんだろうが、とにかく先か後かだけ答えりゃいいのに面倒くせえ奴らだな^^;
まーなぜ必要かを説明するとかなり長くなりそうだから端折って適当なサンプルコードを書いたのがあれだったな
qsortでどっちが先に来るかさえ分かれば楽に済むから聞いたんだけど、分からなそうだし大人しくhashtbl使うわ
じゃあの
2017/01/10(火) 14:20:21.94ID:0vWHPrO20
dim test2[] = "a","b","c","d","e","f"
qsort(test, QSRT_D, test2)
とすればtestをソートした順にtest2がソートされるのでaかfのどっちが先かわかるんじゃないの
2017/01/10(火) 15:33:19.33ID:kxwc0IXS0
主キーの重複の扱いを自分の中で決めて副キーを設定すれば良いだけじゃね?
言語仕様に頼るな
2017/01/10(火) 16:39:55.07ID:UAKobN//0
http://www.codereading.com/algo_and_ds/algo/quick_sort.html
クイックソートアルゴリズム
2017/01/10(火) 22:15:08.58ID:qEV/pyyS0
こういうガバガバのコード書く奴が自称できる人なんだよなぁ。
2017/01/11(水) 16:42:09.02ID:CrqtIs3x0
このファッキンガイを糞エスパーすると、
http://d.hatena.ne.jp/junjun777/20150611/uwsc_stable_sort

安定ソートであれば同データ間のソート前順序がソート後も保存されるため、
複数フィールドに対するソートを行うことが出来る。
俺は昔しょうがないからマージソートで自作したけど何かがおかしくて
前回ソートが反転して使いづらかった。
2017/01/11(水) 19:38:55.34ID:jXzdeHwR0
画像認識の質問です
同じ画像なのに認識何回か成功した後、不特定の回数試すと失敗し、その後失敗し続けます
認識の指定にはRGB4とRGB6で試しましたがどうも上手く認識してくれません
どのようにすれば一度成功した画像を毎回正しく認識してくれるでしょうか
・画像はサイズ20*20程度でbmpで認識させています
・画像認識だけ別のプログラムでやらないとダメですか?
2017/01/11(水) 19:46:35.76ID:ZJhL47B90
>>221
>>87
2017/01/11(水) 20:07:51.86ID:b3yTskRZ0
もうすこし噛み砕いて説明すると

それは人間が同じ画像だと思っているだけで
コンピュータ的には違う画像だと判定されている状況です

ゆらぎ判定が可能な外部関数を使ってみたらどうですかって話

但しゆらぎ判定も所詮指数判定なので誤爆しない閾値はケースバイケース
結局試行錯誤が必要
2017/01/12(木) 22:00:42.55ID:pvub2wGV0
548 :
名無しさん@お腹いっぱい。
2016/10/02(日) 16:24:52.94 ID:EGIzDI2G0
いや事例は既出でしょ。
・グラボの違いなどによるハードウェアアンチエイリアス処理の違いで画像が変わる
・DPIの違いで変わる。OSの視覚効果の設定の違いで変わる。OSの違いで変わる。
・ブラウザの違いで使用フォントやベースライン処理が変わる。
・フラッシュのバージョンが古過ぎるとサーバ側と齟齬が生じて変わる。
・透過画像の背景の違いで変わる。
・3次元を投影した画層を判定しようとしている。
・2次元でも画像が原寸大から拡大縮小されると半ドットの扱いにより形状が変わる。
・判定画像が単純すぎて無限にマッチしてしまう。
・絶対相対の座標基準や対象ウィンドウが間違っている。
・裏でやろうとして個々のアプリケーション側の仕様の迷路に嵌り込む。
・そもそもBMP形式じゃない。くだらないバグがある。ファイルのパスが間違っている。
22522
垢版 |
2017/01/13(金) 15:54:10.99ID:bM73Dwq90
連想配列が時々おかしくなる件、スクリプト起動時に一度だけファイル読み込みを行う仕様から
数十回読み出し毎に連想配列初期化してファイルから読み直すようにしたら問題出なくなった

長時間保持するとおかしくなる?
よくわからん
2017/01/13(金) 21:57:37.35ID:fJBel/Ck0
悪いこと言わないからこんなの使うの止めろよ。

いまどき個人で更新を重ねているものは大抵信用できない。将来的に足元をすくわれる可能性がある。
最悪でもコミュニティに委ねるか、もしくは法人化して後進に委ねるとかしないと。
仕事を自動化しようと思って、俺は比較検討の結果 AutoIt を使う方を選択した。
これを使うやつは英語が読めないからってUWSCに逃げただけ。

た だ そ れ だ け の 情 弱

とクソミソに言われてもしゃーねーぜ?

>>225
お前馬鹿じゃね?てか馬鹿だろ。
そういうくだらん検証に自分の人生の時間の一部を差し出して、このウンコ作者から感謝されるか?されねーよ。
いい加減目を覚ませ。
2017/01/13(金) 22:01:26.33ID:bM73Dwq90
レス乞食はいらない
2017/01/13(金) 22:14:34.17ID:fJBel/Ck0
>>227
現象からするとヒープが壊れてる可能性大。
ヒープを逐一ダンプしてみるけどね。俺なら。
んで、「こういう操作をすると壊れる」って苦情を入れる。
そういう修正を個人のデバッグに期待するところが情弱つうんだよ。
2017/01/14(土) 00:55:16.83ID:RKzFoxmL0
>>225
正直、これ以上は作者にコードをメールで送ってバグ報告した方が早いよ
バグならバグで直してもらえるんだし我々があーだこーだ行ってもどうにかなる問題じゃないだろ
2017/01/14(土) 02:33:57.79ID:LAY++gd+0
博識な先輩方よろしければ教えて下さい

cの変数を子マクロが終わっても親マクロに渡したいのですが
そういった場合はどのようにすればいいのでしょうか
こうするとcが定義されていないとなってしまいます


親uws

a = 1
b = 2
call 子uws(a,b)
d = a + b + c
print c
exitexit

子uws
a = PARAM_STR[0]
b = PARAM_STR[1]
c = a + b
2017/01/14(土) 02:46:55.23ID:T/8WlEBl0
子uws(a,b,var c)
2017/01/14(土) 02:50:48.94ID:RKzFoxmL0
子.uws の中の変数cはローカルだから 親.uwsでャOローバル宣言bオたらいいんじb痰ネい?
=ub=2」 の一行演コに 「public c」


あと

>子uws
>a = PARAM_STR[0]
>b = PARAM_STR[1]
>c = a + b

っていちいち変数格納しないでも 子.uws の中ではずっと不変だから
c = PARAM_STR[0] + PARAM_STR[1]
でいいよ
2017/01/14(土) 02:53:12.91ID:RKzFoxmL0
>>231
さらっと嘘かくな
2017/01/14(土) 03:17:32.12ID:OztHPOHZ0
callの使い方が気持ち悪すぎ
関数でやれ
2017/01/14(土) 03:18:31.21ID:LAY++gd+0
>>232
深夜にありがとうございます。できました。
こんな簡単なことだったんですね。
昨日一日検索して悩んでいました。
2017/01/14(土) 03:25:58.78ID:LAY++gd+0
>>235
すいません、それまでkbmacroを使っていて正月からuwscを始めた若輩者です
kbmacroになかった新しい命令は置いといてとりあえずkbmacroで作ったものを
同じ程度の命令で移植してから徐々に他の命令分覚えて習んで行こうと思ってました
2017/01/14(土) 03:26:33.39ID:LAY++gd+0
>>234宛でした
2017/01/14(土) 05:25:42.49ID:LAY++gd+0
自作関数という概念が分からず随分時間かかってしまいましたがやっと理解できました
確かにこちらの方が楽ですね
ありがとうございました
2017/01/14(土) 16:39:33.89ID:T/8WlEBl0
さらっとグローバル変数勧めるカスに嘘つきよばわりされてもうた
2017/01/14(土) 17:15:35.67ID:sF+wEndx0
グローバル変数の是非はともかく、関数の定義じゃなく関数呼び出し引数にvarって書いても
シンタックスエラー出るだけで終わるだろ
2017/01/15(日) 01:40:08.81ID:35TEIhJa0
グローバル変数uws作ってそこに全部の変数押し込んで宣言して
ファンクションuws作ってそこに自作関数全部押し込んだらすっきりしました。
シンタックスエラーも最初出まくって相当悩みましたが解決しました。

新しいことを覚える時のワクワク感久しぶりで楽しいです。
2017/01/15(日) 11:18:38.27ID:IPimZMJ10
批判はともかく、動かない方法を教えてドヤ顔はどうかと思うよ
2017/01/17(火) 06:06:22.01ID:u6y+c7sA0
BTN(LEFT,CLICK,816,480,2172) とかの816と480は座標だと分かるけど
その後の2172とかって何なの?
2017/01/17(火) 06:12:54.54ID:IVKsOn2O0
ググりゃすぐ出てくるものを真っ先に人に聞きにくるって頭おかしいんじゃねえのか
一回死ね
2017/01/17(火) 07:24:35.91ID:vm04L6sV0
ぐぐんじゃなくてヘルプを見ろ
2017/01/17(火) 08:04:38.03ID:Tipu4kpy0
魔法の呪文だよ
2017/01/17(火) 13:22:30.39ID:eG5Bt7bp0
まだラベルジャンプはできるようにならないんでしょうか
2017/01/17(火) 14:57:12.81ID:poGZJhWc0
ソースがグチャグチャになるから却下
2017/01/17(火) 15:18:22.34ID:9js9xvIu0
gotoか?
たまにあると良いなぁって思うけど、無くて問題ない
2017/01/17(火) 15:26:23.34ID:eG5Bt7bp0
whileとifbでgotoもどきにしてるけど長文になればなるほど後から見直したときに頭がこんがらがる
2017/01/17(火) 15:52:53.38ID:vFJBKG8U0
>>250
gotoなんか使ったらそれこそわからなくなるんじゃないかな
ボトムアップで適当に組んでたら欲しくなるけど
そんな俺のソースはbreakだらけw
2017/01/17(火) 15:54:36.66ID:uiQsuPRc0
>>248
gotoってあったほうがぐちゃぐちゃにならないこともある。
使う側の問題だよ。
2017/01/17(火) 16:03:13.10ID:U2shNUVe0
全てのルーチンに例外処理を完備するとかだと、
ラベルジャンプがあったほうが良いらしい。
それ以外の場合は、
ループ中でcontinueやbreakを巧妙に使ったり、
新たに関数として掃き出したり、
その関数の中でEXITを巧妙に使うことで、
goto以上のジャンプを行うことが出来るので不要。
2017/01/17(火) 16:18:29.94ID:jrl37fEA0
gotoに限らずbreakやexitとか、昔Cしか知らない人がすごい嫌がってた記憶が
曰く「Cは必ず上まで戻るモノ」だそうで
何でもかんでも細かくルーチン(class)分けして必ず一番上まで戻って終了してた
2017/01/17(火) 17:31:06.44ID:uiQsuPRc0
>>254
Cでbreak使わないってのはありえんな。
break <数字>はないけど。 ← ループの追加とか削除やったときにどつぼにはまるからあんま使いたくない
exitはCのreturnだろ。これも普通に使う。
256254
垢版 |
2017/01/17(火) 17:41:06.44ID:k1R9pR5j0
>>255
やっぱその人が特殊だったのかな
当時まだ新人で?な状態だったんだけど
小さな会社でその人がなんかボスみたいな感じで
すごい自慢げに言ってたのが印象に残ってる
■ このスレッドは過去ログ倉庫に格納されています