[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/01 06:17 / Filesize : 260 KB / Number-of Response : 964
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

VBプログラマ質問スレ(Ver.6.0 まで) part57



1 名前:デフォルトの名無しさん mailto:sage [2011/04/30(土) 01:50:27.76 ]
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

VB.NETは別物なので専門スレで、VBA、APIの質問もそれぞれのスレで。

○ 質問者の心得
 一.質問する前にMSDNやGoogle、過去ログにも目を通してみる。
 二.VBScript、インストーラーなどはこのスレでOK。
 三.質問は第三者にもわかりやすいよう簡潔かつ具体的に。
 四.荒らしは相手しない。

○ 回答者の心得
 一.答えられない質問は無駄に罵倒せずスルー。無理するな。
 二.代用法を強制しない。
 三.回答する上で必須ではない情報をむやみに聞き返さない。
 四.荒らしは相手しない。
 五.VB情報募集中。
 六.回答は質問者が理解できるよう具体的に。

MSDN Online Japan ホーム
 www.microsoft.com/japan/msdn/default.asp
Visual Studio 6.0 Service Pack 6
 msdn.microsoft.com/vstudio/downloads/updates/sp/vs6/sp6/default.aspx
Google
 www.google.co.jp/

※「まず自分で調べる」クセを身につけよう。

504 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 08:52:19.46 ]
httpdのログ見るかぎりはIEで接続されてる事になってるよ

505 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 12:05:28.58 ]
>>502
とりあえずお前のお勧めのVB6用HTTPライブラリ教えてくれ

506 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 13:56:24.69 ]
>>504
だろうねw

どうせユーザーエージェントなんて
urlmonで変えられるだろ。

507 名前:デフォルトの名無しさん [2011/08/28(日) 14:46:47.87 ]
自作のエディタで開けたからOPENで読み込んだと勘違いしてたけど
ファイル名入力のGetOpenFileNameってダイアログのAPIがファイル名にURLを与えると
IEのキャッシュファイル名を返してきて
OPENは単にTemporary Internet Filesの中のファイルを開いてるだけでした

508 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 15:05:22.59 ]
>>507
でもそれは結局URLを読んでるのと同じだろ?

509 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 17:09:20.25 ]
単にキャッシュ読むなら相手のhttpdログに残らないわけだが

510 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:01:47.10 ]
キャッシュよむかどうかはインターネット設定によるんじゃ?
キャッシュに無ければ実際にhttpでデータとってくるだろ

511 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:20:40.63 ]
インターネットの画面で右クリックしてプロパティを開くと、
WEBページのサイズを確認することができますよね?

それを利用して、サイズが変わった=ページの更新があった という考えで
更新があると
「チェックしているサイトが更新されました」
という風に画面に表示するようにしたいのですが、
このような動作をVB上で実現することはできるんでしょうか?
実現可能であればどのような関数を使って作成すればよいのかを教えてください。
お願いします。

512 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:53:23.63 ]
Content-Lengthが帰ってくる保証は無いしLast-Modifiedも同じくあてにならない
以前のファイルと取ってきたファイルを比べないと正確な更新があったかはわからない

つか、そういうのはそれなりのスレで聞いた方がいいんじゃないかな



513 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:55:21.54 ]
とりあえず、Content-Lengthでやってみて駄目ならでいいんじゃねっていう。
512さん教えてあげて!w

514 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 22:57:42.87 ]
だがことわる

515 名前:511 mailto:sage [2011/08/28(日) 23:09:48.78 ]
>>512
今はとりあえず、サイズでチェックのみの
簡単なもので作りたいと考えています。
ですのでこの際正確に更新があったかどうかは問わないもので大丈夫です

516 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:19:45.45 ]
winsockのTCPの80でHEADかGETを行い読み解析
詳しくはぐぐってくれ

517 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:21:53.15 ]
くれぐれも実在するインターネットのサイトでテストを行わない事
練習用のサーバを建てて実験するように
冗談じゃなく牢屋にブチこまれるぞ

518 名前:デフォルトの名無しさん mailto:sage [2011/08/28(日) 23:26:39.75 ]
ETagがあるんならそっちのほうがいいような気がしてきたが、どうなんだろうな
俺はそんなに詳しくないからわからん

519 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:25:42.01 ]
>>517
何で牢屋?

