(*´д`*)アハァ… VB初心者質問スレ Part21

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:03/02/27 10:02
ネットワークドライブに接続して、そこのフォルダにDIRしたら、
そのままつかんじゃって切断できません。なにかうまい方法はありますか?
>>947


>>952
Dirの使い方間違ってるかFSOで代用する
>>947
ウソついた。上。
暗黙の型変換について調べることをオススメする。
955947:03/02/27 11:02
>>954
VBの中で何かが起こってるんですね。ありがとうございます。
956デフォルトの名無しさん:03/02/27 12:01
フォルダ階層を順に追っていって、あるフォルダの中にある
すべてのフォルダ・ファイルにアクセスするにはどうしたらいいでしょうか。
色々試行錯誤してはみたのですが、どうもうまくいきません。
>>956

再起検索しる。

sub hoge(pathHoge)

  a=Dir(pathHoge)
  Do While a <> ""
    aの値を配列にでも格納しる
    a = Dir()
  Loop

  For 配列の中身
    Call hoge(配列(i))
  Next
End Sub

みたいな感じ。

間違っても、Dirで列挙している最中に再帰呼び出ししてはいけない。
Dir関数が腐るぞ(笑
958828:03/02/27 12:23
どうよ? >>828
>>958
SQLのスレ逝け
960817:03/02/27 12:55
>>884
マジデスカΣ(゜д゜|||)

Oracleスレはだれも反応しないし
ネット漁っても引っかからないし・・・

(´・ω・`)モ ウ ダ メ ポ
961デフォルトの名無しさん:03/02/27 16:20
VBからCで作ったDLLのDllMainを呼び出すにはどうしたらいいのですか?
>>961
Declare か LoadLibrary
963961:03/02/27 16:32
>>962
DllMain(HINSTANCE hDLL, DWORD dwReason, LPVOID lpReserved)
呼び出す時にこの引数の中に何も入れたくないんですけど無理ですか?
964デフォルトの名無しさん:03/02/27 16:43
カンマ区切りの行ファイルがあって、そこからカンマを抜きにしたデータを
1つずつ取り出すにはどうしたらよいでしょうか?
965962:03/02/27 16:57
>>963
どっかでみたような質問だな

引数に何も入れたくないってことは全部値0でってことか?
DllMainがエントリポイントである限り無理だと思われ。

何でそんなことがしたいわけ?
>>964

Dim arrayHoge() As String

arrayHoge = Split("hoge,hoe,hanyan", ",")

For i = 0 to Ubound(arrayHoge)
  Debug.print arrayHoge(i)
Next
967964:03/02/27 17:12
>>966
ありがとうございます
968 ◆HLRHHB4j46 :03/02/27 17:59
アドレスwww.uploader/forlder001/にファイルをアップしてみた。
というカキコミから
www.uploader/forlder001/
だけを抜き出すにはどのような正規表現を使えばいいの?
当方InStr関数とかは使えるけど正規表現はサパーリ。
「www.uploader/forlder001/にファイルをアップしてみた。」
というアドレスだったらどうする?
970968 ◆HLRHHB4j46 :03/02/27 20:24
>>969
全角文字列・/を含んだ半角文字列・全角文字列
という1行から/を含んだ半角文字列を抜き出すアルゴリズムがほしいのよ。
だから
「www.uploader/forlder001/にファイルをアップしてみた。」
というアドレスは無視。
ちなみに
upSHITEMITAYO----------KOKONI-----www.uploader/forlder001/
というようなのもupSHITE〜001/まで抜き出してしまってもかまわない。
とにかく/を含んだ半角文字列はアドレスである確立が高いのでそこを抜き出したい。
まぁ、普通はURLとして不正な文字があるかどうかチェックだな。
2バイトURLは見なかったことにする。

