VBScriptについて必死に話し合うスレ
■ このスレッドは過去ログ倉庫に格納されています
0001邪神名無し君
2009/05/12(火) 22:49:40VBS以外はスルーの方向で(・∀・)
※質問スレではありません、質問は最低限し抑えましょう※
0232デフォルトの名無しさん
2012/05/25(金) 00:44:21.47ブログの良し悪しが分からんのか?
0233デフォルトの名無しさん
2012/05/25(金) 00:49:38.900234デフォルトの名無しさん
2012/05/25(金) 01:06:02.71馬鹿晒しage
0235デフォルトの名無しさん
2012/05/25(金) 01:19:38.730236デフォルトの名無しさん
2012/05/25(金) 01:33:26.44底なしのアホですね かわいそうに
0237デフォルトの名無しさん
2012/05/25(金) 10:16:58.190238デフォルトの名無しさん
2012/05/25(金) 11:03:29.030239デフォルトの名無しさん
2012/05/25(金) 11:22:42.60ついには「ソースがブログだと何なんだ?」と開き直り。
これはないわ。
0240デフォルトの名無しさん
2012/05/25(金) 11:26:36.480241デフォルトの名無しさん
2012/05/25(金) 11:30:18.100242デフォルトの名無しさん
2012/05/25(金) 11:30:26.55これ以上何を言っても馬鹿を晒すだけだと気付いたか。
0243デフォルトの名無しさん
2012/05/25(金) 11:52:55.760244デフォルトの名無しさん
2012/05/25(金) 12:00:51.09>>214
0245デフォルトの名無しさん
2012/05/25(金) 13:15:44.960246デフォルトの名無しさん
2012/05/25(金) 13:18:57.46なかなか良さそうなサイトなのでサイト検索でブックマークしときました
0247デフォルトの名無しさん
2012/05/25(金) 18:48:29.850248デフォルトの名無しさん
2012/05/26(土) 16:48:16.390249デフォルトの名無しさん
2012/05/26(土) 17:56:46.740250デフォルトの名無しさん
2012/05/26(土) 19:06:25.89お前は朝鮮人か。
読点の位置が間違ってるぞ。
岡崎洋三 『日本語とテンの打ち方』 を読め。
0251デフォルトの名無しさん
2012/05/26(土) 19:41:29.920252デフォルトの名無しさん
2012/05/27(日) 15:11:11.18岡崎洋三 『日本語とテンの打ち方』 を良く読め。
0253デフォルトの名無しさん
2012/05/27(日) 17:23:00.890254デフォルトの名無しさん
2012/05/28(月) 03:24:19.850255デフォルトの名無しさん
2012/05/28(月) 15:56:03.050256デフォルトの名無しさん
2012/05/29(火) 11:47:06.99だっせー
0257デフォルトの名無しさん
2012/06/10(日) 17:06:10.770258デフォルトの名無しさん
2012/06/21(木) 01:03:13.68この時sqlの「in( )句」にvbs内で可変長に作成する文字列変数を
渡して検索することってできるでしょうか?
変数a = "'11','12','13',・・・" ←個数は可変
・・・
where colum in( 変数a )
↑こんな感じです
昔C#で似たようなことしようとしたんですけど、エラーだかでできませんでした。
確かカンマも文字列で認識されるから?とかだった気が。。。
0259デフォルトの名無しさん
2012/06/21(木) 01:03:47.940260デフォルトの名無しさん
2012/06/21(木) 01:06:45.09SQLを発行していると言うことは、最終的に文字列にしていると言うことだろ。
だったら、エスケープするなどの工夫は必要かもしれんができないわけはないな。
0261デフォルトの名無しさん
2012/06/21(木) 10:15:56.32データベースによっては数が多すぎるとエラーになるな
0262デフォルトの名無しさん
2012/06/21(木) 20:16:32.84ありがとうございます。個数的には少ないのでやってみます!
0263デフォルトの名無しさん
2012/07/26(木) 23:23:18.480264デフォルトの名無しさん
2012/07/27(金) 11:30:01.720265デフォルトの名無しさん
2012/07/27(金) 22:46:23.92VBScript は「出来るようで出来ない子」という話から。
Visual Basic for Script Editon の意味を最初はあまり理解できなかったのだが、
Wn32API を呼べない、OLE オートメーションを呼べてもそのプロセスIDすら取れない、ことに気付いてからの理解は早かった。
VBScript はバッチファイルの置き換えを意図したものに他ならず、
1. 定型的なバッチ処理
2. 対話的なバッチ処理
以上のことをやろうとするとべらぼうにハードルが上がる。
基本的にリアルタイムイベント処理が不可なのである。
WMI や .NET のクラスを VBScript から使おうとすると感じる疎外感はすさまじい。
非同期処理を求められるクラスのインスタンスがことごとく使えない。
System.IO.FileSystemWacther さえ使わせてくれない。
これはこのクラスに COM インターフェイスが無いからであるが、にしても冷遇過ぎる。
ていうか __InstanceOperationEvent クラスがどの程度 VBScript から使えるのかという情報すら無い。
調査中だが、キーボードやマウスからの入力イベントは多分キャプチャできない。という予感がしている。
0266デフォルトの名無しさん
2012/07/27(金) 22:50:52.66IE オブジェクト変数に Quit させてを IE プロセスを破棄する時にキーイベントを取るとかいう…。
そんな不毛なことしかできないのかよこれ…。
ていうか、できないよな…調べたけど…。
絶望した!VBScript に絶望した!!
0267デフォルトの名無しさん
2012/07/27(金) 23:02:56.64JavaScript の方が良くできてるからに決まっている。理解しろ。
>>6
IDE があったらあったでこまる。
そんな大規模なものを VBScript で書かれたらメンテする方が迷惑する。
書籍にロクなものが無いのは完全同意。
手に入る本が
Windows自動処理のためのWSHプログラミングガイド
http://www.amazon.co.jp/Windows%E8%87%AA%E5%8B%95%E5%87%A6%E7%90%86%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEWSH%E3%83%97%E3%83%AD
%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%AC%E3%82%A4%E3%83%89-%E4%BA%94%E5%8D%81%E5%B5%90-%E8%B2%B4%E4%B9%8B/dp/4883376583
しかなかったのだが本当に酷かった。安易に買って反省した。
そこで@ITの
チェック式 WSH入門
―― 演習方式で身につけるWSH超入門 ――
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh01/cformwsh01_01.html
で勉強し直した。クラス定義までは行かないものの、この連載は良く分かった。
全部印刷して今でも持っている。
>>7
それは知らなかった。今度落としてみよう。
試用してみるわ。
0268デフォルトの名無しさん
2012/07/27(金) 23:24:48.76PowerShell のコマンドレットから OS やアプリの機能を呼ぶ、という点においては変わりなくない?
俺は PowerShell 良く知らないから聞くのだけど。
>>10-14
流れの通りで。
以下、流れの通りには返さない。
>>15
逆に考えるんだ、バッチスクリプトでやらされるよりはマシだと考えるんだ。
>>24
逆に eval 出来ないスクリプト言語の方が珍しい。
あるサイトで「VBScript には eval が無い」とか書かれてて、慌ててリファレンスで Eval 関数探したわ。
あってホッとした。
>>25
意味不明。
>>27
面白そうだが評価が真っ二つだな…。安いから買ってみるか…。
0269デフォルトの名無しさん
2012/07/27(金) 23:25:52.80少なくとも、2012年段階では C#より普及してないと思う。
「Windows にあらねば OS にあらず」というようなある種の開き直りが見て取れるから。
C# は mono でコンパイルして JIT 抜きの VM 込みで配布すれば iPhone でもイケるらしいし。
>>30-31
個人的には HTA には全く未来が無いと思うのでやらない方がいいと進言する。
セキュリティに穴を開けまくって実現している機能なので、予告なしに消える可能性が高い。
>>32
俺は一般ユーザー権限で動くものしか作らないという信条なのでその辺は知らん
>>33
何故だか Byte Array に変換しないといかんらしいが、ヘッダはいくらでも作れる。
今日はこんなところで。とりあえず必死に語ってみた。
0270デフォルトの名無しさん
2012/07/27(金) 23:38:34.38まあ今が一番面白いというかハマる時期なんだろうな
0271デフォルトの名無しさん
2012/07/27(金) 23:43:34.56俺の調査によると、Long 型で表現できる以上の数を Mod しようとするとオーバーフローする。
Currency 型に強制キャストしても無駄だった。
色々調べたが、日本語、および英語サイトのどこにも情報を見つけることができなかった。
Project Euler の問題を解いていてつまづいたんだが…。
何でこんな基本的な情報がどこにも無いんだ?
つうか WMI を調べてると「WMI Fun」とかいうゴミサイトがノイズになってイライラする。
wbemtest やら WMI Code Creator やらが吐くテストコードを転載しているだけのくせに。
絶望した!Scripting Guys が
「自分たちもこれらのクラスをどれくらい使えるのかわからない」
と言ってる時点で絶望した!!
どんだけ C++/C# 優遇なんだよ?
余談だが、
一応IT関係の仕事してますブログ
http://teruterublog0700.seesaa.net/
も相当ノイズになって腹が立つ。
「○○さんのブログの手順でやってみました」
「できました!」
だけのゴミブログ。
条件が少し変化しただけでものすごく苦労させられる課題に関してもこの調子だからムカつく。
0272デフォルトの名無しさん
2012/07/27(金) 23:45:24.35VBScript でどこまで行けるのか教えてほしい。
今日は本当にこんなところで。
0273デフォルトの名無しさん
2012/07/29(日) 15:37:38.01これはネットに情報があった。
恐らく、ヘルプでの調査とネットでの調査を混同していた。
お詫びして訂正する。
0274デフォルトの名無しさん
2012/07/29(日) 15:48:35.53「OLE オートメーションのメソッド呼び出しにカッコが要ったり要らなかったりするのが気持ち悪い」
ということ。
VBScript を書き始めて3ヶ月、自分なりのスタイルを構築してきた。例えば、
1. 式はカッコでくくる(For 分は除く)
2. Wihie 〜 Wend は使わない。Until もできるだけ使わない。
3. Not 演算子はできるだけ使わない。<>演算子を使う。
等である。
優先順位は 1. > 2. > 3. だ。
何故 1. > 3. > 2. ではないかというと、Not 演算子の位置が気持ち悪すぎるから。
0275デフォルトの名無しさん
2012/07/29(日) 15:51:17.80If (objHoge Is Not Nothing) Then
と書きたい。しかし、
If (Not objHoge Is Nothing) Then
と書かなくてはならないのは苦痛だ。できれば
If (Not(objHoge Is Nothing)) Then
と書きたいがカッコがややこしくて別な意味で不細工になる。
まぁでもこいうのには慣れた。
0276デフォルトの名無しさん
2012/07/29(日) 15:56:33.31完全に初歩的な勘違いの領域になっちまった
0277デフォルトの名無しさん
2012/07/29(日) 15:57:18.861. カッコを付けて怒られるパターン
a) 引数が1個の場合はすんなり動く
b) 省略可能な引数を省略せずに書くと「Subプロシージャーは…」というエラーが出る。
2. カッコを付けないと怒られるパターン
「行の終わりが不正です」と怒られる。
ちなみにこれらには規則性が全く無い。
同じ OLE オートメーションのメソッド間でも統一性が無い。
一応、「カッコを付けないで書いて、怒られたら付ける」というマイルールを作ったのだが、
何故こんなことが起こるのかが分からない。
0278デフォルトの名無しさん
2012/07/29(日) 16:00:13.28どこを勘違いしているのかを教えてくれれば助かる。
C系で育ったので、VB系の構文は慣れるまで非常に苦痛だった。
0279デフォルトの名無しさん
2012/07/29(日) 16:34:21.19クラスメソッドやクラス変数が使えないとか、
そういうのは Cっぽく名前空間で逃げれば何とかなる。
言語単体では標準入出力すらできないくらい OLEオートメーションに頼った設計のくせに、
頼みのそいつらを VBScript からどれくらい操れるのかという情報が、大抵の場合、ない。
MSDN を見ても C++、C#、VB しか相手にしてませんのよ、ごめんあさぁせ、と言われているような錯覚に陥る。
結果、メソッドをチマチマ叩いてみるしかない。(引数の型で予想できる場合もあるにはある)
IE オブジェクトの ClientToWindow メソッドは VBScript からは使えない。
Visible = False な IE オブジェクトに仕込んだ JavaScript にお願いして…ってしなきゃいけないの?
WMI は多分単に解像度を返してくるだけだし、ツールバーを考慮に入れた描画領域を得るのにまた調べものか…。
ていうか、何かやろうとする度に延々調べて不毛なテクニックを得なければならないなんて…。
パトラッシュ、僕疲れちゃったよ
0280デフォルトの名無しさん
2012/07/29(日) 16:50:20.32確かに、COM や .NET の世界の入口を探訪できた経験は貴重だったが、
思い切って行っちゃおうか…
来年、つまり Windows XP のサポートが切れる1年前に行こうかと思っていたのだが…。
何で MS は Microsoft Update で強制的に XP に PowerShell や .NetFramework を入れないんだろう。
絶望した!これらをオプションインストール扱いにする MS に絶望した!!
0281デフォルトの名無しさん
2012/07/29(日) 17:05:22.06所謂、勉強の出来るバカ、テストの点数は良いバカ
アレも出来ない、コレも出来ないと扱き下ろしだけは一人前だが
自分が間違っていて規則性のあるエラーが出ても規則性に気付けず統一性が無いとか言っちゃって
自分の書いた論理式の論理的におかしい部分にも気付けない
一つ覚えたら凝り固まっちゃって、仕様の違いも調べず、「これで出来るはず」という勘違いを押し通して
それでエラーが出たら、貧弱だ不適切だと自分の無能を棚上げして言語を批難する
君には、臨機応変に多数の言語や実効環境を使いこなすのは無理だ
0282デフォルトの名無しさん
2012/07/29(日) 17:07:15.30署名の有無で挙動が変化するかは分からないが、2012現在、メーラで普通に弾かれる。
>>36
有名な解法を。
objIE.Navigate "about:blank"
With objIE
.Document.Body.InnerText = "クリップボードに入れたい文字列"
.execWB 17, 0
.execWB 12, 0
.Quit
End With
>>39
その Image が指す URL の画像ファイルを直に取ってきて保存すればいいんじゃない?
MSXML2.HTTP で取ってきてエンコードしてバイナリストリームに変換して保存。
HTA 関係はパス。
0283デフォルトの名無しさん
2012/07/29(日) 17:16:56.89言語そのものは批判してないんだけど?
「一定の逃げ方、書き方」を確立すればいいし、それでも無理ならそこが言語としての限界でしょ。
COM の呼び出しメソッドに関しては、「何故そうなるのかが分からない」と言っている。
恐らく COM 側のインターフェイスの都合なのだろうが、どの資料を見れば分かるのか?
調べたつもりだが本当に分からん。
> 自分の書いた論理式の論理的におかしい部分にも気付けない
Not のことか?Not "ブール式" という仕様なのは理解してるし、VBScript を使うなら納得するしかないし、
でも個人的にはなるべく使いたくないから使わない記法をマイルール化というだけの話。
SQL は IS NOT と書くからね。
0284デフォルトの名無しさん
2012/07/29(日) 17:24:55.91さよなら絶望先生のセリフだから。
今日はこのへんで。
0285デフォルトの名無しさん
2012/07/29(日) 17:33:52.64・VBScript から使えるものしか使わない。
・一般ユーザー権限で使えるものしか使わない(管理スクリプトは例外)。
・Windows XP の最小構成でやれることの限界を目指す(だから Excel 経由で〜や、.NET のクラス経由で〜も無し)
VBScript は 周りの助けを借りて動く言語なので、構成と権限を最小にした環境を「言語環境」だと思っている。
0286デフォルトの名無しさん
2012/07/29(日) 17:42:05.49ダメだこの子
0287デフォルトの名無しさん
2012/07/30(月) 19:33:36.52何故なら、>>286 に VBScript を食わせても多分、というより確実に動かないからだ。
つまり >>286 の価値は VBScript より下である。我々にとっては Err.Description の方がよほど有用なのである。
今日のお題は「VBScript の良いところ」である。
1. Windows2000 以上だったら(ほぼ)確実に動く。追加インストールは不要
2. OLE オートメーションが呼べる
3. 古式ゆかしい BASIC に慣れた人々にも優しい
… 3. はかなり無理をしている。
でだ。>>281 の人はものすごく勘違いしているのだが、1. のメリットが無ければ VBScript の魅力の 80% は失われる。
自分の書き方が悪かったのかもしれないが、C系で育った、というのは自分的には UNIX 的思想で育った、という意味もある。
(主に中括弧文化という意味で)
Perl も PHP も AWK も bash もイケるんだが(Ruby と Python は書けない)、最小を想定すると Perl と PHP は外さざるを得ない。
Emacs しか使えないと客先に vim しかないと窮するから使えた方がいい、というのと似ている。
0288デフォルトの名無しさん
2012/07/30(月) 19:44:25.61~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
これを忘れた輩が昨今多いのは嘆かわしいことであるが、実は Win 厨に多いのも事実である。
VB で納品されたアプリが正直に「With ステートメントでエラーが出ました」て吐くか普通?いや普通ではない。
COBOL が分かる人間は減ったが相変わらずメインフレームで動いているので、育児がひと段落した元コボラーの主婦でも雇う流れはまだある。
とは言え元コボラーで現C使い、てな人間は目が腐るようなコードを書いてくる。
見たくもないがオブジェクト指向COBOLなんてものもあるらしい。
これからはラムダ式や匿名関数、匿名オブジェクトバリバリの時代が来るのは、まぁ、分かっている。
C# の進化っぷりを見れば予想はつく。
0289デフォルトの名無しさん
2012/07/30(月) 19:56:11.89自分は WScript.Shell クラスにはほとんど興味が無い。多分10分で使えるようになるから。だから執拗に COM に執着してきた。
普通のテキストバッチ処理は普通にバッチスクリプトで普通に出来ることが多い。
仕事上でのテキスト処理はほぼ Perl でやっているが、配布するとなるとまず使わないし、使えない。
そのような理由で Win に関わるようになって VBScript に興味を持ったのだが。まぁそれも終わりだ。
あらかじめ絶望していた!VB系の連中のレベルの低さに絶望していた!!
予想斜め45°下の低さっぷり!ありがとうございました!!
0290デフォルトの名無しさん
2012/07/30(月) 19:59:42.140291デフォルトの名無しさん
2012/07/30(月) 21:49:06.41VB系の自称プログラマの底辺っぷりをさらすのみ。
きちんと反論しろよオラ?
0292デフォルトの名無しさん
2012/07/30(月) 21:55:49.87C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
「ブール式」もしくは「ブール型を返す式」としか言わない。
というところで「すら」底辺っぷりを晒すお前ら。
生きてて恥ずかしくないか?
0293デフォルトの名無しさん
2012/07/30(月) 22:04:16.96「VBScript がスクリプト言語として負わされた悲しみというべきもの」
言うなれば、
「遊びで付き合った女に中出ししてできちゃった結婚したものの、嫁が過去のトラウマを背負った○○だった」
そういう悲劇めいた喜劇に踊らされている者達よ。
VBScript に罪はないが、お前らのスキルの低さは万死に値する。
今夜はこんなところで。
0294デフォルトの名無しさん
2012/07/30(月) 23:38:59.13大好きじゃん。
0295デフォルトの名無しさん
2012/07/31(火) 00:39:30.67VBScriptユーザを貶めたいのか
>>263の目的がわからなくなってきた
0296デフォルトの名無しさん
2012/07/31(火) 01:28:54.30自慰行為。
0297デフォルトの名無しさん
2012/07/31(火) 11:40:59.91フレーズ検索の使い方わかる?
"論理式" "C言語" 約 11,300 件
"論理式" 約 185,000 件
"ブール式" 12,300 件
論理式 ブール代数 ブール値 がごっちゃになってるんじゃないか?
まあ、ここはおまえの日記帳だから好きなだけ吠えて行けよ。
ここで恥をかいたってリアルの知り合いにバレるわけじゃないし、君が生きてることを恥じる必要はないよ。
0298デフォルトの名無しさん
2012/07/31(火) 22:23:49.02ちなみに、自分に対する罵詈雑言があるだろうから無視して書く。
その前に、Call ステートメントという意味不明なステートメントを呼ばないと Function が Sub 扱いになることを知らなかったことを
ここにお詫びして訂正する。
「こんなもんは呼び出しを明示的にするだけのもんだろ」と思っていたら甘かった。
何の発想はモダンな言語であれば至極当然なのだが、さすがは古い因習の怨念に取りつかれた BASIC 系言語。
これは、「式文」という概念が VB 系言語にはない、ということの証左である。
式が値を返さない場面があって当然、というのは圧巻である。今時有り得ない。
自分はこれで「Set」という意味不明なステートメントがある理由や、「=」という記号が場面によって意味が違うという気持ち悪さを納得した。
一律で「Call」と書けばよいところを、何で Sub があるかという話だ。
「Call」と書けば Function の取りたくもない返り値を捨てることもできる。
だがさすがは VB系、伊達に過去の負の遺産を背負ってはいない。
0299デフォルトの名無しさん
2012/07/31(火) 22:31:31.50が、void を返したりして意味が無いので捨てて当たり前な場面が多々ある、というのが実情である。
「だったら Sub プロシージャ、いらない子じゃん」
普通はそう思うが、Sub 君はどうやら私生児ぽい扱いらしい。
大文字小文字を区別しない処理系同様、この子も変に互換性やしがらみを背負わされたっぽい。
だがこれは実に迷惑な話だ。
0300デフォルトの名無しさん
2012/07/31(火) 22:34:45.78どうでもいいけど俺の直上にあったからレスしとく。
ともかく、「返す値がブール値」という意味でしか使ってないから。
Google の検索結果?それとも Bing?
ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。
0301デフォルトの名無しさん
2012/07/31(火) 22:44:30.45「各個のステートメントが状態遷移上で個別に処理されている」ということが分かれば話は早い。
VB系言語はもう 終 わ っ て い い
ところが Linux の sh系シェルは実は似たような処理系ながら死ぬ気配が無い。
OS の違いは別として、決定的な違いがある。
「グールー言語としての魅力に天と地との差がある」
ということだ。
0302デフォルトの名無しさん
2012/07/31(火) 22:49:59.83Win のバッチスクリプトと考え方は変わらんからだ。が、
あれは「ものすごく酷い」。
引数すらまともにコマンドに渡せない代物だからだ。
土台がおかしいとその上もいびつになる、という好例である。
0303デフォルトの名無しさん
2012/07/31(火) 22:55:05.69別個にブログしているが、グダグダここに書いたのはここがまさに便所の落書き所だからだ。
ウンコしながら考えを整理するくらいにしか実際役に立たなかったし。
結論:
VB系でプログラミングを覚えた連中はカス。
ム板もマ板もカス。
俺のウンコ食ってろ。
0304デフォルトの名無しさん
2012/08/01(水) 06:18:42.720305デフォルトの名無しさん
2012/08/01(水) 08:30:20.19ある意味幸せな奴だw
0306デフォルトの名無しさん
2012/08/01(水) 14:02:54.47式に含めてはならないプロシージャを宣言するのがSub
式に含めるべきプロシージャを宣言するのがFunction
0307デフォルトの名無しさん
2012/08/03(金) 19:28:41.83お前は >292 で自分で言ったことを、自分で理解してないんじゃないか?
> ちなみに >>281 の人間が言う「論理式」という言葉は BASIC 系以外ではまず出てこない。
> C や Perl でも同等の表現はできるが、「論理式」という表現はまずしない。
> 「ブール式」もしくは「ブール型を返す式」としか言わない。
これがどうして
> ともかく、「返す値がブール値」という意味でしか使ってないから。
こういう解釈になるんだ?
> ていうかそれって「ネットになかったら世界に存在しない」というくらい可愛そうな発想だ。
同情してくれてありがとう。
それで、「論理式」という単語を使う奴は生き恥をさらしてて、「ブール式」と書き換えるべきだと、
ネットで「論理式」という単語を使っているすべての Web ページに対して主張するわけ?
ネット以外の世界(例えば教科書とか)では、「論理式」が多数派で、「ブール式」と間違えている
のは少数派という主張でいいのね?
amazon で「コンピュータ・IT」カテゴリから "ブール式" と "論理式" で検索してみたところ、
ブール式はわずかに一件。Erlang に感謝しな。"論理式"は 86 件。
もう一回、>292 を読み返してみたらどうだ。
0308デフォルトの名無しさん
2012/08/03(金) 19:36:13.69「グールー言語としての魅力に天と地との差がある」
グールーって、もしかして glue ?
0309デフォルトの名無しさん
2012/08/04(土) 00:29:24.65結論から言おう。
配列は、原始型でもオブジェクト型でもない中間的な夢を見る。
近年の言語では、配列は鬼っ子である。
型ではないし、とはいえクラスでもない、中間的な何か。
プロトタイプベースな言語では割と自然な形で取り込めなくもないが、クラスベースだとかなり不自然な存在である。
我らが VBScript でも、かなり鬼っ子的扱い(逆に言えば特別扱い)になっている。
VBScript における配列の扱いは三種類あると自分は考える。
1. 純然たる配列
2. 配列しか格納できない縛りのあるバリアント型、に格納されている配列
3. 何でも格納できる上で、配列も格納できるバリアント型、に格納されている配列
何でこう考えるかって?
プロシージャの引数や返り値に配列を混ぜてみればこう考えざるを得ないのだ。
1. は古式ゆかしい配列である。プロシージャの引数で ByRef するとプロシージャ内で ReDim もできない。
が、ByVal なら ReDim できる。
これは何故か。
ここから先を読むには、「わっふるわっふる」と書き込んでください。
0310デフォルトの名無しさん
2012/08/04(土) 02:37:13.850311デフォルトの名無しさん
2012/08/13(月) 16:22:41.79VBScriptの場合、配列どころか変数すら、原始型でもオブジェクト型でもないじゃん
0312デフォルトの名無しさん
2012/08/28(火) 22:33:44.69そんなことはない。バリアント型というメタ型だ。
バリアント型に格納できる変数をよくよく追いかけてみると C の構造体だ。
あーさて何の話だったかな。
あぁそう、VBScript における配列の話な。
VBScript における配列は、言語内唯一の「データ構造」として扱われる。
スカラー値しか扱えなかった C言語だが、C89 で構造体をスカラーっぽく扱えるのと似ている。
1.、および 2. は古式ゆかしい BASIC を引きずっている。
しかし VB ライクな使い方はどう考えても 3. だ。
ちなみに VBScript は引数(ByValの場合)も戻り値もバリアント型(に格納できる型)を要求してくる。
(VBScript にはそれ以外の型は無いので普段気にする必要はない。)
そこで行われるのは、まぎれもなく「コピー」なんだよね。それ以外の何者でもない。
由緒正しそうなサイトでも「Function プロシージャは内部で生成した配列を返せない」という、間違った情報が載ってたりする。
Function プロシージャで内部生成した配列を返しても問題ない。
ただし、巨大な配列を返すと酷い目に遭う。
よって、「巨大な配列を受け渡ししたい場合は ByRef 推奨。ただしこのやり方はイケてなさが漂う」のである。
0313デフォルトの名無しさん
2012/08/28(火) 22:36:09.48再帰もクソ遅いし、やっぱこの手には向いてない。この言語。
ttp://projecteuler.net/problem=14
最初にブルートフォースで解いて 4分。
探索済みシーケンスを Dictionary に放り込み&再帰で書いたら Corei5 で 40分。
再帰を解いてループに直して 20分。
業を煮やしてブルートフォースに直して 4分。
答えを投稿して他の回答者のコメントを見たら
「ハッシュテーブルを使って高速化したよ」
C/C++ 使いならそうなるよなぁ。
ちなみに巨大配列を用意してハッシュテーブルの代わりに使う、は典型的 NG。
.NET に同様のクラスがあるのは既知である。
しかし縛りをかけているので自分は使わない。
XP が死亡したら .NET クラスを堂々と使うけどな。PowerShell から。
0314デフォルトの名無しさん
2012/08/28(火) 22:39:20.74知らんよ。
0315デフォルトの名無しさん
2012/08/28(火) 23:08:27.24OLEオートメーションはある程度見捨てたので、あとはどんだけ言語としての面白さを楽しめるか、だ。
さてどこまでが限界やら。
0316デフォルトの名無しさん
2012/08/28(火) 23:31:05.280317デフォルトの名無しさん
2012/08/29(水) 00:29:10.56ありがとう。それは薄々気づいていたところだ。
Project Euler の問題が段々難しくなってきていて、BigInteger クラスを自前で実装しないとこの先キツいかなと思っていたところだ。
しかし心配はしていない。
名前のスコープが
1. プロシージャ
2. ファイル
の二段階しかいないC言語方式!!
幸い GetRef があるので色々と面白いこともできそうだ…。
VBScript のクラスはかなり C の構造体に近い扱いでイケると思っている。
まぁ、来月からですかな。
0318デフォルトの名無しさん
2012/09/19(水) 13:23:43.04動画のエンコードにAviUtl Controlという物を使い、それに
標準でついていたvbsを使用して録画後自動処理を行なっ
ているのですが、こちらの記述を フォルダ全体を対象に
処理するのではなく、読み込んだ動画 ファイル一つだけを
対象に処理させる方法はないでしょうか?
理由としては、1つ目のエンコード処理が終わっときに2つ目
の動画ファイルが録画中だと、エラーを吐いて処理が止まって
しまうからです。
ttp://www.dotup.org/uploda/www.dotup.org3437483.txt
『' キャプチャしたファイルがあるフォルダが空になるまで繰り返す』
『' SOURCE_FOLDER で一番古いファイルを探す』
といった辺りの文を削除して実行した所、エラーが出て止まっていましました。
行:78
文字:1
エラー:ステートメントがありません。
コード:800A0400
ソース:Microsoft VBScript コンパイルエラー
正確にはどう削除するのが正解でしょうか、教えてください。
0319デフォルトの名無しさん
2012/09/19(水) 15:09:38.34While - WendをDo While - Loopに替えてExit Doで抜けちゃったらいいよ
' キャプチャしたファイルがあるフォルダが空になるまで繰り返す
Do While Fs.GetFolder(SOURCE_FOLDER).Files.Count > 0
……
' エンコードが終わったファイルを移動する
Call Fs.MoveFile(input, MOVE_FOLDER)
Exit Do
Loop
0320デフォルトの名無しさん
2012/09/19(水) 16:17:33.63Dictionaryを変に使ったんじゃねえの?そんな時間かかるわけないだろ。
0321デフォルトの名無しさん
2012/09/19(水) 17:17:00.24ありがとうございます。無事希望通りの動作を実行できました。
0322デフォルトの名無しさん
2012/09/19(水) 21:36:48.81>>318の書式で、処理するフォルダに入っているサブフォルダ内
のファイルも処理対象にする方法はありませんでしょうか。
' キャプチャしたファイルがあるフォルダ(最後の文字は"\")
Const SOURCE_FOLDER = "F:\video\"
デフォルトだと、上記の通り一個の指定したフォルダしか対象にできません。
0323デフォルトの名無しさん
2012/09/20(木) 16:09:09.07途中までできた、デバッグ出力するだけだけど
http://www.dotup.org/uploda/www.dotup.org3438838.txt
出力先フォルダとソースフォルダが入れ子になってるからちょとまんどくさい。
ソースフォルダって変えることできる?
0324デフォルトの名無しさん
2012/09/23(日) 23:39:55.76[email protected] でそれだ。
俺が変に使う訳がない。
自分で書いてみろ。それで分かる。
0325デフォルトの名無しさん
2012/09/24(月) 07:53:48.89わかった、俺のセロリンさんが全力出して50分かかった。
0326デフォルトの名無しさん
2012/09/26(水) 00:10:56.98ゴミCPU乙。
0327デフォルトの名無しさん
2012/10/09(火) 22:46:20.06近頃の馬鹿はOLEの重さ加減も知らんのか…。
まさに生きるゴミ。
0328デフォルトの名無しさん
2012/10/09(火) 22:53:41.23黙れ雑魚
0329デフォルトの名無しさん
2012/10/10(水) 01:52:47.330330デフォルトの名無しさん
2012/10/10(水) 01:57:56.64どうすれば世界からVBScriptを抹消できるでしょうか?
0331デフォルトの名無しさん
2012/10/10(水) 02:44:11.38・参照渡しができる
・ローカル変数を宣言せずに使用できる
・巨大な配列の生成速度が速い
・参照カウントでオブジェクトを破棄しちゃうのでCOMと相性がいい
・無限ループの構文がきれい
・配列を使うときに[]を書かなくていい
・;を書かなくていい
・クラスを作成できる
■ このスレッドは過去ログ倉庫に格納されています