520 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 00:33:26.48 ]
岡崎市立中央図書館事件というものがあってな
サーバ管理者側が意図しない接続をうけたと警察に被害届を出せばとりあえず逮捕するという前例を作ってしまったんだよ

521 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:11:51.80 ]
なんか2chって得意げにそれを挙げる馬鹿が多いよな

522 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:20:41.29 ]
得意げになるようなものか?これ



523 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:30:04.69 ]
投稿者はドヤ顔してるに違いない

524 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 01:34:25.23 ]
妬むなよ、気持ち悪い。

525 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:16:03.72 ]
>>520
別にそんな例を出さなくても、
誤認であっても逮捕されるなんて知ってる。
世の中のこと何も知らないんじゃないのか?

526 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:22:03.69 ]
具体例を出したら例を出すなと言い、
出さなかったらソースは?と聞く。

527 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:30:24.39 ]
つまり、元々の発言が、くだらないものだってって結論。

逆に言えば、くだらないものだという証明をするために
証拠を出させたとも言える。

528 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 02:33:07.31 ]
妬むなよ、気持ち悪い。

529 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 03:57:31.85 ]
何だこいつw

524 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 01:34:25.23
妬むなよ、気持ち悪い。

528 名前:デフォルトの名無しさん[sage] 投稿日:2011/08/29(月) 02:33:07.31
妬むなよ、気持ち悪い。


530 名前:デフォルトの名無しさん mailto:sage [2011/08/29(月) 19:57:00.41 ]
これ見るたびに2chネラって頭悪い奴が多いなと思うんだけど、
岡崎の件は普通に考えればケーサツの勇み足っていう文脈で言及されるべき事件であって、
こんなのを「犯意がなくてもお縄になる事例」として挙げる奴は脳が湧いてるのかと。

531 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 00:25:22.33 ]
別件逮捕のネタとして使われないとは言えない時代だから困る。お前ら、バグは残すなよ

532 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 02:13:22.64 ]
別件って
何かやましいことでもしてんのかよw



533 名前:デフォルトの名無しさん mailto:sage [2011/08/30(火) 16:24:32.19 ]
vbのツールバーのボタンサイズを変更するにはどうすればいいんですか?

534 名前:デフォルトの名無しさん mailto:sage [2011/08/31(水) 21:44:17.98 ]
普通にやればいいんじゃないの?

535 名前:デフォルトの名無しさん mailto:sage [2011/09/01(木) 08:50:05.40 ]
>>530
実際には当事者であるMDSの嘘を専門家の意見として鵜呑みしている時点で
勇み足というレベルではなく深刻な警察の腐敗が明らかな大問題

536 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 02:35:40.05 ]
>>535
犯罪だという訴えがあって、逮捕状も出た(んだよな?当然)のに、
逮捕しなかったらそれは警察の怠慢。そっちのが腐敗しとるわ

537 名前:デフォルトの名無しさん mailto:sage [2011/09/02(金) 19:58:58.45 ]
逮捕状ってのは警察が請求すれば自動的に出ることになってるんですよw

538 名前:デフォルトの名無しさん mailto:sage [2011/09/03(土) 01:28:24.17 ]
結局使ってるのは人間だからなぁ

539 名前:デフォルトの名無しさん [2011/09/04(日) 09:18:47.55 ]
再起動するのは
Shell App.Path+App.ExeName+".exe", vbNormalFocus
End

でしょ
このコードで動くのは自分がドライブルートにある場合だけ
ルートにある場合だけApp.Pathの末尾に¥が付く理由とは?

540 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 10:05:41.94 ]
態度が気に入らないから教えません

541 名前:デフォルトの名無しさん mailto:sage [2011/09/04(日) 17:13:42.74 ]
FileSystemObjectのBuildPath使えば\のこと気にせず

542 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:12:14.90 ]
>>540
×態度が気に入らないから教えません
○私は知識がないので教えられません



543 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 12:46:16.22 ]
自らを正すのではなく相手に逆切れ
そんな朝鮮的な感情、ステキやん?

544 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 14:22:04.85 ]
つーかさ、教える教えない教えられないとか以前に、>>539に「理由」を回答する必要あるのか?

理由や原因が解れば、ユーザー側で対処改善出来る類の物なら理由を聞くのも解るが
件のはそういう類のものではない。あえて言うなら「仕様だから」で、なぜそういう仕様なのかという「理由」は
MSに聞くべき。