w+\...+\/.+[^!#-;=?-~]
ってな感じかなぁ。試してないけど。
972968 ◆HLRHHB4j46 :03/02/27 20:34
>>971
Dim myStr as String
myStr="www.uploader/forlder001/"
myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。"
'だとすると、
If myStr = (w+\...+\/.+[^!#-;=?-~](myStr2)) then
form1.caption="アドレス抽出しました。"
End if
'のように正規表現は使うわけ?

正規表現の書き方は今日教えてもらった
w+\...+\/.+[^!#-;=?-~]
をコピペして使ってみるけど
正規表現の使い方がわからないのだ。
973968 ◆HLRHHB4j46 :03/02/27 20:36
つまり、
myStr2="アドレスwww.uploader/forlder001/にファイルをアップしてみた。"
に対してどうやって正規表現を使ったら
"www.uploader/forlder001/"
が出てくるのだろうか?
「半角文字列を抜き出すアルゴリズム」
 規定した文字列で連続するもの毎に配列に入れる処理
 IN "つまりYouはこうEたい訳だ、「となりのuploader/forlder001/ってかっこEeeee」"
 OUT You E uploader/forlder001/ Eeeee
「アドレスかどうか判定する処理」
 文字列 like "*.*/*" 程度でいいのかどうか・・
975968 ◆HLRHHB4j46 :03/02/27 20:56
>>974
そんなことより速戦的な使い方のソースをクレよ。
たぶん
Set mySeiki = 正規表現オブジェクト
みたいな感じで宣言すると正規表現が使えると思うんだよね。
>>975 そうか、がんばって探しな
977968 ◆HLRHHB4j46 :03/02/27 21:09
>>976
自分で探した方が早いなんてなんてスレだっ
>>968
「set 正規表現 オブジェクト」でgoogleしたら
すぐにヒットしたけど?
979デフォルトの名無しさん:03/02/27 21:10
>そんなことより速戦的な使い方のソースをクレよ。
あはははははははははははははははははははははははははははははははは。
てめーで検索しろよ、間抜け野郎!

ここで探せ:
http://www.google.co.jp/search?q=vb+regexp&ie=UTF-8&oe=UTF-8&hl=ja&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
980968 ◆HLRHHB4j46 :03/02/27 21:11
>>978
検索結果をこちらに貼り付けたまへーくるしゅうない
981968 ◆HLRHHB4j46 :03/02/27 21:12
>>979
regexp
を見て、そうだ!そんな感じだった!と思い出した。
なかなかドキっとしたぞ。えらいえろい
最悪の質問者だな…
丸投げイクナイ
983デフォルトの名無しさん:03/02/27 21:15
>>968 ◆HLRHHB4j46
思い出したんじゃなくて、今知ったんだろw
984968 ◆HLRHHB4j46 :03/02/27 21:22
>>983
まったく知らなかったんなら正規表現という言葉自体知らないはずだろ。まあ多少の記憶のひっかかりはあった。
無事正規表現使用の見通しもたったところで、この話題はここでピタッと終了〜。
985デフォルトの名無しさん:03/02/27 21:24
性器表現ってなんでしか?
>>985
あー、やっちゃったね。
なんで関数(FUNCTION)と手続き(PROCEDURE)に分けているんでしょうか・・・
988デフォルトの名無しさん:03/02/27 22:27
フォルダの中にあるファイルを更新日時順にソートしてそのファイル名
をテキストファイルに書き出したいのですが、なにかいい方法はありま
すでしょうか?
よろしくおねがいします。
989デフォルトの名無しさん:03/02/27 22:41
6.0のWebBrowserは.netでは何て言うのでしょうか?
>>989
それをなんで6.0の方のスレで聞く?
>>990
どこにも6.0のスレとは書かれていない罠。
ところで次スレは?ないなら立てるけど。
992デフォルトの名無しさん:03/02/27 22:49
>>990
6.0なのココ?
>>988
ファイル一覧を取得し、ファイル名と更新日時を配列に突っ込む。
ユーザー定義型の配列か、二次元配列を使え。

んで、その配列をソートしる。
件数少ないならバブルソートでも充分だろ。


激しく手抜きしたいなら、Sorted = True にしたListBoxを用意して、
List1.AddItem Format(FileDateTime(ファイル名),"yyyymmddhhnnss") & ファイル名
っつー手も無いこともない。
書き出す時はForで回して、
  Print #1, Mid(List1.List(i),15)
とかやる。

…ま、本気で手抜きする時以外は勧めないが。
994990:03/02/27 22:55
や、少なくとも.netよりは近いだろうって事で。



↓次スレよろ。
995デフォルトの名無しさん:03/02/27 22:57
>>989なんですが答えてもらえないのでしょうか?
Dim 1000() As Integer
Set 1000=ALL
1000か?
1000!
999!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。