VBScriptについて必死に話し合うスレ [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
VBScriptでByRefが有用な場面が思いつかない。
Arrayを渡すくらいなもんじゃないの??
だったら何のためにあるのこの構文…。
教えてエロい人。
>>58
C++を勉強して実装例をパクればいいじゃん…。 >>60
エロい立場から言わせてもらうとスワッピングにも使えます >>62
C++を勉強する気が無いということか?ならお願いすんじゃねークズ。
> エロい立場から言わせてもらうとスワッピングにも使えます
考えが古い。古過ぎる。お前頭正常か??
Cでswap(&a, &b)みたいに書く時に便利ってか??
…
…
古い。古過ぎる。スクリプト言語でそんなのはゴミだ。
馬鹿だろお前。 >>63
どしたの? なんでそんなに力入ってるの?
もっと気楽にやりなよ、気楽にピラフに教えて頂戴よ お前が馬鹿だということは分かったからもういい。
海外のフォーラムで聞く。もういらん。
5chなどというレベルの低いところでで聞いた俺がアホだったわ。 短気すぎでしょ、ピラフちゃんと答えたのに、轢き逃げにあった気分だよ >>65
>俺がアホだったわ
今頃わかったのか、どうしてそうなるまで放っておいたのか… このスレはピラフ大王が居なくなると消滅する
それは間違いない >>67
VBScriptでByRefが有用な場面教えて >>68
海外フォーラムで鍛えられて帰ってきた帰国子女の>>63がいるからピラフはあまり心配してないんだよね ハイパーでっかい文字列を受け渡しするときにもByRefが有効だったりしないかな
ちょっと誰か試してみて 更新必要じゃ無けりゃByRefでしょ
速度がダンチだよ 指定しないときByRefになるから
ByValがおまけなんじゃなかろうか ____
/ ⌒ ⌒ \
./( ―) ( ●) \
/::⌒(_人_)⌒::::: | チラッ
| ー .|
\ / 文字列で試してみた
https://www.fastpic.jp/images.php?file=5783192533.png
計算量はByRefの方がいい
長さが65,536の文字列を引数に1,000万回関数を呼んだらByRefの方が60秒速い
1万回くらいでは差が0.1秒未満で計測できない ちょと質問
VBedit使ってるんだけど、日本語入力ができない
フォントをMSゴシッチとかにしても無理、もしかしてみんな日本語打たない? インライン入力は出来ないけど普通に入力できる
なんか勘違いしてるだけじゃないの >>78
サンクス解決しました
Winの問題でシステムライン変換ができない状態で再起動したらなおりました コードを保存しないで実行できるのはVBsEditとSystemScipterだけだよなあ。
他は何故か保存が前提。書き捨てのコードで実験できるのは実に便利だよなあ。 あどうも、VBScriptのおしゃれ番長ピラフです
ByRefは配列にしか使えないからうにゃらと言っておられる方が
いましたが配列はVBScriptで最も重要なデータ構造です
たとえば配列を使うことでSystem.Collections.Hashtableよりも
3倍高速なHashtableを実装できます
Hashtable.vbs GitHub
https://gist.github.com/anonymous/8c88e9c5e37edbb06524ec4871e13846
同様にSystem.Collections.Queueよりも高速なキューや
System.Collections.Stackよりも高速なスタックを作ることができます
つまりあれなんです、.NETのコレクションって遅くない? gist.githubって良くない?
アカウント持ってなくてもサクッとコード共有できる
かっこいいよねこれ グーグルのRobotoフォントいいよね
https://www.fastpic.jp/images.php?file=0850861226.png
すっきりしててシンプルで優雅でエレガントな気がするフィーリングだよ 質問なのですが現在のスクリプトが管理者権限を持っているかを判別する方法はありますか?
調べてみて WshShell.Run("openfiles", 0, true) で一応できたのですがもっとスマートな方法があれば教えてほしいです。 スマートかどうかは知らないけど
Windows Vista以降なら whoami コマンドを使って
実行中のユーザが管理者権限を持ってるかチェックする方法もある
※ "Mandatory Label\High Mandatory Level" グループがあれば [管理者として実行] の状態
Set WshShell = WScript.CreateObject("WScript.Shell")
ret = WshShell.Run("cmd /c whoami /groups | find /I ""Mandatory Label\High Mandatory Level""", 0, true)
if ret = 0 then
MsgBox "管理者"
else
MsgBox "非管理者"
end if VBSからタスクスケジューラに複数の引数を渡して実行したいのですが、「プロシージャの呼び出しまたは引数が無効です」とエラーになります。
こちらによるとString型の配列を引数にできるとあるのですがどうすれば良いのでしょうか。
ttps://msdn.microsoft.com/ja-jp/library/office/aa382094.aspx
Dim strArg
Dim TaskService
Dim TaskFolder
Dim RegisteredTask
strArg = Array("A1","A2")
Set TaskService=CreateObject("Schedule.Service")
TaskService.Connect
Set TaskFolder=TaskService.GetFolder("\User")
Set RegisteredTask=TaskFolder.GetTask("test")
RegisteredTask.Run(strArg)
WScript.Quit ___
/ \
/ ヽ
| ● |
/\ ノ
(――> (__
 ̄ ̄> \
/ / ̄ ̄二) |
| (___/ /
\ /
〜〜〜〜〜〜〜〜〜〜〜 文字列で渡して受け取り側でスプリットしちゃえばいいのか >>782
旦那のオチンチンが結構大きいので口に入れるのは辛いですね ピラフのオチンチンは爪楊枝サイズですが柔らかいので歯の掃除に使えません。 おチンチンびろーん
∩___∩
| ノ ヽ/⌒)
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/
.( ヽ |∪| /
\ ヽノ /
/ /
| _つ /
| /UJ\ \
| / ) )
∪ ( \
\_) 問題.次の式の結果として正しいのはどれでしょう
(1) 5 / 4 * 3
(2) 5 \ 4 * 3
1.(1)が3.75、(2)が3.75
2.(1)が3.75、(2)が3
3.(1)が3、(2)が3
4.(1)が3.75、(2)が0 まじか?ピラフにおちんちんついてたのか!?
5ch始まって以来の衝撃ニュースやんけ!!! マシュマロを食べるたびにピラフのちんちんを思い出す呪いをかけた
___
/::::::::::::::::\
/:::::─三三─\
/:::::::::<○>三<○>.\
/⌒)⌒)⌒.:::::::::: (__人__) :::::: \ /⌒)⌒)⌒)
| / / /.. ` ⌒´ | (⌒)/ / / /,,
| :::::::::::(⌒) / ゝ ::::::. .........._
| ノ \ /_ /´ ヽ
ヽ / ヽ / /0 .',
| | {o ::}
': /
ヽ、___,.,/ >>103
ところでさ「君の名は」って映画観た?
ピラフいちゃもんつけてやろうと思って観たけど
大号泣だったわ、あんな悲しい話だったとは…… >>105
観たがいいよ!YouTubeとかAmazonで400円で観れるから >>114
元祖、君の名はの岸恵子は85歳だけどね vbsなんていう、完全終了してる言語になんでしがみついてんの? 普通にJavaScriptかPowerShellだよね今なら なんか放っとけないんだよね
VBScriptにはピラフがいないといけないんじゃないかって
気がつくとVBScriptのことばかり考えてる >>123
Node.js使ったことある?あれマジヤバくない?なんていうかマジヤバくない?
超速いんですけど、メモリ効率もすごいし、zip解凍するだけで使えるハイパーポータビリティだし
あれはねヤバイね ピラフが居なくなったらMSもVBScriptから撤退するだろうな 仕事で初めて使うことになった
プログラミングとかの経験はほぼない
CSVファイルをデータベースにインサートをするスクリプト作ることになったんだけど、どんなコードを書くのか想像すら付かない
コードも暗号にしか見えないし出来るのか… 割とガチでJavaScript使った方が良いと思う >>128 だけど
とりあえず少し触ってデータベースへアクセスする部分は書けた(全部で5行くらいだけど)けどCSVをデータベースにインサートする部分が全く分からん
このケースってそんなにないのかな?
ネット見ても似たサンプルが見当たらない…
どういう考え方というか進め方をすればいい? >>132
やり方としてはCSVからSQL(insert文)作って実行するだけじゃない >>133
ありがとう
でも全然分からん
CSVファイルの中身を一度抽出する必要がある?
それともファイルごとDBぶん投げるの?
あと、インサート文を書くにしてもVALUE部分はどう書くの? >>134
csvファイルの中身を抽出してカラム毎に分解してinsert文を作る。
あとはピラフ大王に教えてもらえ >>135
ありがとう
やっぱ中身の分解は必要なんだね
もう少し調べてみる
ファイルの中身を列ごとに取得
SQL文作成
データベース接続
SQL投げる
って流れで良いかな?
質問ばっかりで申し訳ないんだけど、日付でファイルを指定したりも出来る? >>136
データベースエンジンによってはcsvをインポートするコマンドがあったりする。
SQLServerのbcpコマンドとか。 >>138
そうなんだね
ポスグレ使ってるから調べてみる
日付はCSVに付加させてて、今日の日付のファイルのCSVを読み込むって事をやりたい
行の取得が一般的なの?列の取得ってどうやるんだ? >>139
scripting.filesystemobjectをcreateobjextして
opentextfileで開いてreadlineするか
readallで全部読んでから、vbcrlfでSplitしてFor eachで処理する
読んだ一行は、カンマでSplitして文字列はダブルクォーテーションで囲んだりしながらvalue部分作成
あとはあらかじめ用意したSQLにくっつけて実行 >>140
ありがとう
呪文にしか見えん…
ちょっと調べながら解読してみる… >>142
スペル間違ったcreateobjectね ____/ ̄ ̄
/ │ ̄\__ ゴゴゴ・・・
/
.. 、 ,_
 ̄\_/ ̄ ̄\/ ̄ ゴゴゴゴゴゴ・・・
___/ ̄へ√⌒l⌒´ ̄ ̄\_
´ / \
_ ./ ̄ ̄ ̄\ /
__ `ソ/ ─ ─ \/ ̄/
\/゚ (●)。 (●) \/ rへ,ノ ・・・・・・
__>-へ| i (__人__) |ノ :.\_
.:/从へ、.゚` ⌒´o.ノ从rーヘ_
_::ノ :ノ`⌒Y⌒´:: \
.::┘ :│ ゚ >>142 です
>>140 の人丁寧に教えてくれたけど全然分からなかった…すまん…
CSVの読み込みにCOPYが使えるってのを見つけて試そうと思ったんだけどファイルの先頭3行に必要ない行があるからskipを使ってコード書いたけど実行すると”skip”付近で記述がおかしいみたいなエラーが出る
これ何かおかしい?
Sql = "COPY datatest FROM 'C:\\FTP_Test\\LOG01\\00006401' skip 3; " ピラフの雰囲気だとなんでもエクセルとVBA使ってそうだけど >>152
ピラフ貧乏だからエクセル持ってないの! >>151
ポストグレスの重要機密文書見たけどskipは載ってなかったよ
skipオプションは使えないんじゃないかな
https://www.postgresql.jp/document/9.3/html/sql-copy.html
テキストエディタでサクッちゃいなよ
やっちゃえエディタ >>154
skipないのか…
>>140の人がレスくれた内容がこの辺かな?
http://bayashita.com/p/entry/show/85
これを
読んだ一行は、カンマでSplitして文字列はダブルクォーテーションで囲んだりしながらvalue部分作成
あとはあらかじめ用意したSQLにくっつけて実行
って全然イメージ付かない…
1行ずつよんだ結果は上のサイトで言う所のstrLineに入ってるって理解で良いのかな?
この変数の中身をどう分解すれば良いんだ?
聞いてばっかりでごめん >>155
strLineには1行ずつ読んだ結果が入ってるよ
Split関数を使ってカンマで切って配列に変換すればいいよ
Dim values
values = Split(strLine, ",") >>156
ありがとう
CSVの列の数とテーブルの列の数が同じなら下の書き方で上手くインサートできる?
INSERT INTO test
(aaa,bbb,ccc)
VALUES
(values) >>157
数も順番も同じなら、テーブル名も省略できるよ ■ このスレッドは過去ログ倉庫に格納されています