なのでユーザーとしては
「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく
「ルートにある場合だけApp.Pathの末尾に¥が付く」前提での対策を考えるべきだ。


因みに俺の場合、基本クラス(全てのプロジェクトに組み込む自作クラス)のInitializeで

変数=App.Path
if right(変数,1) <> "\" then 変数=変数 & "\"

的な処理をして、
「App.Path」相当のものを「クラス.AppCurrentDir」で、ルートでもそれ以外でも
必ず末尾\有りで取得でき、
「App.Path+App.ExeName+".exe"」相当のものを「クラス.AppFullPath」で
ルートでもそれ以外でも正しく取得できるようにしている。


ついでに言うと
Shell App.Path+App.ExeName+".exe", vbNormalFocus
ではなく
Shell App.Path+"\"+App.ExeName+".exe", vbNormalFocus
として
「このコードで動くのは自分がドライブルートにある場合だけ」
ではなく
「このコードでは自分がドライブルートにある場合だけ正常に動かない」
と主張するのが普通でしょ。

545 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 15:19:29.38 ]
>>544
FileSystemObjectのBuildPath使えよ

546 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 17:49:27.99 ]
>>544
>「ルートにある場合だけApp.Pathの末尾に¥が付く」理由を聞いたり考えたりするのではなく

「末尾に\が付く」んじゃなくて、ルート="\"だよ。
C:\abcは、「ドライブC」の「ルートからたどって」「abcというフォルダ」

547 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 18:43:38.85 ]
つか、ルートに\がつく理由は、それが仕様だから
最近決まった仕様でもないし、その仕様にどうこう言っても始まらない

なぜそういう仕様なのか考察するのは別のスレでやってくれ

548 名前:デフォルトの名無しさん mailto:sage [2011/09/05(月) 20:17:06.90 ]
>>545
君、お馬鹿さん?

549 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 02:18:30.69 ]
まあルートがバックスラッシュなのはwinに限らない訳で
それを何故と問われても困るわな
でもそれで起源を辿ってみるのも面白いかもよ?

550 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:30:42.85 ]
>>548
お前のわけのわからん俺クラスを使われるのより、BuildPath使った方がよっぽどいいよ

551 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:35:18.11 ]
>>547
> つか、ルートに\がつく理由は、それが仕様だから

まだ、ルートに\が「つく」とか言ってるのかよ。
「つく」んじゃなくて、ルート="\"だってば。

552 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 11:51:20.00 ]
C:\A\B
二個目の\はAのルート、BはAのルートの中にある、ってはなしだな?



553 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:36:37.23 ]
何言ってるんだろうか

554 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:39:28.57 ]
ルートは一つ

555 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 12:58:49.26 ]
>>552
ルート以外の「\」はパス区切り文字。
ディレクトリ構造の概念を知らないのなら、ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA

556 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 13:19:38.94 ]
ディレクトリやパスを扱う場合は、"C:\A\B"のかわりに"C:\A\B\"という入力もValidなので、
いつでもBuildPathを使っといた方がいい。で、どうせFileSystemObjectを使うんだから、FSOの
その他のメソッドも積極的に使う方がいい。

557 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:00:08.68 ]
BuildPathというかFileSystemObjectに拘ってる奴がいるな
\つけて\\を\に置換すればいいだけだろ

558 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:16:04.18 ]
newpath$ =Replace(path1$ & "\" & path2$, "\\", "\")
こう?

559 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 19:27:57.73 ]
FileSystemObjectのインスタンスあればBuildPath使えばいいし
FileSystemObjectを使ってない場面では自前処理で問題ないだろう
場合場合で使いわければおk

560 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:02:26.90 ]
なんかいかにもVB厨らしいアホな会話w
普通に考えれば>>556の言ってることが一番まとも。

Win98以前の時代なら躊躇する合理的理由もあったが、いまさらWin9x環境のことを考慮する必要もないだろう。

FileSystemObjectのインスタンスあればって何だよ。
ライブラリ化しとけよそんなの。

561 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 21:58:57.70 ]
VB6で正規表現っぽい処理させるにはどうしたらいいの?

562 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:13:27.42 ]
Microsoft Visual Basic 6.0 で正規表現を使用する方法
support.microsoft.com/kb/818802/ja




563 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 22:47:28.72 ]
>>560
FileSystemObject = ライブラリだよ

564 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:21:14.75 ]
一方、俺はめんどくさいので最初に専用の変数を用意し、
そこにApp.Pathをぶち込んで末尾の"\"を確認してない場合にその変数に"\"を追加して、
以降はずっとその変数を利用している。後悔はしていない。反省もしていない

565 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:29:34.98 ]
A:\
B:\

566 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:44:03.96 ]
>>563
VB厨様には「ライブラリ化する」って表現が通じないことがよく分かった。

567 名前:デフォルトの名無しさん mailto:sage [2011/09/06(火) 23:47:10.00 ]
ライブラリ化するという表現は伝わるけど、どうも >>560 の言うライブラリ化は
違う意味のようだ。

568 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 00:34:30.73 ]
いやまあ概念は知っといて損は無いけど
要は意図した形になってりゃ良いんじゃねーの
問題無く動くならそこから先は自己満足の世界だろ
今のスペックなら悪意でも無きゃ差なんて出ない

569 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:09:59.38 ]
>>557
UNCパスを考慮しない前提に限ればな

570 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 01:26:19.22 ]
なんか解ってない奴ばかりだな

571 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 11:03:01.99 ]
>>557
> BuildPathというかFileSystemObjectに拘ってる奴がいるな

ということにしないと、自己崩壊しちゃうの?

572 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 13:30:35.84 ]
>>570
何が?



573 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 01:40:34.47 ]
>>566
すでにライブラリになっているものを
ライブラリ化する意味はない。

普通にライブラリを使えばいいだけ。

574 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:10:36.19 ]
>>573
君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ

575 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 14:42:53.22 ]
でもFileSystemObject を再度ラップしてライブラリ化する意味はあんまない気がするね。
使う人によるだろ

576 名前:デフォルトの名無しさん mailto:sage [2011/09/08(木) 15:01:57.45 ]
FSOに限らず、エラーハンドリングの一元化とか、ログ出力の一元化とか、足りない機能の追加とか
いろいろあるでしょ。ちなみにFSOに足りないのは、再帰処理。

577 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 12:04:31.43 ]
リストビューをリスト表示にしたとき
ある文字数(15文字くらい)に行くと
途切れてしまうんですが、
文字数を増やす方法って何か無いですか?

578 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:38:15.05 ]
>>574
> 君が作るライブラリには、VBの標準関数しか登場しないんだろうけど、それは君のスタンダードでしか無いよ

何を言ってるんだ?

FSOを使って新たにライブラリを作る意味が無いだろ。

ライブラリを作る場合は、
既存にはない機能を作るんだよ。

VBの標準関数をライブラリしてどうするんだw


579 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:39:01.13 ]
>>576
うん、ならFSOに足りない機能をライブラリとして作ればいいわけで、
FSOはそのまま使えばいい。

580 名前:デフォルトの名無しさん mailto:sage [2011/09/09(金) 23:49:07.65 ]
>>578
そういう馬鹿なこと言ってる(もちろん自覚ないんだろうけど)と、
これがVB厨ですって感じでどこかにコピペされちゃうよw

しかし、本当にマジで言ってるのかそれ。

581 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 09:30:19.38 ]
>>580
反論しろよw だからお前はw

582 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 12:59:09.34 ]
車輪の再開発は必要ないけど
車輪を応用したものを造るか てのは個人の好みだろ
クラスにするとかしないとか モジュールにするとかしないとか



583 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 13:05:34.13 ]
話は車輪の再発明じゃないよ

使いやすいキーボードに
キーボードカバーをかけるようなもん。

せっかく完成されたものを使わずにラップしてどうする。
世の中に普及しているライブラリってのは一般によく設計された作られているもの。
理由があってこうなっているのに、それをラップしても使いにくくなるだけ。
ラッパーは作るのがかなり難しいんだぞ。

十分に説得できる根拠がなければ、それは単に機能低下させているに過ぎないものになる。
どうせ、ラップして簡単に使えるよ→それじゃこういう場合に使いにくいだろ→拡張するよ→繰り返す→ラップ前と殆ど変わらいよ。になる。

既存のライブラリが使いにくいのなら、ラップするのではなく使いやすくするヘルパーライブラリを作ればいいだけの話。
そうすれば、あるときはヘルパーライブラリで簡易な操作をしながら、それでいてオリジナルの全機能もそのまま使える。


584 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 18:46:40.88 ]
長文なわりにレベルは低いな

585 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:39:25.37 ]
ほら、またw 反論しろよ。だからお前はw

586 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:47:17.06 ]
何がほらか知らんけど、複数の人物を同一人物だと妄想してる馬鹿がいるな。

そんなことはどうでもいいが、さすがにFSOを使用した自作のユーティリティー関数(の集まり)
をライブラリーとは言わないだのとか言った話は、馬鹿らしくて話にならない。

反論って、そもそも無知で馬鹿で非常識すぎて話が噛み合ってないのに反論も糞もあるか。

587 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 20:49:25.01 ]
じゃあ黙ってろよw
言いたいことがあるから、黙らずレスしたんだろ?
なのに、その肝心の言いたいことがかかれてないのだから、馬鹿にされて当然。


588 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:25:52.35 ]
こういう子が居るからVB使いはバカにされる

特に、「バカほど声がでかい(掲示板では必死な文を書く)」の格言通りの奴が多いから
尚更バカが目立つ

589 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:05.71 ]
で?

590 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:27:16.58 ]
VBって、VacaBakkaの略ですか?

591 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:28:47.88 ]
>>588
馬鹿にしてるのはお前だろうと

592 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 22:31:18.60 ]
>>586
>ライブラリーとは言わないだのとか言った話
そんなレベルの話してるやついたのか?

FSOを使うためのライブラリ作るべきか不要かの話してるやつは結構居たがな
まあそんなの環境と要件と個人の趣味で好きにすれば良い話



593 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:34:19.51 ]
こんな感じ?

'FSOEx.Class
Dim mFSO As IWshRuntimeLibrary.FileSystemObject

'フォルダ以下のファイルリストを取得する
Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection
Dim f
With mFSO.GetFolder(strDirPath)
For Each f In .SubFolders
GetFileList f.Path, colFileList
Next
If colFileList Is Nothing Then Set colFileList = New Collection
For Each f In .Files
colFileList.Add f
Next
End With
Set GetFileList = colFileList
End Function


Public Property Get FSO() As IWshRuntimeLibrary.FileSystemObject
Set FSO = mFSO
End Property

Private Sub Class_Initialize()
Set mFSO = New IWshRuntimeLibrary.FileSystemObject
End Sub


594 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:55:08.72 ]
IWshRuntimeLibrary.FileSystemObjectのインスタンスをScripting.FileSystemObjectの変数へ代入

595 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 01:52:14.94 ]
FileSystemObjectのインスタンスは状態を持ってないので
「どこからかデータを書き換えられる」ことがないので
いちいち生成する必要はありませせん。

つまり、標準モジュールにPublic FSO as new FileSystemObjectと書けばいい。


596 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:07:26.29 ]
Set FSO = Nothing


597 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:08:39.04 ]
newで宣言してるからFSOにNothing入れてもFSO呼び出されるときインスタンス生成される

598 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:06.75 ]
こうか

'FSOEx.bas
Public FSO As New FileSystemObject

'フォルダ以下のファイルリストを取得する
Public Function GetFileList(strDirPath$, Optional colFileList As Collection = Nothing) As Collection
 Dim f
 With mFSO.GetFolder(strDirPath)
  For Each f In .SubFolders
   GetFileList f.Path, colFileList
  Next
  If colFileList Is Nothing Then Set colFileList = New Collection
  For Each f In .Files
   colFileList.Add f
  Next
 End With
 Set GetFileList = colFileList
End Function

599 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:12:23.35 ]
>>596
そこまで防ぎたいのなら
標準モジュールにperoperty getを
書けばいいだけなんだけどね。

やる意味が無いから俺はやらないけどw

600 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:17:14.23 ]
DimでNewをつけてるから>>596のコードがどこに入ろうとも効果無しだよ

601 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 04:18:08.82 ]
>>598
mFSOをFSOに直さないとエラーでるよ

602 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:06:51.09 ]
えーとFSOをそこまでしなきゃならない理由を是非



603 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:20:42.96 ]
そこまでって何かすごいことをやってるのか?

604 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 10:49:29.82 ]
VB6って今SP6だけ入れれば最新の状態ですか?
その後に、何か不具合や脆弱性のあるものの修正パッチとかありましたか?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<260KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef