VBプログラマ質問スレ(6.0以前) Part46
1 :
デフォルトの名無しさん :
2006/02/03(金) 22:58:33 VisuarlStudio
3
おいおい、これから始める人で6使う奴はいないだろ あ、新入社員?ご愁傷様。
これからの新入社員は膨大なVB6(or under)の負の遺産を改悪していく必要があります そのためのスレッド乙>>1!!!!!!!!111
やっぱり.NET以降のが秀逸ってことかい? ちっこいアプリつくる程度なら6のが手軽なきがすっけど。
VB.NEETがもっとロード時間が軽くなれば手ごろなアプリ作る気になるけど、 正直今は趣味にも使えない・・・ というわけで俺はVB6派
>>10 残念C++/Java/.NET系は扱えることは扱える
しかも学生(orz
てっきり.NETアーキテクト全般を馬鹿にする造語かと思った いいな『.NEET』 これからこう呼ぼう
あなたはいつまでVB6を使い続けますか?
VB6が動かなくなるまで。
>>15 つまりVistaがリリースされたらVB6を卒業すると・・・
な、なんだってーーーーーーーー!!!
もうそろそろ.NETに以降しようぜ
.NET『以降』に『移行』しようぜ
もうそろそろ.NETに以上しようぜ
Live2chのスレッド一覧やBecky!2のメール一覧みたいに カラムで区切られてるのってListViewコントロールじゃないのかしら? どうもうまくいかん。
>>16 vistaでvb6のアプリは動くのかい?
cとかjavaも画面がないやつなら書いたことあるけど、
画面があるアプリつくるのにvb6からシフトするならどの言語がお勧め?
田中彰の応援歌を考えた。 行くぞ彰ホームラン!センターオーバーホームラン! 弾丸ライナーだ!飛ばせ!運べ!彰! 俺が考えた歌詞ですよ! 弾丸ライナーだ!の後に「ヘイ!」とか「おい!」って掛け声を入れてスタンドでジャンプするの とかいれると面白いかもしれない。
VB6SP6のDateAdd関数なんだけど Dim a As Date Dim b As Date a = CDate("18:30:00") b = CDate("18:15:00") b = CDate(DateAdd("n", 15, b)) If a = b Then Call MsgBox("OK") Else Call MsgBox("NG") End If 上のを動かすとOKにならないんだけど、うちの環境だけなのかな? OS:WinXPSP2
>>26 VB6はXPでは動作保証されてないよ。
で、日付の比較は DateDiff。
2kでも同じ現象が起こるがdatediff使えばいいだけだな
29 :
26 :2006/02/04(土) 09:18:58
b = CDate("18:30:00") にするとOKになるんで今までDateDiff関数なんか使ったことないです。 DateAdd関数使うとミリ秒の誤差が発生するってことですよね?
この件とは関係ないけど、CDate("18:30:00")じゃなく#18:30:00#にしようぜ。
>>27 それほんと?
>>29 確かに同じ日付(時刻)どうしを引き算すると値があることがあるわけだけど、
そういう引き算に何か意味があるのかといえば、無いのではないかと思われる。
やはり日付操作はそれ専用の関数を使わないといけないということだけなのでしょう。
33 :
32 :2006/02/04(土) 14:08:27
- 演算子のマニュアルに 2 つの日付型の式を含む除算は倍精度浮動小数点数型が返ってくるとある。 日付型が返ってくるわけではないのでおよそ意味不明なことになるけど 不具合でもなくて仕様どおりですね。 因みに、日付型とその他のデータ型を含む除算は日付型を返すと言っている。
34 :
32 :2006/02/04(土) 14:11:40
えー
>>32 と
>>33 につき
全く流れに沿ってない発言でした。
撤回します。orz
>>26 VBの日付型は1分を1/1440の小数であらわすので微妙な誤差が出る。
それからDateAddの日本語版のマニュアルの記述に誤りがある。本当は次のとおり
Returns a Variant of subtype Date.
そなもんで b = CDate(CStr(DateAdd("n", 15, b))) と書けばOKが戻るはず。
ややこしいな
MyDateクラスでも自給してれば
>>36 DateDiff 使えばいいだけの話なので、ややこしくも何ともない。
WinXPのコマンドインタプリタなんだが tabで補完してくれる分には嬉しいけど、複数の候補が有る場合に一番使わないのに確定しちゃうのはちょっとなぁ・・・
内部がDoubleで表現されてるのを知らないと陥りやすい罠だよね
日付の引き算の問題はOSのバージョンや環境とは関係なく最初からある。 上の例だと1.11E-16だけ誤差があるようで、DateDiff使うのがやっぱり無難でしょう。 Date型の内部表現やDoubleとの互換性はマニュアルにも明記してあるんだから、 それを意識して使うなら問題はない。
>>42 いや「無難」じゃなく、それしか方法はなく、それだけが正しいのだが。
44 :
haha :2006/02/04(土) 16:33:36
VB6で画像ファイルをPictureBoxにドラッグして表示させたいのです。 OLEDragDrop イベントを使うらしいのですがなんだかよくわかりません。 まずファイルのパスを取得して、ロードで読み込みをするんでしょうか? でもドロップファイルのパスの取得のやり方もわかりませんし…。 どのようにして実現させるのでしょうか? どなたか教えてください。
>>44 とりあえずOLEDropModeを自動に設定
OLEDragDrop()イベントで引数DataのFilesコレクションの中身を列挙するForEach文を書く
で、ファイルをD&D
かもしれない
46 :
デフォルトの名無しさん :2006/02/04(土) 17:03:16
WinInetを使ってサーバーにデータをPostさせるにどうすればいいでしょうか?
48 :
デフォルトの名無しさん :2006/02/04(土) 17:23:15
Bitbltって画像読込させたら速いの?
>>49 BitBltはDCからDCにビットマップを転写するAPI
画像読み込む云々は全く関係ない・・
Set f1 = fk.GetFolder("c:") For Each bj In f1.Files こうすると、「Function または変数が必要です」となります。どうしてですか?
>>51 PaintPicture()メソッドはVBの内部と癒着しまくって動いているから(描写以外にも何かしてるはず)
基本的に低速
BitBltはその辺GDI直だから結構早い
それでも遅いときはDIB系のAPIつかう
まだ早くしたいときはDirectXか?
あと
>>51 のサイトでScaleMode=vbPixelにしろって書いてないけど、
多分しないとマトモに動かないから
>>52 とりあえず msgbox Typeof(fk.getfolder("c:")) の値を見せなさい。
("c:") ↑これなんてキャラ?
>>55 >>56 ループの中でFolderでした。bjはファイルにならないのかな?
>>59 とりあえずさ、例外を再現できるコード(vbsファイルにコピペすれば大体動くような)を提示してくんない?
なぞなぞやってるわけじゃないんだから
63 :
59 :2006/02/04(土) 18:36:45
コメントにしていたSUBとかEND SUBを除いたら出来るようになりました。ごめんなさい
64 :
26 :2006/02/04(土) 18:45:12
>35>42 納得出来ました、ありがとう。 >37 専用関数使えば良いだけなんだろうけど 文字列の比較もStrComp関数で…とか屁理屈考えちゃいました。
>>64 あと、文字列→日付にCDate()使ってるみたいだけど
あれはWindowsの設定によって解釈変わっちゃう可能性あるから、
DateSerial()+TimeSerial()で作った方が安全だと思うぞ
エクセルVBAの話をしてはだめですか?
>>66 VB6と被ってる関数/クラスならいいんでね?
俺は
>>63 何がどう駄目でどの様に解決したのか全然分からん。
>>67 Sub UHA()
S = "Select qq.* From kimo.txt qq"
c = "ODBC;DSN=Text Files;DefaultDir=C:\www"
With Sheets(2).QueryTables.Add(Connection:=c, Destination:=Range("a1"), Sql:=S)
.Refresh
End With
End Sub
のあと、シート2のソートが正常に動作してくれません
>>51 のサイト見てたんだけど
非表示のPictureBoxに絵を読み込んで他に転写する方法っていかにもVBっぽいよな
(ノ∀`)アチャー
>>70 突っ込むのはビューだからかもなー
よく分からん
orderbyでソートしたら?
>>71 たすかに
CreateCompatibleDC/Bitmap使ってとかは面倒なんだろ
> 突っ込むのはビューだからかもなー 解説をお願いします。突っ込む ビュー のあたりが初耳です
>VBAは、Officeアプリの操作以外ならばこのスレで質問しても大丈夫です。 との事なんで質問させていただきます。 Excel2002 + MySQL VBAからテーブルのバックアップを取ろうと思って以下の処理を書いて 見たんですが、バックアップファイルが出来ません。 Dim shell_str As String Dim ret shell_str = "mysqldump database table1 -u root -phogehoge > D:/Data/SQL/table1.sql" ret = Shell(shell_str, vbMinimizedNoFocus) これをバッチファイル(例えばbkup.bat)にして ret = shell("c:\temp\bkup.bat",vbMinimizedNoFocus) で正常に走る事は確認しているんですけど、出来たらちょこまかしたバッチ ファイルは作らずにVBA上からやりたいと思っています。どういう風にすれば よろしいんでしょうか。
>>75 shell _str = "cmd /c""mysqldump database table1 -u root -phogehoge > D:/Data/SQL/table1.sql"""
>>76 おおお〜!即レス有難うございますm(__)m。
なるほど、そういう風に書くんですね!
実行してみたら出来ました。有難うです。
78 :
デフォルトの名無しさん :2006/02/04(土) 23:21:09
post methodを使うサンプルコード探しています どなたかご親切な方いましたら post methodの使い方をご教授願います。 ブラウザーを介さず直接サーバーに情報を送信したいのです。
80 :
デフォルトの名無しさん :2006/02/04(土) 23:27:20
>>79 レスありがとう
大変参考になりましたといいたいところですが
敷居が高すぎますorz
出来ましたら、易しめなのを希望します。
>>79 オマエ鬼だな...
>>78 ご教授って書かなかったら教えたのにな
ヒント:X○○H○○○R○○○e○○
XMLHTTP(ry
俺ならWinSockから実装するよ telnet o www.google.co.jp 80 POST (ry
84 :
デフォルトの名無しさん :2006/02/04(土) 23:33:25
>>83 WinSockだとSSLがじゃましないか?
85 :
80 :2006/02/04(土) 23:45:11
86 :
83 :2006/02/04(土) 23:48:21
ん? WinSockだと何か弊害が…? とりあえずセキュアなサイトは訪れるのが面倒になるが
87 :
80 :2006/02/05(日) 00:00:12
>>86 いいえそんなことはないと思うのですが
別な掲示板でWinInetのほうが初心者は使いやすいと読んだことがあります。
じゃあそっちの掲示板で聞けよ
89 :
デフォルトの名無しさん :2006/02/05(日) 00:04:40
まったり行こうぜ
初心者はInetコントロールでも画面に貼って使っておけ
>>90 そんなことせんでもUserControlのAsyncReadメソッドで
AsyncReadはmethod指定できなくね?
しかしInetはバグが酷すぎる
AsyncReadって、どうしてユーザーコントロールじゃなきゃいけないんだろ。フォームでええやん。
>>96 おまいは実行環境と開発環境の区別もないのか・・・
>>97 ランタイムじゃないよ。97が間違えてるのでは?
>>101 DBから文字列で格納された日付をひろって、
cdateで日付に変換していたらで一部PCでだけ不具合が出たなーという
苦い経験
>>102 ぁあなるほど・・・そういえば時々掲示板に上がってくるなぁ、そういうの
ハハハ、IHTMLElementRender::DrawToDC()使おうと思ったらVBに怒られたぜ・・・ショボンヌ
す、すんまそん。VB4からのウラシマユーザーです。 VB2005弄ってみました。 で、いきなり躓きました。 コントロール(チェックボックスとか)を配列にするにはどーしたらエエんでしょう? 以前は、コピペで勝手に配列型にしてくれてたんですが。
AsyncRead と Inet で GetChunk するんじゃどっちがはやいですか?
109 :
デフォルトの名無しさん :2006/02/05(日) 11:35:43
IEなどのブラウザーを通さずに サーバから直接、特定のサイトにユーザー名、パスワードを送信して ログインしたいのですが まずはじめに何から取り掛かれば良いでしょうか? エクセルのVBAで解決したいと考えています おねがいします。
112 :
デフォルトの名無しさん :2006/02/05(日) 11:45:39
>>111 40過ぎのおっさんだったらカワイソウだぞw
基礎体力は大事だな、確かに
114 :
デフォルトの名無しさん :2006/02/05(日) 11:49:42
>>109 素人なら
WinInetでも使っとけw
VB6の低脳化はついにここまで進行したのか
>>109 とりあえず何のプロトコルかわからんからそっから調べて来い
117 :
109 :2006/02/05(日) 14:05:05
>>116 素人はWinInetを使えとありますので
本を見ながらユーザーフォームに追加してみました
下記の
name="koza1"
name="koza2"
name="passwd"
にデータを送信したいです。
GETでデータを取得すると文字化けしたので
WEB上のソースを貼り付けました。
https://trade.kabu.livedoor.com/Login/0/imode/login_h ライブドア証券携帯サイト
<!--画面専用のソースの挿入-->
<FORM action="/IMode/00000000/imode/login_e" method="POST">
<P> 部店コード <BR>
<INPUT type="text" name="koza1" maxlength="3" size="3" istyle="4" value="">
<BR>
口座番号 <BR>
<INPUT type="text" name="koza2" maxlength="7" size="6" istyle="4" value="">
<BR>
パスワード <BR>
<INPUT type="PASSWORD" name="passwd" maxlength="10" size="10" istyle="4" value="">
<BR>
<center>
<INPUT TYPE="submit" VALUE="ログイン" accesskey="1">
</center>
</FORM>
118 :
109 :2006/02/05(日) 14:07:09
>>96 未だにMSの「サポートしてます」を信じる奴が居るとは・・・
実際に数々の不具合が出てる訳だが。
まぁ別にやりたいならインストール&開発&配布すればいいよ。
>>107 速さはハードウェアで解決する時代。
>>109 TCP/IPの勉強。
VBってランタイムが要る時点でだめぽだよね
>>120 今の時代、全て突っ込んだアプリケーションはそうそうない
APIもランタイムライブラリの一種 ってことは、マシン語しか認めない方ですか?
拡大解釈してどうすんだろ
俺には別途DL&インスコが嫌いな人間にしか見えないが
>>119 XPで開発しているけど、
試験環境さえちゃんとあれば別に大して問題ない。
>>120 ランタイムと一緒に配布すればいいだけでは?
>>117 レベルが低い間は自動売買ソフトのスレで聞きなさいよ。
もっと言語固有の問題に突き当たってからこっちに質問すればよし。
>>117 MSHTML か XMLHTTPRequest 使えば WinInet よりも簡単に出来んずあんw
>>文字化けしたので
多うにこーでに変換して無いから あるいはその逆
MSHTMLでPOSTってどうやってやるの?
帳票形式のコントロールってどうやってつくるの?
>>MSHTMLでPOSTってどうやってやるの? MSHTMLにポストする機能は無いんで <FORM method="POST">のSENDボタンをclick()でやるとか
MSHTML使ってやる方法 1 IPersistStreamInitインタフェイスとしてMSHTML.HTMLDocumentを見る 2 IPersistStreamInit.Loadメソッドを呼ぶ これでおk
XMLHTTPRequestよりMSHTMLのほうが人気あるってことか
137 :
109 :2006/02/05(日) 19:39:35
138 :
109 :2006/02/05(日) 19:42:11
>>133-134 サーバーに直接データ送信は難しいですね
スクリプト組んでブラウザー経由で送信は簡単でしたが・・・
>>137 具体的な使い方も何も、IPアドレスとポートを指定して、
何らかの決まったデータを送受信するだけ、ですよ。
>>137 かわいそーーーーwww
>>119 の無配慮な発言で本を買わせてどーするwwww
あーいう本って結構 値張るんでしょ??ww
本買うまでもなく、Web ページ探せば知識がゴロゴロ転がってますよwww
と言うか、まず中身確認してから買いましょうよwwww
あと MSDN ちゅうのがあるでしょうにwww
と近所のネコが小一時間
141 :
デフォルトの名無しさん :2006/02/05(日) 21:07:16
VBの軽量化の手段を教えてください
>>141 手当たり次第にファイル削除するか、
不必要なまでの構造化をしてエントロピを上げろ
エントロピーの意味を知らない奴がいるなw
(V)(´Д`)(V) えんとろぴー
145 :
デフォルトの名無しさん :2006/02/05(日) 21:23:16
Functionばっかりしてたらやっぱり遅くなる?
あ、僕が
>>141 で言いたかったのは、実行時の速度の事です=軽量化につながるかなと思って
ほんとちょこっと機能を増やすだけでモッサリするんだから
上らへんでSubしまくれよって書いてあったけど、実際うんこ?
Form_Load時に余計な事させなかったら起動は速くなる?
>>145 実行速度と体感速度は全然違うぞ
実行してUIが"もっさり"するのなら、適当にDoEventsでも入れてメッセージ処理させれ
>>141 「VBの軽量化」の意味が全然分からん。
148 :
137 :2006/02/05(日) 21:52:21
>>140 VBAによるTCP/IPプログラミング入門―HTTP,SMTP,POP3,FTPの基本がわかる TCP・IP基礎シリーズ
価格: ¥2,520 (税込)
http://www.amazon.co.jp/exec/obidos/ASIN/4789818772/249-3841508-3277910 北海道の田舎に住んでいるので、本屋行っても専門書は売っていないんです
アマゾンでそれらしき本を買うしかありませんでしたorz
>>あと MSDN ちゅうのがあるでしょうにwww
MSDNのヘルプで調べましたが、素人なので見ても理解に苦しみます。
なので質問をして少しずつ解決していくしかありません。
>>109 に書いてあることは初心者向けですぐに出来そうな気もしましたが
MSHTML か XMLHTTPRequest でするとしても
参照設定でMicrosoft XMLだけみてもv2.6 v3.0 v5.0 version 2.0とたくさんあり
なにがなにやらさっぱりわからないのが現状です。
>>145 VBのUIモッサリの理由は独自の描画処理にあるらしい
例えば FormにPictureを指定すると勝手に再描画されるでしょ
その辺の得体の知れない描画処理が原因とか
機能を豊富にしてコントロール増やすと 得体の知れない描画処理が増えて重くなるとか
特にVB上でのListViewは最悪だな
150 :
デフォルトの名無しさん :2006/02/05(日) 22:17:13
この重い(想い)伝えたい なんつって^^;
>>148 まぁこれを機にその分野に精通したらどうだろう
>>148 最初は誰でも知識ゼロなんだから、あせらずゆっくり確実に一歩一歩。
俺的WinSock2の良書: WinSock2puroguramingu (改定第二版) ルイス・ナッパー著 ISBN 4-7973-3044-9
puroguramingu て
このタコ普通に変換忘れてるな
158 :
デフォルトの名無しさん :2006/02/06(月) 01:34:05
Inet コントロールで GetChunk メソッドを使いデータを取得しているのですが、 途中、中断したく Cancel メソッドを実行するものの、タスクは回り続けてるようなんですが、 こういった場合、どう対処すればよろしいでしょうか。ご教授のほどどうぞよろしくお願いします。
それを言うなら「ご教示」だろ
161 :
デフォルトの名無しさん :2006/02/06(月) 02:21:33
>>141 紙のユーザーズマニュアルは添付しないでCD−ROMやwebで済ます。
>>141 顧客の要望でVB使うことになったのなら、
なんとかゴネてプログラム作らない方に仕向ける
これ最凶
163 :
デフォルトの名無しさん :2006/02/06(月) 02:27:07
未だにヴィクトリーベーシックなんかやってんだ?
ちなみに猫が800匹でてきます
Wicrosoft Victory Basic 6.0
166 :
デフォルトの名無しさん :2006/02/06(月) 02:31:55
勝利宣言w
>>160 「教授する」という使い方は正しいよ。
辞書引いてみな。
教授と教示どっちでもいいがよ、おまえがルールなのは気に入らねぇ。
まったく逆の意味じゃないか
このスレでは〜は禁止になってます って言う奴が嫌いなだけ。 他に関しては情報が正しくなくても話題として興味無しです。
お前らこそスレ違いだよバーカ
間違いを突っ込まれて逆切れ?格好悪いね
ジエン臭につられてやってきますた。
あの葡萄はすっぱいって事にしておけよ。
ま、質問者は潜在的な回答者を減らさないためにも とりあえず、ご教示にしておけってこった
ところでタブブラウザの人どうなったのよ? あれから報告ないんで気になって仕方ないんだがwww
>>180 奴のいってたことが本当だとしたら、俺も、
UserAgentの変更と、お気に入り順序は気になるな
どうやって実現するのか、ソース晒してくれないかね
放流 void scpy(const char* src,char* dst){ //srcからdstにコピー __asm{ push eax; mov esi,src; mov edi,dst; cld;//DF=0(movsbで+1方向に進む) lbl: cmp [esi],0; je lbl_exit; movsb; jmp lbl; lbl_exit: mov byte ptr [edi],0;//終端の0をコピー pop eax; } return; }
185 :
デフォルトの名無しさん :2006/02/06(月) 17:13:48
VB6(SP5) PostgreSQL8(8.01) VB6とPostgreSQL8をファイルDSNで接続する方法がわかりません 今のコーティングは下記の記述の通りです 「一般エラー:DSN ファイル"が無効です。」となってしまいます ファイルDSN名:PostgreSQL(Unicode) (どちらが良いのか・一般的なのかわからないので) (Unicode/ANSIのどちらも試しましたが両方だめでした) ちゃんとファイル C:\PostgreSQL はあります データベースのtestテーブルのnameの一覧をList1に表示してみようと思ったのですが 接続すらできていない状態で困っています Cn.Open "FILEDSN=C:\PostgreSQL;" Set rs = Cn.Execute("select * from test") Do While Not rs.EOF List1.AddItem rs.Fields("name").Value rs.MoveNext Loop お願い致します
DBはDB板へ
188 :
デフォルトの名無しさん :2006/02/06(月) 18:10:19
VB6を使ってますがString型に250文字以上代入しようとすると250文字で切れてしまいます。 MSDNには 可変長文字列には、約2GB (2^31) までの文字を格納することができます。 固定長文字列には、1 〜 約 2GB (2^31) の文字を格納することができます。 と書かれてますので問題ないと思いますが、可変長、固定長どちらでやっても やはり250文字で切れてしまいます。 いろいろ調べて見ましたがよく分かりません。 ご教示お願いします。
VBプログラムで有名なフリーウェアって何がありますか? どうか何卒ご教授願います。
ありません
192 :
デフォルトの名無しさん :2006/02/06(月) 18:49:11
> 189 ウォッチで値を参照しながらデバッグしてたのですが、もしかしたらウォッチって 250文字までしか見れないんでしょうか。 250文字で切れてると思ってしまいました。 念のためDebug.Printで確認したら問題ありませんでした。 初歩的な質問ですみませんでした。
しかしそれだけ文章練ってタイピングする手間は惜しまないのに 当然の確認作業はやり惜しむって俺には理解できんよ。。 M気質の人なのかなあ
焦りやすいお方なのでしょう
>>188 何の問題もないけど。
Dim Tmp$
Tmp$ = ""
Dim i%
For i% = 0 To 299
Tmp$ = Tmp$ & Chr$((i Mod 26) + Asc("A"))
Next i%
Debug.Print Len(Tmp$), Tmp$
起動時に設定値を読込たいのですが、 この場合、Form_Load プロシージャと Main プロシージャでは どちらが適切と言えるでしょうか?
>>197 シラネ。
そんなのいちいち人に聞かなきゃ二進も三進もいかないなら
PGなんて辞めるこった。
自分のためにも周囲のためにもな。
厳しいwwwwwwwwwwwwwwwwwwwwwwwwww
>>197 それだけの条件ではどちらが適切かは決めかねる。
つーか、「設定値を読込むのにどちらが適してるか」ではなく
ソフトの設計としてどちらを使うか考えるべきだろ。
>>197 Sub Main は自分の意志で書かないとデフォルトでは存在しないが。
202 :
デフォルトの名無しさん :2006/02/06(月) 21:33:13
ListViewコントロールって導入すると重いって聞いたんですけど実際どうなんですか!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>203 こんなこーど
Dim Tmp as string
Dim i as integer
Dim asc_A as integer
asc_A=Asc("A")
For i = 0 To 299
Tmp = Tmp & Chr$((i Mod 26)+asc_A)
Next
Debug.? Len(Tmp), Tmp
205 :
197 :2006/02/06(月) 21:38:23
お返事どうもありがとうございます。 言葉不足でしたが、適切と言うよりかは、 読み込みが速いのはどちらかと聞きたかったのですが、 ・・・読み込みが速いとかいう低次元の発想で質問をしたこと深く反省しています。
>>205 「読み込み」というのはアプリケーションイメージの読み込みか、
その後の設定値の読み込みか・・・
後者だろうなぁ。
後者ならドコに書いても同じだと思われ。
前者なら、Form_Load()はVBから間接的に呼ばれているだろうからちょっと遅い「かも」
数ミリ秒を体感できる人間ならSubMain()でもいいだろうが、そうでなければどっちでも構わない。
個人的にはSubMain()だけど
>>202 死んだじっちゃんはVer6のリストビウには手を出すなって言ってた
208 :
197 :2006/02/06(月) 21:56:38
>>206 ずばり前者も後者もあてはまるような、おみごとです。
さほど大差は無いようですが、
>>206 様が「個人的にはSubMain()」と
おっしゃってるので、わたしもそうさせていただきます。
どうもありがとうございました。
>>202 特に重くない。
>>204 そういう意味か。
突っ込み所は沢山あるが、まぁいっか。
>>205 何処で読み込もうが、読み込み速度は同じだが。
>>197 2005だとmain()が終了するとプロセスが終了するという仕様らしい。
VB6から2005へ移行する可能性があるなら
ちょっと意識してもいいかもしれない。
ひきつづきタブブラウザ、ますます機能充実(*´∀`)
今回は、ブラウザの操作を自動化する機能を実装
アラートや認証ダイアログなどは全部表示前に捕まえて
自分で制御できるので、自動操作しにくいのはFLASHのサイトくらい
実行ファイルもActiveX化して、VBA等との連携も容易になった
ますます進化をつづけるタブブラウザにご期待ください
ところで、エンコードの種類を変える方法がよくわかんないんだけど、どうやんの?
>>182 >UserAgentの変更と、お気に入り順序は気になるな
UA は OnAmbientProperty を VB で実装すれば出来ます
お気に入り順序は、レジストリに並び順がありますが、軽く説明すると
バイナリは {データ長,順番,ITEMIDLIST} という構造体の数珠繋ぎになってます
> ますます進化をつづけるタブブラウザにご期待ください バイナリには全く期待してない。目新しい機能もないし、WebBrowserコントロールだし・・・ (VBでWebBrowser使わずに実装しろと言うわけではなく、VBではWebBrowser使うのが最良の手段なのはわかるけど 最良の手段がWebBrowserコントロールという時点で終わってる) ソースには目下の者が書いた物でも参考になる部分が無いとは限らないから少しは期待してもいいが、 どうせこの手の子はソース出さないだろうな。
>>214 IEコンポってことは言ったけど、一度もWebBrowser「コントロール」だなんて
言ってないんだけど、どこでそういう風に思われたんだろうなぁw
勝手に誤解してVB終わってるって言う前に、自分の頭が終わってることを認識しよう!
なぜ前スレで"WebBrowserコントロール"と言われて否定しなかったのに今になって? あのとき否定しなかったならそう思われても仕方ないと思うが
ソース公開する気がないなら、奴は適当に踊らせて弄る対象でしかないな。
ソース公開されても見る気は全くないけどね。
221 :
182 :2006/02/07(火) 10:19:50
>>212 キタ―――(・∀・)―――!!
完成したらソース見せてください
('A`) 通報するか・・・
シリアル通信プログラムのテストをしているのですが 受信側でReadFileをしたときこのReadFileは すぐに戻ってきます。 しかし送信データが取れません。 送信側で送信してすぐReadFileをすると受信できました。 ReadFileは送信データをバッファから取得されるのではなく リアルタイムに送られたデータを取得することしかできないのでしょうか? というのもデータが送信されてから2秒後くらいにReadFileが 実行されるのでバッファかなにかに溜まってくれないかと思いまして。
それはVBの質問ではなくAPIの質問では?
>>226 お前は('A`)の間違いに気付け。
('A`)じゃない
('A`)だ
('A`) うるせー 殴られたんだよ ばか
233 :
デフォルトの名無しさん :2006/02/07(火) 12:32:38
MediaPlayerコントロール(コンポーネント > Windows Media Player)についてなのですが、 動画の現在の再生位置(先頭から何分何秒)を取得する方法と 任意の位置にジャンプ(シーク)する方法を教えてください。 もしMediaPlayerで出来ないならこれらが出来る Win標準または無料の動画再生コントロールを教えてください。 WindowsXP Pro SP1a、VB6SP6、msdxm.ocxのバージョンは6.4.9.1125です。
>>233 そういう重たいコントロールはあんまり使ったことないんでパス
とりあえずMCISendString()でvideoは再生できるはず
235 :
227 :2006/02/07(火) 12:37:19
なんとなくわかりました。 どうやらWindowsメッセージ処理されるとバッファがクリアされるようです。 クリアされないようにできないでしょうかね〜
>>235 ・・・??
ReadFile()の非同期モードってそんなんなのか・・・
237 :
デフォルトの名無しさん :2006/02/07(火) 12:50:01
違うよな。 まず、CreateFileのオプションとか見直せと。 APIの場合、確かAttributeか何かの設定関数も必要じゃなかったっけ?シリアル通信のボーレート設定で。 その流れの中で設定があったように思うけど。 つうか、なぜVBでAPIでやるの? VBならMSCOMM使えばいいし、それで出来ないでAPI必要ならCで作ればいいのに。
Media Player SDK 6.4のドキュメントには MediaPlayer.CurrentMarker MediaPlayer.GetMarkerTime(lMarkerNum)とある。 けどどうせならDirectShow使う。
>>235 まず、データが数秒で消える可能性はバッファサイズを超えた場合だと思う。
シリアルからの通信をリアルタイムで受けたければ、非同期通信でコールバック側で処理。
だけどそれはVBでは難しいはず。
でね、なんでMSCOMMのOnCommを使わないのかと。
240 :
227 :2006/02/07(火) 13:00:31
MSCOMMを使わない理由ですがVB6.0のアプリをVB.Netに コンバートするのですがVB.NetにはMSCOMMがなく まずVB6.0でAPIに変換してからコンバートすればスムーズに バージョンアップできると思うからでございます。 その既存のアプリはわたくしの作成したものではないので なるべくロジックはそのままにAPIへの置き換えを企てています。
241 :
227 :2006/02/07(火) 13:04:22
242 :
233 :2006/02/07(火) 13:11:20
>>234 情報ありがとうございます。
しかしそれは用途に合わないので失礼ながらこちらでもパスです。
常用するプレイヤーを作るわけではなく特殊な用途でたまに使うだけのものだし
ハードが強いのでMediaPlayerより更に重くても結構ですので
>>233 で書いた通りコントロール(ActiveXコントロール)として使えるものを希望します。
>>238 CurrentMarkerは動画を読み込みシークバーの位置を中央あたりまで移動しても0を返します。
それとMSDNアーカイブのWindows Media Player SDK Version 6.4 コントロール リファレンス
は見たのですが、結構プロパティやメソッドが違ってたりします。
VB6のコンポーネント参照ダイアログの一番下にあったものを使ってるのですが。
ファイルはC:\WINDOWS\System32\msdxm.ocxです。
>>242 > コントロール(ActiveXコントロール)として使えるもの
よくわからん・・MCISendString()を内部で使っているコントロールを作ることも不可?
244 :
227 :2006/02/07(火) 13:30:58
大発見をしました。 タイマーイベントの中でReadFileの前でWriteFileも実行すると 送信データが受信できました。 はて、これの意味するものはなんでしょう?? でも一歩前進です。
ここはお前の日記帳じゃねえんだ
246 :
227 :2006/02/07(火) 13:39:23
いえ、まだ解決したわけではないので引き続けお力添えお願いいたします。
247 :
233 :2006/02/07(火) 13:41:03
>>243 不可です。
>>242 で書いたように常用するプレイヤーではないので、
目的の機能だけを実装出来れば、あとは重くても低機能でもいいから
とにかく手軽に使いたいので、とりあえず既製コントロール限定で探してます。
どうしても無さそうなら、そのときはちゃんと作ることも考えますが。
>>247 ふーん
・・ま、人それぞれだからな。
----------
ふっつーにcurrentpositionじゃだめなの?
よくわからんが、家で動いたのを載せておく Option Explicit 'Windows Media Player 6.4.09? 'MediaPlayer:MediaPlayer1を貼り付ける 'Timer:Timer1を貼り付ける Private Sub Form_Load() Const FilePath As String = "" '<-ここにファイルパスを突っ込む Me.MediaPlayer1.Open FilePath End Sub Private Sub Timer1_Timer() With Me.MediaPlayer1 If .PlayState = mpPlaying Then Debug.Print Format$((.CurrentPosition - .SelectionStart) / (.SelectionEnd - .SelectionStart), "###.###%") End If End With End Sub
>>240 つうか、その根本が間違ってる。
.netはアンマネージドコード(WinAPI)の利用は推奨されてません。
移行の為にVB6側で作り直すぐらいなら、.netに移植した後でそこを作り直せばいいじゃん。
まず、MSの移行ツールの出来に関してなんか情報集めたの?
その上でAPIのほうが良いってどこかに情報あった?
なんか一歩目を大間違いして藪の中突進してるよ、あんた。
で、.netでシリアル通信・・・って.netになってからシリアルなんてやってねーや。w
工場とかの制御機器もソケットでつながっちゃう御時世、シリアル通信ってあまりつかわんよね・・。
知らないなら黙ってろ
>>250 新規はつかわんが、保守せにゃならん
プログラムは変えられてもハード変えるのはなぁ
>>244 大発見て。
もしかして、普段からそんな風に開発してるの?
まさか仕事でやってる訳じゃないよね。
>>247 やりたい事とやる方法がごちゃごちゃになってるな。
>>252 意味不明ですよ。なんでハード変えるの?
VB6でMSCOMMのプログラムが現状として、
それをAPIに変えてから.net化するのと、
.net化してからその部分を.net流儀で書き換える。
やることは変わらんし、どっちが安定するかは自明。
頭固いんじゃないの?
256 :
233 :2006/02/07(火) 14:54:19
257 :
227 :2006/02/07(火) 14:59:49
>>253 すみません。仕事でやってますw
いつもあたってくだけろで砕けてますw
>>254 意外と移行ツール使えますよ。VB6側を先に移行ツールの
わかりやすいように修正してやると。
移行ツールのご機嫌とってコード書き直して移植するなら、作り直したほうが早いし安定するし・・・。 あんなコメントアウトでごめんなさいだらけの移行ツールを使う奴の気がしれん。 で、どこにAPI化してから移植しろってあるんだよ。 .net2.0しか入ってないからあれだけど。 System.IO.Portsの下にシリアルあるから、それで作り直す方を勧める。 あんた程度で知らないAPIで通信通したと思ってる程度のプログラムよりは、ましな移植になるんじゃないの?
261 :
227 :2006/02/07(火) 15:14:06
>>258 すみません。馬鹿にされていたんですね(´Д⊂グスン
ところでWriteFileを入れるとなぜReadFileが
うまくいくのかわかる方いませんか〜
かわりにClearCommErrorとかいれてみたけどダメですね
API使うなら、ヘルプの該当関数とその関連情報を死ぬほど読んでからにしろよ。 それで理解できないなら、勉強不足か能力不足、100年早いってこと。あきらめろ。
263 :
227 :2006/02/07(火) 15:16:10
>>260 .net 2003なのです。system.io.portsは無いのです(´Д⊂グスン
>>257 そんな仕事のやり方をどうして上司が許してるの?まじで信じられないんだが。
メソッドや関数や引数やAPI等の意味や役割や動きや働きに関して一切理解しようともせず、
「適当に思い付きでReadFileの前でWriteFile」で受信出来ました万歳?ふざけるなよお前。
「これの意味するものは何?」「一歩前進」だ?あぁ?
てめぇの様な阿呆が居るから、プログラマの地位が何時迄経っても向上しねぇんだよ糞が。
二度とプログラム書くな。すぐ転職しろ。貴様には徹底的に向いてない。死ね。
>>264 いや、多分どんなことしても仕事上のプログラマの地位は変わらないとおもう
よくて頭の回る土方だよ
所詮ソフトなんてそんなもんなのさ (´;ω;`)
日本人らしい職人気質な人って減ったよねぇ 自分の仕事にプライドもってほしいよ 地位だの金だの忙しさだのは別問題
>>265 きちんとした仕事をしてから、そのせりふをほざけ。
268 :
227 :2006/02/07(火) 16:47:45
今までWriteFileしなかったらReadFileの戻り値が0だったのですが dim rData as String * 100 dim rLen as long dim dLen as long dLen = 100 dummy = ReadFile(hComm, ByVal rData, dLen, rLen, 0) としたところWriteFileしなくてもReadFileの戻り値が1になりました。 そしてデータを受信するとVBごと落ちてしまいました。 また一歩前進しましたワーイヽ(゚∀゚)メ(゚∀゚)メ(゚∀゚)ノワーイ
いい加減日記かくのはチラシの裏にしろ。 他人の警告も聞けないなら、ここじゃ有効な回答得られないってことでどっかいけ。
>>269 頭のおかしい人を相手にしてはいけません。相手の思うつぼです。
それともジサクジエンですか?
>>268 どんどん後退してる様にしか見えないが。
再帰を利用してフォルダの最深部にフォルダを作ろうとしたけど、一つ手前のフォルダに出来てしまう これって当たり前?最深フォルダの名前を取得してんだけど、そこで作ると一つ手前に出来てんだよな
メニューについて質問させていただきます。 例えば、"最近使ったファイル"というメニューがあります。 MSDNを見るとコントロール配列を使うみたいなんですが、 記載されていた方法が、まずメニューエディタで一つずつ作成し、非表示にし、インデックス値を設定するとの事です。 この場合、こういった方法しか無いのでしょうか。 実行時にメニューを生成できないものでしょうか。 皆様のお知恵を拝借させてください。
>>273 プログラムは、糸色文寸に書いた通りにしか動きません。
もしそうなるならば、そうなるコードを貴方が書いている、って事。
現象が再現する最小限のVBを起動して貼り付けるだけですぐ実行出来るコードを示せと何度(ry
277 :
227 :2006/02/07(火) 18:21:14
みなさま、ついにWriteFileをしなくても受信できました。 dim ret as long dim er as long dim gcom as COMSTAT ret = ClearCommError(hComm, er, gcom) if gcom.fDsrHold > 0 then dim rdata as string dim dlen as long dim rlen as long dlen = gcom.fSdrHold rdata = space(dlen) dummy = ReadFile(hComm, byval rdata, dlen, rlen , 0) end if 問題はfDsrHoldが何者かということですが・・・・
279 :
273 :2006/02/07(火) 18:25:53
>>275 ごめん
Sub kn(ByVal oFo As Object)
For Each oF In oFo.SubFolders
Call kn(oF)
o1 = oF & "001"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateFolder(o1)
Set f = Nothing:Set fs = Nothing
Cells(ic, 1) = oF.Path: ic = ic + 1
Next oF
280 :
227 :2006/02/07(火) 18:39:17
すみません。COMSTATの定義が間違ってました。 ネットから拾ってきたものではなく APIビュアーからコピーしたらcbInQueがfSdrHoldの値でした。 これなら意味もばっちりあっています。 では嫌われもののわたしめはこれにて失礼いたします。
っていうか.NETでもCOMコントロールは普通に使えるよ。 もちろんMSCommもね。
>>283 ActiveXをラップしてもらって使うのはいまいちだよ。
まあ、屑な彼にはお似合いだと思うけどね。
こねくり回した挙句に作り直しになるに一票。
>>284 イマイチってどの辺が?
実際使ってから物いってるかなw
>>284 っつーか、まともに動作するブツは作れないと思う。
>>212 OnAmbientPropertyをVBで実装って具体的にどうやるんだろうか。。。
誰か分かる人いたらおせーてくれ
>>285 ラップするクラス作ってる時点で性能面で難が出る。
.netなのに、ActiveXのインストールが必要な時点でメリットがほとんどすっ飛ぶ。
性能より機能重視
機能より保守性重視
>>288 よくわからんデメリットだなw
体裁を気にするガキが自作のソフト配るわけでもあるまいし。
あのねえ、プロパティやメソッドに一回アクセスするのにnSオーダーの
オーバーヘッドが出るのがそんなに性能面で問題あるのかいw
292 :
227 :2006/02/07(火) 22:50:23
.net移行完了しますた! っていってocx使ってたらぬっころされますw
>>291 .netで代替できる手段があるのに、わざわざレガシー使うほうがおかしい。
それに、体裁じゃないよ。
構造をシンプルにすることも、後のメンテナンス性には重要。
あんたは何時までActiveXを引っ張るんだい?
それに、MSCOMMって.netにはついてないよね。
もしそれ込みで開発・再配布するなら、VB6などMSXOMMが付いている開発環境も必要。
>>293 再配布可能
というか.NETでMSCOMMと同等の処理をするにはどのクラスを使えばいいんですか?
>>294 2005なら今日の流れの中で出てる。
2003ならぐぐれば出てくる。
>>293 スレの文脈を無視するわけ?
>>227 の彼の話をしているわけね。
227はVB6持ってないってかw
ついでにCOMは現役だし、.netにMSCommの代替手段などないよ。
Win32とか文脈無視した寝ぼけたこと言わないでくれよ。
2005なんて全然使われてないじゃん
それこそCOM以前の問題だよ
何考えてるの
>>295 ?
>>298 普通に仕事で使うけど。次の開発2005だし。
あんたがいまだにVB6とかActiveXに固執してるロートルなだけ。
いまだにサポートが切れるVB6使うほうがよっぽど怖いわ。 .netは普通に安定してるし。 VBって言語限定があるなら、どっちのリスクも大差ねーよ。 単に自分が着いていけないだけなのに、もっともらしく理屈つけてるんじゃないの?w
302 :
227 :2006/02/07(火) 23:16:49
みなさまはお客様から.net移行の依頼を受けて VB6.0のocxをそのまま利用するのでしょうか? 例えばソースも納品するとしたらどうしますか? 開発環境にはVB6.0も入れてくださいね!とか言うのでしょうか・・・
>>301 いや.net2003は使ってる
しかし.net2005なんてまだまだ怖いとおもってるんだが・・
System.IO.File.Createだったか?のバグどーなってる?
それをVB質問スレで書いてるチミは何なのさw 馬鹿じゃないの。
>>301 新しいのを使うより枯れた方を使うのが普通
>>302 仕事の仕方は上司に聞け。
お客様からの依頼というか、仕様、用件はお客様に聞け。
なんつうか、典型的な出来ない奴だな。
近くにいたら絶対ぶっ飛ばしてる。
仕事請けてから聞くことか?
ソースはどうする、移植時にOCXの使用有無なんて、そんなの要求定義、用件定義の段階だろ?
>>302 ちゃんと参照設定してやってれば
デプロイメントプロジェクト(早い話がインストーラ)で
普通にCOMをちゃんとインストールしてくれるようなインストーラが作れるよ。
つまりVB6までと何もかわらん。
.NETは終わってる
311 :
227 :2006/02/07(火) 23:22:56
>>307 あなたならどう提案しますか?
ocxを使うのですか?私なら使わないということです。
>>311 客に導入先に対して何をインストールしてよいのかとか、条件を聞くのが普通。
あんた、いい加減うせろ。すれ違いだし、散々喚き散らすだけだし。
客にCOMとかActiveXとかいってわかるのかw いや、そりゃ俺の世界が下衆なだけかもしれんけどね。
それを分かる言葉で説明するのも仕事。 そんなこと出来ないとか考えが及ばないから、 あなたの周りがそういう世界になってるんじゃないのか? 客は教育するもの。
>>313 ところでSystem.IO.File.Createのバグって何?
自分がバグってただけだったりしてなw
別にCOM登録したからって害があるわけでもなし、 説明責任があるとは思えんが。。
>>317 なんとなくDLLHellが・・・
かといって過去と完全に決別できたわけじゃないし
.NETの出現で現状はより混沌になったと言うべきか・・?
DLL Hell 十分実害じゃん。
今度はCOMじゃなくてDLLになったぞw
>>320 あんた勉強不足。
じゃあCOMって何?
誤解があるようだけどCOMはDLL Hell関係ないよ。 すくなくとも回避するメカニズムをちゃんと持ってる。
(´Д`;)・・・(コイツ・・)
>>321 COMじゃないDLLもあるって知ってますか?w
>>322 あのバージョン管理がちゃんとしてると。
なるほど。良く分かった。
ちゃんとしてるだろ。 互換性が無いCOMにはまったく違う GUIDが割り当てられるんだし。
>>324 逆なら反論になってるけど、それじゃ反論になってないよ。
DLLじゃないCOMもあるってしってます?ってなら反論だけど。
COMじゃないDLLがあってもだから何?って。
>>322 メカニズムを持っていても、一般に使えないメカニズムは持っているとはいえない罠。
そんなに回避できるならば、誰も苦労はしてないわけで。
それを言ったら、COMではない DLLにもあてはまるんだけどな。 ついでに、Linux系なんかの.soなどにも当てはまる。
なぁ、DLL HellはCOMだから発生するわけじゃないのわかってるか? 普通のDLLでもWindows以外でも発生する問題なんだが。 なんにでも発生する問題を出して、 ほらCOMは危険といわれてもなぁ。
とりあえずGUIDがどーのとか言う前に、 「全部一枚岩の上に乗っかっている以上、こんがらかってくるのは必至なわけで」 みんなが整然と領域まもってくれればなんてことはなかったんだろうがなぁ・・・
>>382 そもそも君Dll Hellの意味わかってないんじゃないの?
COMの作者が余程トンマじゃないかぎり、COMでDll Hellなんてないよ。
>>332 だとしたら、MSの製作者ってとんまばっかりですね。
何を揉めてるんだ?
そんな話はもういいから
>>287 の質問に誰か答えてくれぇぇー
やっべ、スレが凍ったw 答えられる人がいない予感!!orz
>>276 ありがとうございます。
APIとLoadステートメントを組み合わせてメニューオブジェクトを動的に生成できるという事ですか?
もしよければ何のAPIを使用すればよろしいか教えていただけないでしょうか。
>>340 いやLoad関数だけで十分だとおもうぞ?
>>339 ありがとん
でも肝心の答えが載ってない・・・('A`)
>>342 答を載せてしまっては、貴方の成長の妨げになるから・・・
>>344 ぶっちゃけ、答えられる奴はこのスレに居ないだろ
素直に分からないって言えばいいんだよ
さも知ってるかのように気を持たせるのはどうかと思うぞ
まあ俺も分かんないけどねww
アンカーが339で切れてるから、元の質問が分からん。
excelのvbaでとあるHPのHTMLを取得する方法はどんなものがありますか? 又それぞれのメリット・デメリットも知りたいです。
>>347 とりあえず一番簡単なCOM使って取得する方法を覚えろ。話はそれからだ。
何も解ってない初心者に表面的なことだけ詰め込んでも仕方ないからな。
Winsock APIでバイナリデータを受信する引数の渡し方がわかりません。 送信側も間違っている?かもしれません。 ご教授願います。 以下、試したものです。 Public Declare Function recv Lib "wsock32.dll" (ByVal s As Long, ByVal buf As Any, ByVal lngLen As Long, ByVal flags As Long) As Long Public Declare Function send Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal lngLenlen As Long, ByVal flags As Long) As Long Dim bytData(100) bytData(0)=1 略 lngRet = send(lngSock, bytData(), 100, 0) 受信側 Dim bytRec(100) as byte lngRet = recv(mlngSock, bytRec(0), 100, 0) Any型の部分が問題だとは思いますが・・・。
bufferwritecount = send(lngSock,bytData(lbound(bytData)), ubound(bytdata)-lbound(bytdata), 0) みたいな。 もちろんByte()をStreamの様に扱えるクラスはあるんだろうな? 無いと苦しいぞ
>>350 > bufferwritecount = send(lngSock,bytData(lbound(bytData)), ubound(bytdata)-lbound(bytdata), 0)
こっちだな
bufferwritecount = send(lngSock,bytData(lbound(bytData)), ubound(bytdata)-lbound(bytdata) + 1, 0)
Byte-StreamというかStringって、API使うなら普通にStrConvでやってるソースがごろごろしてるべ。
lngRet = send(lngSock, ByVal bytData(0), 100, 0) lngRet = recv(mlngSock, ByVal bytRec(0), 100, 0) じゃね?
>>352 (どんなソケット使ってるか分からんけど)
TCPっぽいならByte()のストリームが帰ってくるからさ、
Byte()を自由に繋げたり、任意の長さだけ切り取れるようなものを作っておくといいよってこと。
String関係ない。
>>353 イジメ発覚
355 :
349 :2006/02/08(水) 15:34:32
配列の添え字がいい加減になってしまいましたが・・ lngRet = recv(mlngSock, bytRec(0), 100, 0) このbytRec(0)の変数の型が一致しません。
宣言間違ってる? > Public Declare Function recv Lib "wsock32.dll" (ByVal s As Long, ByVal buf As Any, ByVal lngLen As Long, ByVal flags As Long) As Long Public Declare Function recv Lib "wsock32.dll" (ByVal s As Long, BYREF buf As Any, ByVal lngLen As Long, ByVal flags As Long) As Long
俺が昔使った宣言: Public Declare Function recv Lib "ws2_32.dll" (ByVal s As Long, ByRef buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long Public Declare Function send Lib "ws2_32.dll" (ByVal s As Long, ByRef buf As Any, ByVal buflen As Long, ByVal flags As Long) As Long
358 :
349 :2006/02/08(水) 18:05:43
宣言が間違ってました。 どおりで配列を受け付けないわけですね。 ありがとうございました。
359 :
デフォルトの名無しさん :2006/02/08(水) 18:27:35
次のソースで不具合が発生します。 デバックしたところlngA、lngB、lngCには0&以外の値が入っているのですが、 IF文の条件式がFalseを返す場合が多々あります。 strVal="ABCを含む文字列" lngA = InStr(strVal, "A") lngB = InStr(strVal, "B") lngC = InStr(strVal, "C") If _ lngA And _ lngB And _ lngC Then End If IF文を入れ子にしたり、lngA <> 0&と条件を明示することでTrueを返すようにはなるのですが、 上記コードの場合なぜFalseを返すことがあるのか分かる方みえませんか?
>>359 And:
論理演算-論理積
ビットごとの演算-ビットごとの論理積
例)
dim a as long,b as long,c as long
a=1:b=2:c=4
debug.? a and b and c
debug.? cbool(a) and cbool(b) and cbool(c)
361 :
デフォルトの名無しさん :2006/02/08(水) 18:58:53
javascriptにあるような連想配列ってVBにはありませんか? あれば使い方を教えてください。お願いします。
>>361 collectionオブジェクト
dim c as collection
set c=new collection
c.add 10,"a"
debug.? c("a")
>>360 ありがとうございます。
コードを簡潔にしたいがあまりに基本的なことを忘れていました。
364 :
273 :2006/02/08(水) 19:51:28
>279ではやはりできないのかな。最深のフォルダを取得してるっぽいんだけどな
>>364 じゃなくて、VB起動して貼り付けただけではこれっぱかしも動作しないからでは。
変数宣言もないし、End Sub もないし、呼び出すコードもないし Cells とか謎のオブジェクトもあるし。
全部直して動く様にして検証する気になる人なんて皆無。
テキストボックスに OLE Drag,Drop Mode を設定すると 選択文字列の上にマウスカーソルをあわせても I ビームが表示されません。 よってコンテキストメニューも開けないわけなんですが、解決策はありませんでしょうか?
>>366 手動でDrag()を呼び出す・・・じゃないかぁ
>>346 >>278 >>366 >テキストボックスに OLE Drag,Drop Mode を設定すると
原因をはっきり特定しろよ、OLEDragModeを自動にしたときだけだろ
選択文字列の上で I ビームにならないのは、Dragするんだからあたりまえだ
コンテキストメニューがまったく出ないのは、文字をすべて選択したときだけだ(こっちの仕様は意味不明だけどなw)
挙動が気に入らなければ、OLEDragModeを手動にして自分でやれ
>>368 素晴らしい!正解です!
そうなんです、自動です、しかし選択文字列の上で I ビームにならないんじゃくて、選択しなくてもならないんです
挙動が気に入らないですけど、現状のままで行きます、癖をつければなんてこと無いでしょう。
だって僕しか使わないソフトですからね!しかし未だにソフトを公開したことナインですけど公開すると後悔しますか?
>>369 >しかし選択文字列の上で I ビームにならないんじゃくて、選択しなくてもならないんです
それはテキストを全選択したときだけだ、3文字入力して1文字だけ選択して確かめてみろ
まあOLEDragの自動は、コンテキストメニューも含めておかしいと思うがね
ついでに言うと、テキストの後ろから数文字を選択してドラッグを開始、
Escを押してキャンセルすると、なぜかキャレットが先頭に移動する
ぶっちゃけ自動は使えないと思ったほうがいいだろうな
>しかし未だにソフトを公開したことナインですけど公開すると後悔しますか?
ここで公開するとボコボコに叩かれて、たぶん後悔する
Vectorで公開すれば、とりあえずDL数見て自己満足に浸れる
好きにしなさいw
>だって僕しか使わないソフトですからね! だったら公開する必要無くね?
そうですそうです、一桁分のテキストボックスなんですけど、それが横一杯パンパンになるとどこに置いても通常のマウスカーソルのままでして、 そしてあろう事かその状態なら選択しなくてもそのままドラッグできるんです、そして別のテキストボックスにドロップすると全文移動するんです、不思議ですよね! 手動にしてみようと思ってコードを書いていたんですが、途中で挫折してしましてね、もう自動でいいです。 ここで公開するとボコボコにされるんですか、恐いですね。 たぶんにボコボコにされる対象はソースコードでしょうね、だけど実行ファイルのみで公開しても誰も触ってくれないでしょうし、ハハハ。
ソーっすね
xmlDoc.async="false" ってどういう意味ですか?
>>376 class hoge{
public string async;
}
で
hoge xmlDoc=new hoge();
xmlDoc.async="false";
でもしたのかしら?
>>369 公開と後悔を掛けたなっ!
>>376 async に "false" を設定した。
って、xmlDoc.async = False の様な気もするが。
しまった 最近javaとC++とVB6といろいろ渡り歩いてるもんだから混ざっちまったぜ・・
xmlDoc.async = False でした。ごめんなさい。 これってどういう意味ですか?
>>380 378に答えも書いてあるじゃん。
asyncをFalseにするとどうなるかは、
これだけの情報では何とも言えないけど。
>>380 xmlDocのメンバasyncにFalse値を設定したっていう意味
xmlDoc.Loadの前にあるんですけど 無いとだめなんでしょうか?
ネタくさいので放置決定 ネタじゃないとしたら勉強不足
>>383 名前に惑わされすぎるのはよくないから、
>>377 とか
>>378 は xmlDoc というモノを不明なものとして扱って書いてるわけ。
特に、
>>377 は xmlDoc が hoge というクラスのインスタンスで async というメンバを持つという具体例を挙げているだろ?
こんな風にもとのクラスが何なのか、具体的に書いてくれないとさっぱりなわけ。
ちょっと説明下手すぎるんじゃない?
今さらそんらレスされてもw
389 :
デフォルトの名無しさん :2006/02/09(木) 12:33:09
Windows Picture and FAX Viewer をコントロールしたいのですが、 Preview 1.0 Type Library(shimgvw.dll)を使ってできませんか。 メソッドの使い方はある程度予測つきますが、Previewクラスへ オブジェクトを得る方法が分かりません。 破損したファイルを読み込むと次の画像に進むボタンの位置が動いて うまく制御できないので困ってます。
msflexgridでお聞きしたいのですが、 今までDAoで構築していて発行したSQlを以下のようにgridに挿入していたのですが msflexgrid1.AddItem レコードセット(取り出した列1).Value msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = レコードセット(取り出した列2).Value ADOで構築すると列の値が取り出せなくなってしまします。 ADOでこういった風に書くにはどうすればよいでしょうか?
msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = rs.fields("col2").value
>>391 ありがとうございます。実行してみましたが
「要求された名前、又は序数に対応するコレクションが見つかりません」とでてしまいました。
msflexgrid1.TextMatrix(msflexgrid1.Rows - 1, 1) = rs.item("col2")
ありがとうございます!できました! 本当にありがとうございます。
>>392 まさか col2 って書いてないよね。
1元の配列に対しn番目を処理する 関数を作り使っています。(平均、標準偏差等) Function Ave(a(),n,Kikan) 2元配列A(i,j)に使おうとしたら Ave(A( ,1),n,Kikan) 動きませんでした。2元配列を行列とすると1行(1列)だけもってくるような 表現の仕方はあるのでしょうか?
>>397 無い
そういう場合は自力で(自分の欲しい機能を提供する)行列を扱えるMatrixクラスを作るしかねーと思う
ひきつづきタブブラウザ、ますます機能充実(*´∀`) 今回は、ページの内容を正規表現で置換する機能を追加した それと、ユーザーが作成したJavaScriptをページ表示時に自動実行できるようになった これによって、ページ内容を事前に書き変えたり、入力ボックスに文字を入れたり 工夫次第では、バナー広告の排除や、リンクされていないURLの自動リンクなどが可能だ これらの機能は、実行するサイトを限定することも可能! ますます進化をつづけるタブブラウザにご期待ください さて、そろそろ実装したい機能がなくなってきたんでバグ叩きに入るかなっと♪ ところで、エンコードの種類を変える方法がよくわかんないんだけど、どうやんの? 難し過ぎて分かる人いないっぽ?
>>399 そこまで実装していてそれはないだろうという程度の質問
adodb.stream?
>>399 バグ叩きて。
途中はバグなんか全然気にせずどんどん開発してるのか?
なる。
405 :
デフォルトの名無しさん :2006/02/09(木) 20:56:29
CreateObject("Excel.Application") みたいに、ExcelとApplicationというのはレジストリに記録されていると思いますが、 どこを見ればいいですか。
DDE接続はどのようにしますか?
DDEは終わった仕様なのでできるだけ他の技術を使う事
文字列を格納した変数を大量に置換する場合 やはり一つずつ、一行ずつコードを書いていくしか無いのでしょうか? 今現在やっている方法です↓ strMISO = Replace(strMISO, "ほげほげ", "ホゲホゲ") strMISO = Replace(strMISO, "もぎもぎ", "mogimogi") strMISO = Replace(strMISO, "まんまん", "満々")
>>409 他にもやり方はあるだろうけど、面倒ならそれでいいんでね
>>411 テキストに書き出して、単機能の外部フィルタアプリとかにやらせては。
まぁ、正規表現クラスでも使えば一発でできないこともないかもしれないが…(できるか・・??) ごり押しするなら、単語をinstr()で地道に検索&自力で置換、だな。 文字列連結は文字列大きくなるほど遅いから、そのへんの高速化も自力でせにゃならん。 1行1行replace()書くのがいやなら、foreachなりで反復操作にすればいいじゃまいか ( ´Д`)
VBで文字列置換を自力実装すると使えないくらい遅いからな 結局Replaceの重ねがけが一番速かったりナ。。。
>>416 (VB6)ちなみに家でStringBuilderなるクラスを作って試してみました
Private Sub Form_Load()
Dim sb As New StringBuilder
Dim i As Long
Dim s As Single
Dim t As String
s = Timer
For i = 1 To 20000: sb.AddString "hello!": Next
Debug.Print Timer - s
s = Timer
t = ""
For i = 1 To 20000: t = t & "hello!": Next
Debug.Print Timer - s
End Sub
結果
4.711914E-02
1.437012
ただの文字列連結は非線形的に所要時間が増加するっぽい
sb.AddStringは内部でMidステートメントによる置換をしています
>>Midステートメント Midはメモリ上書きだから速いんだけど 異なる文字数で置き換えられないよね 例えば "まんまん" を "満々" に置き換えるとか 結局Replace見たいな機能を要求すると &結合か Byte配列のRedim・メモリ移動 でゴリゴリ Byte配列でやると &結合に比べて 10〜50倍の差が出るんだっけ?
>>418 いや
1 "まんまん"をInstrで検索
2 直前までMidステートメントで置換代入
3 "満々"を置換代入
4 1へ
置換代入先の文字列を、あらかじめ10KBとか多めにとっておけばメモリ移動がそれほど起こらないので速いかも
(少なくとも&で連結していくよりは)
> Byte配列でやると &結合に比べて 10〜50倍の差が出るんだっけ?
時間差は先ほど書いたとおり非線形
Midステートメントで最終的に必要なサイズを全て最初に確保しているとすれば、置換代入の時間は線形に済むはず
というわけで比率はかなり変動するかと
満々w
ごみん Redim = ReDim Preserve ・ メモリ移動 = Kernel32.CopyMemory の事だよ 伝わらなかったカナ? 文字列(Unicode)をバイナリデータとして配列上をポインタ操作する っ言いたかったんだ
>>421 あー、まぁそういう方法もあるが…
VB6側でString→Byte()してからいろいろゴリゴリすることになるんじゃないか?
文字列連結よりは高速だろうけど、それだとオーバーヘッドかかっちまうよな。
で、Stringの内部処理だったらMidB()とか*B()系が最速だったよーな気がする
>>399 しかし、開発はえーなぁ
タブの部分って何のコントロールで作ってるの?
>>399 いい加減 バイナリでもソースでも晒せ
晒す気が無いんなら消えろ ここはお前の日記帳じゃな(ry
いや、話聞いてる限りバイナリは(゚听)イラネ
どーせなら「ソース&実行ファイル」を完全にさらして、 オープンソースにしてみんなで開発するかw
メモリ確保処理が1回で済む
>>419 に1票入れたいんだが
>>421 の処理が激しく気になる。
配列上のポインタ操作ってリストの連結みたいなの?
C言語ならやりようもあるけど、VBってStringとかByte配列の中身に対してポインタ指せたっけ?
> VBってStringとかByte配列の中身に対してポインタ指せたっけ? VB5からだっったかな 詳しいことは自分で調べな
あー勘違いしてたかも。
VarPtrとCopyMemory駆使するってことかな?
これだとMidと変わらんような気がする(ていうか
>>422 の指摘の通りか)
スレ汚しすまん。
まぁ結局後々の色々な事を考えると Replace が一番だな。
とりあえず言語はおいといて、処理の内容から考えると、 元の文字列のメモリを走査しながら、 新しく確保したメモリに文字列を置換しながらコピーするのが一番速いか?
433 :
デフォルトの名無しさん :2006/02/10(金) 10:18:45
VB6.0のADOを利用してMySQL4.1にあるデータベースに 接続したんですけど出来ないです。 どうしたらいいんですか? Dim cn As Variant Dim sql As String '** ODBC 接続 Set cn = CreateObject("ADODB.Connection") cn.Open "dsn=MySQL;uid=ユーザー名;pwd=パスワード" cn.CursorLocation = 3 これではだめでした。
VB6.0でAPI叩いてシリアル通信してるプログラムがあるんだけど これがWin2000では動くけどWinXPだと通信できないんです WriteFileとReadFileが0を返してきます なんかWinXPで変わった?
>>436 VB6は、開発環境も実行環境も、XPには対応してないよ。
色々と、訳の分からん所で不具合が出る。
当然、回避不可能。
438 :
227 :2006/02/10(金) 21:00:00
> 開発環境も実行環境も、XPには対応してないよ。 片方ハズレ
> 訳の分からん > 回避不可能 > 回避不可能 > 回避不可能 > 回避不可能 > 回避不可能 > 訳の分からん ( ・ω・) 他意はないです
ヘッダを取得するただそれだけのソフトなんですが、 いい名前が思いつきません、もしよければ一緒に考えてくれませんか。
>>441 getheader/headergetter/huntheader/huntYOURhead
>>442 どうもありがとう、ただありきたりなんです
もうちょっとユニークーなのお願いしまする
>>443 > もうちょっとユニークー
これでいけ「ユニークー」
>>441 ヘッドハンター西脇.exe
てか、VB6ってXPダメなんか!
うひょーどうすっかな
orz
>>447 俺XPで開発してWin95で動かしてる
近ごろマニフェストを覚えて浮かれている初心者です
>>447 >ヘッドハンター西脇
いいですねそれ
ありがとうそれに決めた!
XPで普通に開発しているが、なにか不具合あったか?
>>448 まさか、XPでセットアップしたやつで95にインストールしてる?
453 :
デフォルトの名無しさん :2006/02/11(土) 00:55:52
VB6で下記のような今の時間が9時5分すぎかどうかの比較を行うにはどうしたらよいですか? Time >= "09:05:00"
>>453 datediff使え
>>452 そんな地獄は見たくないから
システムに依存するものは持っていかないようにしてるぞ
455 :
デフォルトの名無しさん :2006/02/11(土) 03:23:53
C言語でいう #define みたいなのって何でしたっけ? ちなみBVAです。
457 :
455 :2006/02/11(土) 03:30:05
> ちなみBVAです。 新しい言語? 俺はVB関係ではVB、VBA、VBSしか知らない VB関係ではなくBasic関係ならもっと知ってるがな
つまんねえレスだな
昔々の事じゃった・・・ 朝出社すると、係長の先輩と後輩2人の合計3人が、一台のPCの前で悩んでいました。 それとなく見ていると、どうやら、ひたすら同じ作業を繰り返し、エラーが出て、 「分からん。どうしてだ?おかしい・・・。出来る筈なのに!」と言い続けている模様。 その日一日普通に仕事をし、残業する程でもなかったので定時で帰ろうとしたら、その3人は、 まだ同じ事をやっているみたい。 流石に可哀想になって「どうしたんですか?」 「いやこのVBXを読み込もうとしてるんだけど、エラーが出るんだよ・・・」 「(VBX?今頃何故?)へぇ〜」と、見てみると・・・ VB6でVBXを使おうとしていました。(VB5だったかな?) 私は「ホントだ。エラーになりますね。では、お先に失礼します」と帰りました。 きっと、残業して徹夜したかも・・・
早朝から速攻で反応してる子の方がつまらない気がする
XPは言葉を濁してるが次のOSから完全にサポート外だったよな 新規は.Netにしてるよ
ご注意:この一覧は全て開発ツール自体の動作に関する情報であり、 以下の開発ツールを使用してお客様が開発されたアプリケーションの 対応に関するものではありません。これらの開発ツールを使用して 開発されたアプリケーションは、全てお客様の責任において 必要な環境下でテストしていただく必要があります。 お客様の開発されたアプリケーションの動作に関して、 弊社では 一 切 の 保 証 は い た し ま せ ん ので、あらかじめご了承ください。 何度繰り返すんだこの話題は
人のつくったものは知らないよ という極めて当然の話をしているのでしょ。 そもそも延長保守契約していない人にとっては 2000で開発してようが保守は受けられないのだけど。
両方対応しているか否かの話題じゃなかったのか
リモートデスクトップおよびユーザーの簡易切り替えは除きます。
うんこは寝て食えってことだろ?
開発ツールの動作には実行ファイルを作ることもあるから それはできる でもリモートデスクトップとユーザーの簡易切り替えは除くよ と読める。
XPにVB6はインストールしないし、開発もしないし、セットアップも作成しない。
IT
VB6の互換性の問題はディストリビューションウイザードに関係してるところがほとんどだと思うけどね。 これで作ったインストーラは開発環境のActiveXを適当に持ち出して、 容赦なく旧バージョンで上書きしてしまう。 同じActiveXの新バージョンで動いてる別のアプリが動かなくなったり、 unicode版のATL.DLLをwin9xにインストールしちゃって動かね〜になったりって事もあった。
>>476 開発環境と全く同じActiveXで運用しなきゃ、テストとかの意味ないじゃん。
6ではVSIしか使ったこと無いな 5の時は使ってたけど、2000なんて無かった時代・・・
VBでATL.DLLをどうやって使うの?
たしかにw VBの話じゃなさげだね。
>>478 VSIでもディストリビューションウイザードが使われているのでは?
インストーラの動作はもちろん違うけど、
ディストリビューションウイザードがないとVSI動かなかった記憶
つかわれてねーよw
>>480 VC++ + ATLで作ったActiveXを含めると一緒に配布されてたのだと思う。
これは同じ名前でUnicode版とAnsi版があるのですよ。
>>483 ディストリビューションウイザードなしで動くの?
487 :
485 :2006/02/11(土) 16:56:28
VB6のインストーラをつくるときに限った話でね
っていうか、ディストリビューションウイザードは Windows Installerと違って、OSのコンポーネントじゃなくて 単一のアプリだし。しかもVB製でソースも付属してる。 ディストリビューションウイザードのバグで 2バイト文字ユーザー名にインストールできないから ソース修正しろって話しらない?
>>491 それは知らないけど、490の通りうごかない。
VSI( ver1 と 1.1 )は使い方がわからなくて結局使わなかった。 作業ディレクトリの設定の方法がわからなかったり、 データファイルなどを自動修復の対象からはずす方法がわからなかったりで。 結局Orcaがいるとか言う話だったけど、よくわからなかったのでそのまま放置しとりました。
>>490 なんか勘違いしているのだろうね。
そもそもディストリビューションウィザードは
インストールするものじゃないから。
っていうか何をどうやってインストールするのかと。
Windows Installer が事前に入ってないと動かないという話と誤解してる予感。
そこまで言うなら まあ、いいや。
まあいいやといいつつ確かめちゃったよ。(改行は適当にいれた) --------------------------- Microsoft Development Environment --------------------------- プロジェクト出力を追加できません。 ディストリビューション ウィザードが見つかりません。 Visual Studio Installer は Visual Basic プロジェクトの依存関係を算定するために Microsoft Visual Basic ディストリビューション ウィザードを使用します。 --------------------------- OK ---------------------------
498 :
497 :2006/02/11(土) 17:39:17
環境によると思うけど、この下のファイルがないとそのメッセージが出る C:\Program Files\Microsoft Visual Studio\VB98\Wizards\PDWizard
その事がVSIを使うにあたって、ユーザが問題になる事があるの?
そんなことはだれも言っていないかと。。 情報をお伝えしたまでです。
つまりVSI自体を動かすのにディストリビューション ウィザードが必要なのであって、 VSI使って作られた配布パッケージを使用するときには、 ディストリビューションウィザードは必要ないということだな。 何の問題もなし。
小力のネタかよ
何の意味があったんだ?この流れ。
ディストリビューションウィザードをあえて消してる奴の話されてもなー
開発ツールの動作には実行ファイルを作ることもあるから うんこは寝て食え
スカトロ趣味はない。
風説の流布
511 :
453 :2006/02/11(土) 22:00:25
512 :
デフォルトの名無しさん :2006/02/11(土) 22:34:19
VBSの質問なんだけど WSHShell.Run "D:\oracle\ora92\bin\SQLPLUS.EXE system/manager@master" これのsystem/manager@masterを変数で渡したいとき、以下のように書くとエラー。。 WSHShell.Run "D:\oracle\ora92\bin\SQLPLUS.EXE" & db_user どうやって書けばいいんでしょうか? 正直、眠りたい。
>>512 db_user ="""system/manager@master"""
WSHShell.Run "D:\oracle\ora92\bin\SQLPLUS.EXE " & db_user
>>512 ×WSHShell.Run "D:\oracle\ora92\bin\SQLPLUS.EXE" & db_user
○WSHShell.Run "D:\oracle\ora92\bin\SQLPLUS.EXE " & db_user
そもそも VB を作り上げてる開発言語って何ですか?
>>515 例えばCだと?
> そもそも C を作り上げてる開発言語って何ですか?
・・・
まるで宇宙の七不思議を見てるような感じだな ムカムカしてくる
518 :
512 :2006/02/11(土) 22:56:20
>> 513,514 こころからありがとう。 自分が情けなくなってきました。。
Formにtoolbarコントロールを貼り付けました。 labelコントロールをコピペしたら、貼り付けたコントロールが toolbarの後ろに隠れてしまって移動させるのに困っています。 toolbarえお最背面に移動しても出てきません。 なんとかならないでしょうか。 だれかたすけて
520 :
デフォルトの名無しさん :2006/02/12(日) 00:40:45
MSXMLを使用するのに最新のVerから存在するかで順番に指定したいのですが、 Ver4から順にためしていくにはどうしたらよいのでしょうか? (Ver2から試すのは下記のサンプルをみつけました。) Set oHttp = CreateObject("MSXML2.XMLHTTP") If (Err.Number <> 0) Then Set oHttp = CreateObject("MSXML.XMLHTTPRequest") End If
521 :
441 :2006/02/12(日) 00:46:29
ヘッドハンター西脇を完成させたんですが、 もしよかったら触ってみてくれませんか。
523 :
441 :2006/02/12(日) 00:52:15
テスターになれってかよ市ね
>>519 labelのLeft・Topをプロパティウィンドウで見ある位置にカエル
あとlabelはFormのDCに直接文字を描画するからコントロールより前には表示できない 覚えておきなさい
>>523 あー…
持ってるけど、とりあえずうpしてみれ
ソース込みならみるかもしらん
>>515 Visual C++
WindowsOS・ワード・エクセルもコレで作っている
ちなみに Visual C++ を作っているのは Visual C++
MS-Cだよ
529 :
441 :2006/02/12(日) 04:50:17
>>524 テスターになって下さいとは言っていませんが、そう解釈されても仕方ありませんね、ごめんなさい。
>>526 これはどうもありがとう
しかしソースとなるととっても汚い部分を晒す事になりますので、控えときます。
なんかソフトウェアの世界でWizardっていったら何を意味するかわかってない奴が 何人かいるような。。w
531 :
デフォルトの名無しさん :2006/02/12(日) 13:47:28
あれだろ、魔法を使ってドラゴンを倒してくれる奴だろ
>>515 マシン語です。
>>520 Set oHttp = CreateObject("MSXML4.XMLHTTP")
Set oHttp = CreateObject("MSXML3.XMLHTTP")
Set oHttp = CreateObject("MSXML2.XMLHTTP")
じゃないの?
>>528 VC++が存在しなかった時の一番最初のVC++はMSCで書いたのかな。
532 は「開発言語」の意味も分からない池沼か?
>>533 先輩は16ビットな開発環境でDB(デファインバイト)でマシン語でプログラムを書き、
それをビルドしてデータセグメントを実行可能にして32ビットなプログラムとして動作させてた。
>>536 ちょっとまて
流れ的にVBの開発言語の話なんだが、
つまりおまえの先輩がほろほろVBを一人で開発していたってことでFA?
539 :
デフォルトの名無しさん :2006/02/12(日) 19:09:49
フォームモジュールに、 --------------------- Dim a# Private b# Public c# Private Sub f(a#, b#, c#) Print Me.a 'エラー:メソッドまたはデータメンバが見つかりません Print Me.b 'エラー:メソッドまたはデータメンバが見つかりません Print Me.c 'OK End Sub Private Sub Form_Click() a = 10 b = 20 c = 30 Call f(1, 2, 3) End Sub -------------------- と書いて、フォームをクリックすると10,20,30と表示されることを期待したのですが、 エラーがでてしまいます。 名前を変えずに、スコープ解決できないものでしょうか? this->aとか::aとかみたいに…
言語的に出来たとしてもやらないよな。 可読性が悪くなるし、怪しい要素を持ち込むコードだし。 なんか、出来ない奴ほどこういう知らなくてもよいことにこだわる。 挙句に言語の欠陥だとかいい始めて。
>>539 Print a#
Print b#
Print c#
じゃないの?
Me.a とかじゃなくて。
>>541 取り消し。
何を勘違いしてたんだ・・・_| ̄|○
見る気にもならない糞コードだなおい
スコープ被る範囲で同一名称になることを一瞬でも悩むぐらいなら、変数名変える。 もしそんなのがそこらじゅうにあるとすれば、スコープの広い変数が多いって時点で糞プログラム。
いや、一部とかそこらじゅうとか手法を問題にしてるんじゃないでしょ・・・ 言語の受けずに自由にプログラミングしたいと思うなら自然な疑問だと思うけど・・・ 実際に使ってる人にそれを聞くのがそんなに変か?
自由に組みたいってのと、無法に組みたいってのは違うわな。 まあ、趣味ならいいけど仕事だとしたら論外。
どんなに厳格にスコープがあっても、絶対に同じ変数名になんかしないけどな。 もしするとしても、For カウンタの i 位か。
おいおい馬鹿が揃ってるな。
なんのためのスコープ解決のメカニズムがあるんだよw
>>539 Private以外のメンバなら普通にMe.aとかでできるよ。
っていうか、それぐらい自分で実験しろよ。
>>549 本気でそう思ってるのならそれはおかしい。議論の余地無くね。
まあ、その程度のコードしか書いたことないからだろうけど。
>>551 だからさ、きちんと設計したフォーム、クラスで、
関数内のローカル変数と、フォーム等の変数名称が被る場面がそんなにあるんか?
そうだとしたら、モジュール化が単に出来てないだけだよ。
>>540 の指摘がそのままあてはまるよ、あんた。
>>552 なら聞くけど、君はFormのFunctionまたはSubの中のローカル変数として
Formのプロパティと名前がバッティングする変数は絶対に使わないんだよね。
WidthもHeightもCaptionもBackColorも。
馬鹿馬鹿しい。
そんじゃなんのためのスコープなのよw
>>553 フォームが持っているそれらプロパティと、フォーム内の関数等でそれを使う場合に、
もしフォームの値を使うならローカル変数・引数を作る必要ないし、
関数内でフォーム値じゃない値があるならば、その役割+Widthなどになるよ。
名前が被るってことがまずありえない。
>>550 ん?
カウンタに i を使う事がおかしいの?
>>555 違う、スコープの異なるiが2つ被るって状態がおかしい。
>>551 て佑香、普通にコード書いてて全く同じ変数名なんて出てこないが。
>>553 ローカル変数でそんな一致してしまう名前使う奴がこの世に存在するのか?
>>556 何か話が噛み合ってないな。
Sub a()
Dim i As Integer
End Sub
Sub b()
Dim i As Integer
End Sub
って i を使うのがおかしいの?
何故??
>>558 いや、純粋に関数化とかモジュール化が下手なんだと思うよ。
たとえば彼が出した例だって、それらの値を持つものってそれ自体がクラスになってると思うし。
WidthとかHeightとかが、ばらばらの状態のローカル変数で、フォームにただ存在する場面ってのがそもそもおかしい。
もしそれらの値があるとして、何か意味をもったWidthやHeightだったり、
フォーム自体じゃない別のオブジェクトに属するWidthやHeightでしょ?
前者なら、xxWidthなどの名前、後者ならクラスや構造体のメンバー。
つまり被る場面ってのがそもそも想定しにくい。
>>559 スコープ被ってないじゃん。あんたこの流れのの最前提を理解してない。
form1のformのPrivateレベルでiが定義されていて、それと別にローカル変数のiがある状態でしょ?
この議論で流れからして
>>449 の例は。
>>560 ダメだこりゃ。
ローカル変数って意味わかってるのかなw
OOP以前だなこりゃ。
VB房同士仲良くしようぜ
>>562 じゃあさ、フォームのPrivate関数内で、フォーム値以外の幅・高さをいじる場面ってどういう場面だ?
>>564 リアルで聞いてるのなら頭悪すぎます。
たとえば単純な例として、直角三角形の斜辺と底辺の長さを引数にとって
高さを返す関数を考える。
このとき、「普通の」プログラマなら求める「高さ」を意味するローカル変数として、たとえば
Dim Height as Single
とやるだろうね。
少なくとも俺はそうする。
ローカル変数とプライベート変数の名前が被るなんて そんなアホな話はVBスレならではだなぁw そもそも、そんな名前を付ける必要はないし、つーか、やっちゃいけないし 言語仕様としては、そんなこと出来ないように設計されているべきだろう それを自由にプログラムしたいとかアホかとw
>>561 理解してないんじゃなくて、話の前提が違ってた。
それとは別の話をしてたので。
>>565 普通にフォームのローカル関数なんかにしないから判らん。
それだけでモジュールかクラスに抜き出してるからフォームの変数と被らん。
だから、あんたモジュール分けとか出来てないって最初からいってるじゃん。
>>565 そんな名前は糸色文寸に付けないけど。
例えば
Dim Height As Single
じゃなくて
Dim sglSankakuHeight As Single ' 変数名が長くなるけど
とかにする。
ハンガリー記法のプレフィクス+個別の表現+共通の部分、って感じ。
だから、全く同じ変数名が出てくる事なんて有り得ない。
ふと、なんとなく思ったんだが変数名を組み立てて参照したがる初心者と似てる気がした
Data1〜Data5の個別の変数に対して
i = 1
Data & i = 3
みたいなことできませんか?って訊いてくる人w
>>565 単純に三角形っていってるけど、何の三角形なんだ?
それが三角形の形したボタンの高さなら「ボタンの高さ」とすればいいだろうし
そのボタンが特別な意味のボタンなら、その意味を付加した名前にすりゃいいだろ?
なんで、そんな漠然とただ「高さ」なんて分かりにくい変数名つかうんだ?
どうしても、そういう単純な名前がいいならハンガリアンでもモンゴリアンでもやればいいだろwww
>>568 馬鹿だな本当。
話は何もフォームに限らない。
たとえば'Height'というメンバを持つクラスのPrivateな関数の中で
物理的に全く異なる「高さ」を意味するローカル変数が欲しくことなんて普通にある。
いままでそういうことがないなら、そりゃそれなりのコードしか書いてないだけw
いや、やっぱあの例だとそもそも三角型に関する関数が漠然とフォームにあるのがおかしい。 それ自体は共通的な関数だからモジュールにするのがVB6風だし、 普通の言語だったら三角形クラス作るでしょ? その時点で変数名被らないし・・・。
>>571 だからさ、その高さって言葉が被る時点で、そのクラスなりフォームの設計がおかしいの。
理解できないかな?
すげぇ馬鹿がいるな・・・ VB厨って言われるわけだ・・・ 名前がかぶる時点で設計がおかしいってなんだよ・・・
ああ悪い。時代が違うだけかもしれんな。
>>574 責務分けができてないじゃん。
>>572 と
>>574 が同一かはしらんが、自分の設計なりつくりが糞なことを自覚してないだけ。
クラスの分割が足りていない、クラス内の特定の値の集合をきちんと括れていないなどなど。
おら、何だかワクワクしてきたぞ!
>>571 物理的に全く異なる高さなら、同じ名前の変数になることはない
X = (Height / 2) - (Height / 2)
これが、文法的に可能だとしても、どっちがどっちかサッパリ分からんw
こんな可読性のない糞コード誰が書くかw
っていうか、なんか釣りなんじゃないかと思えてきた
この付き抜け具合はちょっと怪しいw
議論整頓 ・被ってOK派 言語仕様が許すんだし、命名はその直近の場面に対して最適なものでOK。 ・被り論外派 そもそも同じ名前にならない。 同じ名前としても命名規則(ハンガリアン等)で避けるべき。 同じ名前わざわざ付けるなんて正気じゃない。
>>578 釣りじゃないよ。
っていうか、君馬鹿でしょw
だからスコープを解決するためのメカニズムが(一応VBにも。。)あるから
混乱など起きない。
っていうか、これが釣りだと思う君のセンスって相当ヤバいよ。
そもそもスコープって概念が何のためにあるのかわかってないとしか思えない。
まあVBオンリーの人にありがちなOOPが理解できてないってことだと思うけど。
悪いけど俺のは被ってない(ちんこ
プライベート変数名なら、Height。 オブジェクト変数ならMe.Height。 それでいいじゃん。
OOP言ってればなんでも許されると思ってるのか? だから、あんたがいうOOPから考えても、責務分けが甘いって。 同じ名前がクラスレベルとローカルレベルに出る時点で、そのローカル側が何故中にいる?ってなる。 それに、プログラム慣れしている人だって、クラスレベル変数には _xxxなどプレフィクスつけて、 可読性を明示するようにしてる。 あんたが複数人である程度以上の規模のプログラムを組んだことないだけだよ。
あのねえ、たとえば一度コレクション的な動作をするクラスを自分で書いてみ? コレクションにはアイテム数を返す'Count'ってメンバが要るよね? そしたら君はローカル変数に'Count'って命名することを封印するわけ? そんな奴いたらタワケだと思うわw
一つ言えば、ローカル関数の戻り値なんて全てretとかだな。 で、関数が当然1つの機能を有するだけだから、例えば戻り値にCountなんて変数は割り当てられない。
これは要するに命名規則の話だな。 コードに height とあったとき 関数の頭を見ればわかるという人は、そのままheightと書く。 ローカル変数なのか、メンバ変数なのか、グローバル変数なのかわからないという人は、 たとえば、ローカル変数の最初か最後に _ (アンダーバー)をつけるとか グローバル変数にg_、メンバ変数にm_をつけるとか。 要するにコーディングスタイルの話。 どっちでもいい。
アイテムを返すのはgetCount ローカル変数はcnt
>>582 しかし質問の件だと無理なのです!
これがVBクオリティ><
>>588 別に無理じゃないでしょ。
混乱する可能性があるから、
ローカル変数(またはグローバル・メンバ変数)名を
工夫しろといっている人がいるだけであって。
>>580 スコープはPC(言語環境)の為にある物だよ。
人間の為じゃない。
>>589 >>590 いや、そういう場面に出くわして言語仕様的に出来る出来ないの話なのだが・・・
変数名を変えれば解決なんて質問しなくても分かりきってるわけで。
なんでわざわざそれを回答してるのかわからない。
>>591 変数名は人間のためにあるものだよ。
人間がA0001、A0002、A0003・・・とかいう変数名を使えば
スコープなんて要らない。
人間のためにわかりやすい変数名を使えるようにしたから
名前が重なったときに解決するためのスコープというものが出来た。
>>592 だったら解決じゃん。いちいちそんな確認が必要なソースなんて書かないのが普通。
だから
>>540 なわけで。
>>592 そういう場面って?
たとえば一つの関数内で、違う意味で同じ変数名を使いたいって事?
意味が違うのに???
>>580 はいはい、わかったわかったw
オレがVBしかやったこと無い人ってことにしといていいし
君は、とても複雑で高度で難解なコードをたくさん書けるスーパーハカーでいいから、
早く同名の変数であふれかえったコードを書く作業に戻ってくれw
>>594 スコープはあくまで言語を成立させるためのルールであって、
必ずしもそれを推奨してるわけじゃないからね。
どっちをとるか決めないと言語として成立しないし、コンパイラだって書けないし。
>>597 > 早く同名の変数であふれかえったコードを書く作業に戻ってくれw
違う関数・オブジェクトでは同名の変数たくさんあるけどなw
全部違う名前にするなんて人間には不可能だし。
多人数で作業していればなおさら。
だからスコープというものがあって、
名前が被っても問題ないようになっているんだけどね。
VBを含めてほとんどの言語が。
>>600 そうだね。
でもスコープというものは人間のために出来たということ。
名前が完全に一意であれば、スコープなんて必要ないから。
>>599 だからそれは普通でしょ?
で、スコープが被る場面で同一の名称って何?っていってるわけで。
例えばフォームのheightと被るとして、その中の値って本当に単なるheightなのか?って。
何かに属するheightなら構造体のメンバーだし・・・ってそれに全く答えてないよね。
自分のクラスわけが間違っていないって前提が間違ってるのに・・・。
>>600 えー?
さすがにスコープと変数名別にしたらコンパイラ書けんでしょ。
このなかにコボラーがおる おまえやろ
>>599 >違う関数・オブジェクトでは同名の変数たくさんあるけどなw
んなの、あたりまえだろ
なんでプロジェクト全体でユニークにするなんて極論に行き着くんだよw
>>603 あー。わかった。
> で、スコープが被る場面で
このスコープが被る場面ってのを具体的にどういうコードなのか言ってみて。
そうすれば、何を勘違いしているのか(みんなに)わかるだろうから。
>>608 それを俺に聞くな。
俺は被らん派なんだから。
被らん派ってのも意味がわからんw どういうのが被らないのか、自分でわかっているから言えるんだよね。 どういう状態が被らないと言っているのか説明してみて。
>>610 >>603 に書いてあるだろ?
そのHeightなりってのが、そもそも他の何かに属するHeightであるならば、それは構造体のメンバー。
この時点でまず被らない。
そうじゃないとしても、何かのHeightだから、xxxHehghtとなるはず。
やっぱ議論は会議室でやらないとな。 ホワイトボード使って。
スコープの話と変数名の付け方の話、2つが流れてるのか?
長々とやって結局命名規則の話かよ。 グローバル・メンバ・ローカル変数に名前が被らないように プリフィックスをつける派とつけない派。 そういうことだろ?
命名規則でもないだろ? 単なる高さじゃないものに対して、なんでもheightって命名する人って。 それをいっちゃー、変数なんてa,b,cでいいじゃんってのと同レベルと思うけど。
>>611 構造体のメンバーとか何いってんの?
ぶっちゃけ、途中参加で過去スレよんでないのよ。
飯食い終わったから退場するよ。
>>610 Public Height と Private Height と Dim Height が被ることは無い
Dim Height が異なる関数内で存在することは当然ある
話の発端が
>>539 から来てるんだから、このくらいは理解しろよ
>>617 ほうほう。
>>539 DimとPrivateは同じとして、
これからは、プライベートメンバ変数にはm_という
プリフィックスをつけるようにするといいよ。
君もm_のよさがわかったね!
※これはスコープに関するプリフィックスなので
型に関するプリフィックスであるハンガリアンではありません。
どうでもいいけど、名前を変えずに
>>539 を解決できる言語って無いよな?
いや。あるか。
ないあるよ。
ローカル変数、モジュール変数、グローバル変数 これって便利じゃん!!
祭に遅れた・・・ うんこは寝て食えっていうことですかね?
627 :
デフォルトの名無しさん :2006/02/12(日) 23:35:50
MSXML2.XMLHTTPを使用してSendを実行した場合で、 タイムアウトだとどうなりますか?(エラーコードが帰ってきますか?)
>>629 答える為にはやらないといけない。
それよりも、質問者本人がやってみるのが一番早い。
二度手間。
>>627 は質問じゃないわな。作成依頼。
奇特な人がやってくれるでしょ?w
質問ってのは、どういう状態でどうだから、何が問題ってなるわけで。
632 :
デフォルトの名無しさん :2006/02/13(月) 09:40:40
vbで自分のIPとデフォルトゲートウェイを変更するプログラムを 作りたいんですが、やっぱりWINDOWS API叩かないと駄目なんでしょうか ググって見てもそれらしいものが見つけられなかったので 知ってる人がいたら教えてください
>>631 だね。
自分でこんなコードでやってみたけどこうなった。何故?とかさ。
>>632 win2kとかwinxpならipconfigさんを使った方がマシだとおもお
637 :
デフォルトの名無しさん :2006/02/13(月) 13:01:40
>>623 あるのかないのかどっちなんだ
お前は修羅か
ないあるよ
VB6でデータベース関連のプログラミングの勉強しています。 今までADOでMicrosoft.Jet.OLEDB.4.0を使いAccessと対話してたのですが 今回からADOでODBCデータベースと対話したいと思いぐぐってみたのですが どうも接続するための構文がわからないためエラーがでてしまいます。 FromLoadに書く接続用の構文おしえてください。 おねがいします。 VB6で参照設定 Microsoft ActiveX Data Objects 2.1 Library Win2kSP4でODBCのシステムDSNに Microsoft Access Driverでデータソース名をODBCTestと言う名前で登録しています。 あとODBCデータベースをAのPCで実行しておき BのPCからVBでデータベースにアクセスすることはできるでしょうか?
643 :
デフォルトの名無しさん :2006/02/13(月) 16:38:52
>>641 接続文字列の違いだけだな
ADO+ODBC+VB6でググッたら出てきたのがこれ↓
Microsoft OLE DB Provider for ODBC Drivers -> Provider=MSDASQL;User ID=<ユーザーID>Data Source=<データソース名>
Microsoft Jet 3.51 OLE DB Provider -> Provider=Microsoft.Jet.OLEDB.3.51;Data Source=<MDBファイル名>
Microsoft OLE DB Provider for SQL Server -> Provider=SQLOLEDB;User ID=<ユーザーID>;Data Source=<サーバー名>
Microsoft OLE DB Provider for SQL Server -> Provider=SQLOLEDB;User ID=<ユーザーID>;Data Source=<サーバー名>
Microsoft OLE DB Provider for Oracle -> Provider=MSDAORA; User ID=<ユーザーID>;Data Source=<データベース別名>
"->"の左側をデータソースに設定すれば使えるはず
後半の質問はしらね
データベースの種類によるんじゃない?って事で
>>641 一度に一つのPCからしかアクセス出来ないDBなんて
使い物にならないが。
645 :
デフォルトの名無しさん :2006/02/13(月) 16:54:03
Visual Basic 2005で Dim DialogRet As Integer のDialogRetってどう変えればいいの?
>>643 ありがとうございます。
ConnectionStringの
Providerのとこがわかってなかった
orz
>>644 排他制御とかちゃんとできるのかが気になって・・・。
>>648 それはDBMSの仕様とDBをオープンする時の設定。
「ちゃんと出来るのか気になる」んじゃなく、「自分でちゃんとやる」。
650 :
デフォルトの名無しさん :2006/02/13(月) 18:28:17
VB6でMySQL4.1に接続して テーブル"table1"にレコードを追加したいんですけど MySQLには接続できるんですけど、新しいレコードを 追加できません。 エラーメッセージは Unknown column 'ID'in'fieldlist' とでます。 Dim SQL As String Dim ID As Integer Dim name As String Dim cmd As ADODB.Command Set cmd = New ADODB.Command ID = Text1.Text name = Text2.Text SQL = "insert into table1(AID,Aname) values(ID,name) " cmd.ActiveConnection = cn cmd.CommandText = SQL cmd.Execute
>>650 プログラム中のIDとnameは何か意味があるのか?
652 :
650 :2006/02/13(月) 18:40:58
>>651 一応IDとnameにはTextBoxの値を代入してます。
補足でtable1の内容は
AID Aname ←フィールド名
1 suzuki
2 satou
3 takahasi
みたいな感じです。
SQLインジェクションとかまっさら置いておいて、 もしかして "insert into table1(AID,Aname) values(" & ID & "," & name & ")" こう?
654 :
デフォルトの名無しさん :2006/02/13(月) 19:49:22
windows xp vb6 で ソケットを使うには どのコントロールを使えばいいのでしょうか
>>654 コントロール使わなければならないならwinsockを思いつく
Visual Studio 2005です インストールする時に、勘違いをしてVB BASICを選択してしまいました そしたら、リソースビューやクラスビューが右に表示されます VC++スタイルの様に左側に配置したいのですが、どこを弄ったら 出来るでしょうか?
>>657 ツール−オプションとかの何処かにあるのでは。
Visual Studio 2005にVB6.0以前が入ってるとは知らなかった
>>650 俺もそれやろうとして
そんなエラーメッセージでた事あるわ。
どうやって解決したかは、忘れたけどw
基本ランタイム以外のコンポーネントを配布する場合、インストーラは必須でしょうか・・・?
>>663 1.インストーラーを作る
2.Vector等で配布されてるランタイムパッケージを利用者に入れてもらう
の選択肢しかないな
2 を選択した場合は 配布されているバージョン・SPのコンポーネントで作らないと
DLLヘル起こすよ
>>663 regsvr32で1個ずつ登録するとか。
>>663 基本コンポーネント以外は、全部関数呼び出しのDLLだけにすればOKOK。
なぜこうも的外れなレスが多いのか
うわっ。さぶっw
ヤバスw
言語障害ですね
誰も質問しないね。
質問しても誰も答えられないじゃんw
任せとけ!
VB初心者とかプログラミング初心者とかはまだ許せる でも質問初心者とかは消えてなくなれって感じですね 【消えろ】質問初心者【カス】みたいな
今やWEB上に幾らでも情報が転がってるから、どんな質問に対しても 「ググれ」で終われる様な気がする・・・
まあまあ .NETが出てけっこうたつのに新規でVB6を覚える初心者も少ないってことだろ そもそも言語自体が手に入りにくい
VB6かわいいよVB6
シャチかわいいよシャチ
能登かわいいよ能登
,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;; {;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; アンゴルモアちゃんや志摩子サマに ヾ;;;ハ ノ .::!lリ;;r゙ 中の人など居ない・・・ `Z;i 〈.,_..,. ノ;;;;;;;;> ,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f. そんな風に考えていた時期が ~''戈ヽ `二´ r'´:::. `! 俺にもありました・・・
UBoundとLBoundのどっちが配列の要素数最大値取得なんだか毎回分からなくなっちゃう鳥頭な俺なんだが、 覚えやすい方法ない? つーか何の頭文字なんだ?
>>684 根本的に間違ってる
UBound(array,script):arrayのscript次元の上限
LBound(array,script):arrayのscript次元の下限
arrayのあるscript次元の要素数は
ubound(array,script)-lbound(array,script)+1で与えられる
で、何の頭文字?
upperとlowerじゃねーの?
>>685 要素数"最大値"なんだから言い方は悪いが間違っちゃいねーだろ
要素インデックス最大値って言った方がまだいいけどな
ちなみに正確にはUBound(array [ ,script=1])ね
つーかLBound使う機会ほとんどねー
つうか思い当たらないのか?UとLで・・・。
ヒント:俺はバカ
配列になっていない状態で、 a1="abc" a2="def" ・ ・ ・ a100="ghi 上記のように100個の変数がある場合、 forやloopで1〜100を回してそれぞれの値を取る方法はないでしょうか?
配列にしてください。
>>693 何が目的なのか良く分からないけど、それは無理です。
素直に配列で質問してくださいね
>>693 そんな状態で100個の変数がある時点で異常。
( ,_`ゝ′)キー
ヘ:::::::::;;: -‐''''""( )1 ゙、::::::::-‐''""" ̄"'i :V;;||:::: '~ニ=ッ, r='| i!f !::::: ゙、i i!ゝ!:::: ‐/リ i::/:、 :::、 /''ii'V  ̄ハ:::::\ "''il|バ'' ショカツリョウ 諸葛亮 曰く 「目的と手段を履き違えてはいかんぞ」
田村亮なら知っているが、諸葛亮って誰やねん
もろくずりょうさん知らないなんて・・・。
テキストファイルで指定した一行を削除(改行を含む)する方法はありますか?
みんな断言するなんてすごいね。 俺は多分あるとしか言えない。
環境: WinXP SP2 VB6.0 SP6 InputMan Pro 6.5J InputManのimTextで、IMEオフで入力すると正常ですが、 IMEオンにして入力すると、確定したときに文字がある部分のみ 灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。 IMEからの入力だと全角、半角問わず発生します。 解決策ご存知の方いましたらご教授お願いします。
あるわけねえだろw ネタじゃなくあるって言ってるならファイル操作ってものが全くわかってないんだよw
>>706 ここではなく、BOC、じゃなくてグレープシティのWEBサイトでFAQ検索した方がいいかも。
環境: WinXP SP2 VB6.0 SP6 InputMan Pro 6.5J InputManのimTextで、IMEオフで入力すると正常ですが、 IMEオンにして入力すると、確定したときに文字がある部分のみ 灰色(フォーム背景色?)になり、文字が隠れてしまうという現象が起こります。 IMEからの入力だと全角、半角問わず発生します。 解決策ご存知の方いましたらご教授お願いします。
>>710 VB6もInputMan65Jも、XPには対応してないよ。
だから、どんな不具合が起こっても仕方がないし、回避方法はない。
_ ∩ ( ゚∀゚)彡 ロジック!ロジック! ⊂彡
716 :
710 :2006/02/17(金) 00:26:45
>>711 そうですか・・・。回答有難うございます。
販売元に報告したらいいよ。 一応お客さんなんだしさ。なんらかの対応はしてくれるよ。
>>707 行を削除する関数とかがあるかって話じゃなくて、
"方法"があるかって話なんだがw
組み込みにしたってAPIにしたって、関数一つで出来る事なんて限られてる。
それを組み合わせて必要な機能を実装していくのがプログラミングというものですよ。
そのレベルの話で「出来ない」とか言ってるなら、「お前の知識では出来ないだけ」だ。
>>719 VBSはスレ違いじゃないけど、正規表現構文はスレ違い。
つーか、全然理解してないようだが、Pattern プロパティのところに正規表現の解説あるから
それを読んでも解らなかったら正規表現スレ行け。
まぁ、この件に関しては数量子の使い方が解ればいいだけだが、この機会にきちんと勉強しておけ。
あまりにも簡単すぎる質問だから、ここでも教えたがり君がスレ違いにも関わらず意気揚々と答え出すかもしれないけどな。
まあ「場違いな」尊大な物言いをする奴は例外なく無能だから気にしない方がいいよw スレ違いなら例外なく排除すべき、と単細胞に思い込むほど頭悪いんだから。 スレ違いだろうとなんだろうと、スレの主題に関連した話題で 多数の人間に利益があればそれを否定する理由はない、と理性的な人間なら 考えると俺は思うけどね。 例のパーティージョークだと「こういう場合は海に飛び込む規則になっております」 ってのはドイツ人に向かっていうセリフになってるが、自分の頭で物事考えられない 鳥頭ってのはドイツ人よりむしろ日本人にこそより当てはまるんだよね悲しいかな。
で、長文書いた割には有用な情報は無し、とw
で、長文書いた割には有用な情報は無し、とw
724 :
デフォルトの名無しさん :2006/02/17(金) 10:14:24
725 :
デフォルトの名無しさん :2006/02/17(金) 11:00:52
>>724 そんなのわざわざダウンロードして試してくれる奴なんか居る訳ないでしょ。
コピペだけで一切変更なしですぐ動いて動作を試せるコードを提示しろよ。
>>721 言いたいことは分かるが、スルーするのも大人のたしなみだと思いねえ
>>719 VBSの正規表現は、^4で4桁になるのか?
桁数は {なんとか} あたりで指定すると思うんだが?
729 :
デフォルトの名無しさん :2006/02/17(金) 22:07:09
質問です。 VB6(SP5)の環境で、ADO6.0(SP4)を使ってACCESS2003(SP2)のmdbファイルを 読み書きするプログラムを作っています。 普通にSELECTしてレコードセットを作って〜という部分は、 意図した通りの動きをしているのですが、SELECT文中でLIKE演算子を 使った部分でレコードが無いという結果になっています。 VB中で使っているSQL文を、ACCESSのクエリに貼って動かしてみると、 きちんとレコードが選択されるので、何が問題なのか絞り込めずにいます。 ソースは以下のようになってます。 Private Sub foge() Dim cn as New ADODB.Connection Dim rs as New ADODB.Recordset Dim strSQL as String strSQL = "select A, B from T where C like 'X*' order by A" rs.Open strSQL, cn, adOpenKeyset, adLockReadOnly Do While (rs.EOF = False) ' この辺にレコードの処理 Loop rs.Close Set rs = Nothing cn.Close End Sub 動きとしては、レコードが選択されない→ループの中に入らない、という状態です。
730 :
729 :2006/02/17(金) 22:33:26
書き忘れてますが、コネクションはこんな感じでrs.Openの前に入れてます。 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & p_mdbPath & p_fileName & ";"
731 :
デフォルトの名無しさん :2006/02/17(金) 22:41:57
皆様はどういったインストーラをお使いになっているのでしょうか? VB6 に付属しているディストリビューション ウィザードで事足りるものでしょうか。
>>729 ADOの場合、Likeのワイルドカードって*じゃなかった様な気がする。
%だっけか。ヘルプ見てみて。
>>731 ディストリビューションウィザードは自分で改造しないと使い物にならない
というのが正直なところ。
InstallShield Expressを使ったほうが良いです。
Windows InstallerがMSからダウンロードできるじゃん。 もちろん正規のプロダクトIDが必要だけどねw まさかヤフオクで入手したVL(w っていうか、どうせ同じ今から新しく覚えるならVB6ってのは 果たしてよい選択なんだろうかね
735 :
729 :2006/02/17(金) 23:45:45
>>732 うぉーありがとうございます!
一発で解決しました!
ACCESSで "%" が使えなかったので、ADOの仕様まで考慮してませんでした。
本当にありがとうございましたー
>>735 例えMDBにアクセスしてても、ADOを使ってる訳で、
SQL文はSQLサーバの方の文法になります。
737 :
719 :2006/02/18(土) 00:45:36
>>720 >>721 >>728 PCにインストールされてるMSDNの検索でヒットした正規表現の項目を
使ったのがまずかったようです。微妙に異なる部分に引っかかりました。
ご指摘の通り"{}"で試したところ正常にヒットしてくれました。
この際ちゃんと学習しておくことにします。
Dim oHttp As Object ' オブジェクト変数に参照をセットします。 Set oHttp = CreateObject("MSXML2.XMLHTTP") If (Err.Number <> 0) Then Set oHttp = CreateObject("MSXML.XMLHTTPRequest") End If If oHttp Is Nothing Then MsgBox "XMLHTTP オブジェクトを作成できませんでした。", vbCritical Exit Sub End If With oHttp .Open "GET", strURL, False .setRequestHeader "If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT" .Send strHTML = StrConv(oHttp.responseBody, vbUnicode) End With このロジックでまれにstrHTMLにCR/LFだけが帰ってくる場合がありますが、 原因・対処方はありますか?
捨ててリトライすれば?
>>735 Access、DAOから入ると良く躓く部分だな、そこは。懐かしい。
>>738 As Object:CreateObject()よりできる限り事前バインディングのが良く寝?
誰か利点ナリ反論ドゾ
>>742 Dim oHttp As XMLHTTP26
Set oHttp = CreateObject("MSXML2.XMLHTTP")
が一番良い。
745 :
pp :2006/02/19(日) 01:02:48
文字の置換で質問があります。たとえば、 "%・%" の%が半角欧文の場合は 半角の中グロにして全角の場合は、全角の中グロにするなど前後のテキストに 応じて変換したいのですが…。 ワイルドカードに任意の複数文字を設定するやり方とかあるのでしょうか?
>>745 変換ルールがあるなら素直にfor-nextとmid$()で逐次変換してくのが良いと思うが・・・
747 :
pp :2006/02/19(日) 01:58:10
あいがとうございます。初心者なので便利な関数が用意されているのかと思っていましたが…。 やっぱり自分で流れを作ります。
748 :
デフォルトの名無しさん :2006/02/19(日) 04:33:32
VBSなのですがお願いいたします。 あるフォルダの中に複数のファイルがあります。 それらのファイルのタイムスタンプを見てある時刻以前のものを 削除したいといった処理なのですが フォルダ:TEST AAA.txt 2006/02/17 01:30 BBB.txt 2006/02/18 12:15 CCC.txt 2006/02/18 18:45 DDDtxt 2006/02/19 03:30 EEE.txt 2006/02/19 04:27 ☆ 2006/02/19 03:30 以前のファイルを削除したい 入門WEBページを見ても検討がつきません。。 正直眠りたい。 肌が。。
>>748 FSO使え。
wshの日本語版ヘルプファイルに詳しく載ってる。
MSDNと同じ内容だけど、wsh(vbs、jsなど)使うなら落としておくが吉。
1週間それを読んでもわからなかったらまた来なさい。
>>748 VBだとこんな感じ。
Dim objFSO As FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objDir As Folder
Set objDir = objFSO.GetSpecialFolder(SystemFolder)
Dim objFile As File
For Each objFile In objDir.Files
DoEvents
If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then
Debug.Print objFile.Name, objFile.DateLastModified
End If
Next
Set objDir = Nothing
Set objFSO = Nothing
VBSに DateDiff があるのかどうかは知らない。
偶に簡単な質問が来ると、意気揚々とコードまで書いて答える子が居るねぇ 普段は答えられないことをごまかすためになんだかんだ理由付けて叩くくせに
まあ
>>751 みたいな奴もある意味微笑ましいが、確かに
>FSO使え。
みたいな口調を見るとなんだか笑っちゃうよねえ。
やっぱり人間頭の悪さとか精神の未熟さってのはどうやっても隠せないんだな、とw
749 >>> 751 >>> 750 >>> 752
>>751 簡単な質問にすら答えられない人はここ読まなくていいからね。
VB6のFormなんですが、コントロールボタンを閉じると最小化だけにするにはどうしたらいいですか? 通常は[_][□][×]と最小化、最大化/元のサイズ、閉じると3つ並んでますが、 BorderStyleだと、ボタン3つか閉じるのみかしか選べず、 MaxButton=Falseだと無効になるだけで表示は残ります。 コントロールボタンを[_][×]というようにしたいのですが。 VB6の機能のみで出来ないならAPIでも構わないので具体的な回答をお願いします。
>>755 VBでは勿論、APIでも非表示には出来ない。
もしやるなら、タイトルバーなしのウィンドの上部を擬似的にタイトルバーにして、
[_][×]とかも全部自分で描画して、其処のマウスイベントを全部拾ってごにょごにょ
しないと。
757 :
748 :2006/02/19(日) 14:38:44
>> 749、750、751、752、753、754 無事、解決できました。 日時分秒までの比較を行いたかったので If DateDiff("d", objFile.DateLastModified, "1999/01/01") > 0 Then で "s"を指定しました。 コードまで示して頂いて 本当にありがとうございました。
759 :
デフォルトの名無しさん :2006/02/19(日) 16:13:57
>>724 落としてみたけど原因わかんないな
exitの解釈が違うんじゃない
760 :
デフォルトの名無しさん :2006/02/19(日) 19:51:02
>>724 同じルーチンを2度通るからおかしくなってるんじゃないの
みんな優しいな。
初歩的な質問ですみません。 DataTableのSelectメソッドで、抽出条件を記述して DataRow[]を抽出できたのですが、 抽出したDataRowを新規のDataTableに格納したいのですが、 なかなかうまくいきませんでした。 試した方法は、 新規のDataTableのインスタンスを作成してdataTable.rows.addメソッドで 抽出したrowを追加する方法は間違っているのでしょうか。
>>762 ×やってる事の文章
○コピーペーストでそのまますぐ実行出来る、現象が再現する最小限コードの提示
>>743 動作が速くなるとかそういうことでしょうか?
>>764 速度は殆ど変わらないんじゃないかな。
MSXMLが存在しなければ全ての機能が動かないってんなら事前バインディングでいいと思う。
プラグインみたいに、あっても無くてもどっちでも動くようにするんならCreateObject
使うしかねーけど。
仕事じゃないんなら事前バインディングで適当に楽したいね。
>>764 ちょっと前にそれに関する議論があった様な。
New だと色々不具合が出るよ。
なんか勘違いしてる人が多いけど、アーリーバインディング・レイトバインディングってのは (あえて突っ込まれそうな言い方をするけど)参照変数にナニを使うかの問題であって、 インスタンスをどうやって生成するか、というのとは全く別問題だよ。
MSXML2.XMLHTTPつーのは つかそのProgIDだとせっかくMSXML4.0インスコしてあっても3.0のが適用されちゃうよ
769 :
デフォルトの名無しさん :2006/02/20(月) 12:47:04
>>762 別のデータテーブルのRowのインスタンスを追加は出来ないんで無かった?
新規のデータテーブルに新規のRowを追加した後、それに抽出したRowのデータを流し込む様なコードにすると動くと思うよ
いや、
>>767 が間違ってる。
変数の生成メカニズムが違ってくるんだが。
彼の主張が正しいとするなら、レイトバインドによる複数バージョンの互換が説明できないよ。
間違ってないってw つーかそんなもんちょっと調べりゃわかりそうなもんだが。
773 :
デフォルトの名無しさん :2006/02/20(月) 20:28:58
Version:VB6.0 WindowsXP SP2 目的 特殊なpngファイルを読込み、標準pngに変換する。 問題点 IHDR、PLTE、IDAT、IEND等の各チャンクと呼ばれるブロック単位から構成されてるとこまでは理解できたのですが 例えば、IHDRチャンクは実際どういう形式でデータ(色情報等)を保持しているのかといったpngの仕様を知りたいの。 質問 pngファイルの仕様を日本語訳にしてるサイトってありませんでしょうか。 または、pngファイルを扱ったサンプルソースを載せてるサイト、参考書でもおっけなのですが。。 せちからい話、当方、英語がまったくできないため、W3Cのpng仕様サイトを見てもさっぱりなのです。。 参考サイト(日本語サイト)、参考書などあれば教えてください。よろしくお願いします。
>>773 VB関係ないじゃん。
で、Irfanview32 とか LEADTOOLS とかでやった方がいいんじゃないの?
出来るかどうかは知らないが。
775 :
デフォルトの名無しさん :2006/02/20(月) 20:42:36
>>773 東京書籍の「NEW HORIZON」とかが良いんじゃない?
>>774 VBで表示しないといけないんです。。
標準pngはフリーのDLLを使用してImageコントロールに表示できてるんで、
あとは標準pngへの変換だけなのです。
また、特殊pngは独自仕様なので、標準pngの仕様をまず知りたいとこなんです。
>>775 ありがとうございます!
さっそく調べてみます!
>>776 LEADTOOLS を調べもせず書いてるでしょう?
780 :
デフォルトの名無しさん :2006/02/20(月) 21:02:44
>>779 グレープシティーのソフトですよね。
LeadToolはバージョン12.0Jを実際に一部機能で使ってるんです。
ただ、特殊なpngファイルが独自仕様のため、外部ツールに頼ることができないのです。
781 :
繁蔵 :2006/02/20(月) 21:04:06
失礼します。すいません、初めて2CHやります。お邪魔してもいいですか?
>>763 >>769 ご返答ありがとうございました。
Rowを抽出する前のDataTableのCloneメソッドで
テーブル構造が同じDataTableを作成して、このテーブルの
ImportRowメソッドでRowを取り込むことで解決できました。
>>780 その特殊なPNGを勝手に作った所で、その非標準のPNGを
表示する方法とか標準に変換する方法を提供してないの?
普通はするけど。
>>783 特殊pngを表示する方法はわかってるのですが、
標準pngに変換する方法はわからないんです。
>>784 特殊PNGを作った会社(?)に聞けば。
または、表示出来るならクリップボードに入れてペーストすりゃいいじゃん。
>>785 なるほど、クリップボードは思いつきませんでした。
ちょいと試してみます。
どうもありがとうです
787 :
デフォルトの名無しさん :2006/02/20(月) 22:03:20
昨日オナ禁したから今日たった今現在ナウ、解禁しようと思うんですけど、おかずくdさい。
>788 漏れはInStrRevあたりグッとクるなぁ。 だって「後から検索」だぜ。タマラン。
790 :
デフォルトの名無しさん :2006/02/21(火) 16:13:56
CPU温度を取得する以下のVBScriptなんですが, 実行してもいつも同じ値しか得られず正しい温度でもありません. CPU温度をリアルタイムにモニタする方法はないでしょうか? Function ACPI_CPUTemp() dim r, lu set PFU = GetObject("winmgmts:{impersonationLevel=impersonate}!root\wmi").ExecQuery _ ("SELECT CurrentTemperature FROM MSAcpi_ThermalZoneTemperature") for each U in PFU r = r&U.CurrentTemperature Next ACPI_CPUTemp = (r - 2732) / 10 set PFU=Nothing End Function
現在フォームなしのプログラムを作成しています。 そこで質問なのですが、自分自身のウィンドウハンドルを取得するにはどうすればよいのでしょうか? フォームがある場合はMe.hWndで求めればよいと思うのですが、今回はフォームがありません。 下記の2通りの方法を考えましたが、もっとスマートな方法はありませんか? ・EnumWindows+GetWindowThreadProcessIdの返り値をApp.ThreadIDプロパティと比較する ・EnumWindows+GetWindowTextの第2引数とApp.Titleプロパティと比較する
>>792 ウィンドを作成してないんだから hWnd はないけど。
Sub Main で Load Form1 とかしてその hWnd を使うとか。
794 :
デフォルトの名無しさん :2006/02/21(火) 18:41:42
HP潰す方法教えてください
あぼーん
>>791 これは値を参照するだけにとどまりますか?
>>796 こんなのがあぼーん?
単にURL貼ってあっただけだと思ったけど。
ずいぶんおかしな奴が削除人やってるんだな。
なんか2ch用語でいう「プロ市民」的な病理を感じるよ。
削除議論板にでも行ってこい
801 :
デフォルトの名無しさん :2006/02/22(水) 01:08:10
とあるアプリの検索ボックスに文字をセットしたいのですが、実現する方法はありますか?
803 :
801 :2006/02/22(水) 01:13:13
>>803 "アプリの検索ボックス"とやらの具体的な例を出したらな
何も分からないのなら、
SendKey()とかWinAPIのSendInput()とかkeybd_event()とか使ったり、
ウィンドウメッセージ送って(運良く)反応してくれるかもしれない。
とだけ言える
>>804 調べてみます。ありがとうございました。
>>791 そこのWin32_TemperatureProbeを試してみましたが,
For Eachの中が一度も実行されなくて,
何も表示されませんでした.
他のサンプルなら成功するのですが
温度が読めないのはどこに問題があるのでしょうか?
807 :
デフォルトの名無しさん :2006/02/22(水) 13:05:00
>>806 ドライバが入ってないか、そもそも温度センサーが付いていない
>>807 MobileMeterというソフトでは
(たぶん)正しい温度が読めているので
そういう問題ではないと思います.
逆にどのような環境では上のスクリプトで
リアルタイムに温度をモニタできるのでしょうか?
>>808 っ [S.M.A.R.T機能(対応されているか確認しる)]
つか、製品わかってるなら参照しているDLLをDependencyWalkerなんかで調べればいいのでは?
810 :
デフォルトの名無しさん :2006/02/22(水) 13:47:54
>>808 そのソフトはACPIとかのAPIを直接呼んでるんじゃないの?
>>809 調べる前に確認したいのですが,
SMARTはHDDだけでなくCPU温度にも関係あるのでしょうか?
依存しているDLLは以下の通りです.
いずれも基本的なDLLばかりに見えますが
POWRPROF.dllあたりにそういう関数があるのでしょうか?
$ objdump -x mobmeter.exe | grep "DLL Name"
DLL Name: KERNEL32.DLL
DLL Name: ADVAPI32.dll
DLL Name: COMCTL32.dll
DLL Name: GDI32.dll
DLL Name: MSVCRT.dll
DLL Name: POWRPROF.dll
DLL Name: SETUPAPI.dll
DLL Name: SHELL32.dll
DLL Name: USER32.dll
>>810 MobileMeterはACPIを使っているようですが,
これは私の環境ではSMBIOSから読み取るWMIは使えなくて,
ACPIを直接呼ぶ必要があるという理解でよろしいでしょうか?
WindowsでのACPIをいじり方の解説などはないでしょうか?
812 :
pp :2006/02/22(水) 21:37:19
Replace関数でダブルコーテーションと半角スペースの文字列の置き換えができません。 どなたか、知恵をかしてください。初歩的な質問ですいません。
813 :
デフォルトの名無しさん :2006/02/22(水) 21:53:49
""""
814 :
デフォルトの名無しさん :2006/02/23(木) 22:20:52
質問します。 VB6 sp5の環境で開発してるのですが、昨日まで使えてた Right関数が今日になって 「配列がありません」 と、 未定義の配列であるかのようなエラーとともに使えなくなってしまいました。 VSの標準エディタで right と小文字で打って改行すると、 Right と変換されてるし、識別子カラーで表示されているのにです。 ちなみにLeft関数Mid関数は動きますが、 Right$関数だと、「型宣言文字と宣言されたデータ型が一致しません」と エラーになってしまいます。 まったく謎な状態です。 どなたか対処方法を教えて下さい。
一言。 できない奴ほど真っ先に道具を疑う。 VBのバグを疑う前に自分のやってることを疑ってみた?
>>814 なぁに、アフリカではよくある事。
それはそうとして、VB6にはSP6を当てましょうね。
>>814 とりあえずStrings.Rightに改名する
>>816 誰がVBのせいにしてるの?
>>814 標準モジュールでRightという名前の関数を定義していない?
標準関数と同じ名前の関数は作らないほうがいい。
まあ、標準モジュールでRightを定義しても、標準関数を
VBA.Strings.Rightと冗長な正式名で使用する方法もあるけどね。
ちなみに、標準モジュールのRightの正式名は、「標準モジュール名.Right」となる。
馬鹿だな。 814の彼はVBのせいにしてるんだよ。間接的に、ではあれ。 でなきゃこんなところで質問する前にリテラルの文字列でRight$が 正しく動作することを確認するはず。 ついでに言えば、814の彼みたいなのは自分の勘違いに気づいて 問題が解決しても絶対に何もレスしないよ。
なに必死になってんだよw
822 :
デフォルトの名無しさん :2006/02/24(金) 11:25:16
>>814 本当に参照設定がおかしい可能性もあるが、まず100%ソースのどこかにコンパイルエラーがある
モルスァ
>>814 たまになったな。
Windows自体をリブートしたら直ったけど。
825 :
814 :2006/02/24(金) 21:16:33
返事遅れてすいません。 参照設定で、「使用中のコントロールまたは参照を削除することはできません」って 怒られないものを全部外してみたら動くようになりました。 (何故か同じものが複数チェックされてたり謎な状態だった、、、)
参照設定で使用しているライブラリにRight関数が定義されていたのかもね。 そのなぜか同じ物が複数チェックされているのがVB標準ライブラリだったりとか。
>>825 ときどき起こります
参照をはずせない場合はvbpファイルを直接エディタで書き換えたりもします
(,,゚Д゚) ガンガレ!
828 :
デフォルトの名無しさん :2006/02/25(土) 00:48:33
Sleipnirの検索欄に検索したい文字をセットする方法はありますか?
VB6はフォームモジュールから作られるウィンドウのほかに隠しウィンドウが 1個必ず作られて、App.Titleプロパティはこのウィンドウの GetWindowText()を返してるんじゃなかったっけな確か。だから逆に App.TitleでFindWindow()すれば、そのウィンドウのハンドルは取れるよ。 ウィンドウクラスはvbNullStringでも取れるけど、開発環境だと "ThunderMain"でexeだと"ThunderRT6Main"になる。 これで開発環境とexeの区別を付けてもいいかもしれん。
>>830 なんでそんなあやふやな方法で、しかもわざわざAPI使ってやる必要があんのかと
>>831 開発環境と実行環境を区別するプロパティ、何だっけ・・・?
834 :
デフォルトの名無しさん :2006/02/25(土) 11:31:47
ちょっとわかんなくなってしまったので教えてくれませんか? 項目数、INDEXなど全く同一のTblに対し、VBからSQLを発行して検索した場合と SqlPlusから検索した場合とで検索結果が違ってくるのですが、 どなたかこういう現象を見た、とか知っている方いらっしゃいませんか?
どう違うのかぐらい書けよw
836 :
デフォルトの名無しさん :2006/02/25(土) 11:40:10
>>835 件数が違うのです
件数にして5件VB側の方が少ないです。
他のPCではVBでもPlusでも検索結果が同じなのですが...
837 :
デフォルトの名無しさん :2006/02/25(土) 11:49:02
カナからローマ字のヘボン式に変換するソースありますか? 長音oを含む場合母音を重ねないってとこが上手くいきません・・
838 :
831 :2006/02/25(土) 12:38:58
>>832 もともとそんなプロパティは用意されとらんよ
>>833 のEXE名変更は利用者にリネームされたら終わりなのでダメ
GetModuleFileName の方法もEXEをVB6.EXEにリネームされる危険があるんで、
レジストリキーからVB6のインストール先を取得するところまで考慮してなんとか使えるレベル
以下の方法が一番明快、かつ簡単だと思うぞ
Public Function IsIDE() As Boolean
Debug.Assert IDETest(IsIDE)
End Function
Private Function IDETest(ByRef bIsIDE As Boolean) As Long
bIsIDE = True
IDETest = True
End Function
API が使いたくて辛抱溜まらんなら、こういうトリッキーな方法もある
Public Function IsIDE() As Boolean
Debug.Assert lstrcpy(IsIDE, Chr(1))
End Function
839 :
831 :2006/02/25(土) 12:41:43
関数の戻り値の型打ち間違えた まあ分かるか
こういう尊大口調な奴って普段の生活になんか巨大な抑圧でも存在するのかなw まあギャグのつもりかもしれないが、普通の人はそれを「痛々しい」と見るんだよ。 ひとつ大人になったね坊ちゃん。
>>838 何やってるコードかさっぱり分からん・・・
843 :
デフォルトの名無しさん :2006/02/25(土) 14:37:33
XMLHTTPとServerXMLHTTPでは処理速度に関して違いはありますか?
>>844 何で処理速度なんか気にするのか理解出来ない。
例え差があったって、1000億回位ループする中でやるとか以外、
何の問題もないだろうに。
そうじゃない処理を1msや2ms速くしたって何だと言うのか。
847 :
デフォルトの名無しさん :2006/02/25(土) 15:02:17
>>836 OracleのOO4OのどっかのバージョンはFetchにバグがあって、ページまたぎのFetchを取りこぼすとか昔あったな〜
で、DBのバージョンとミドルウェアのバージョンは?
850 :
844 :2006/02/25(土) 17:27:19
>>837 > カナからローマ字のヘボン式に変換するソースありますか?
あるよ。
先に言っておくけど、呉とか言わないでね。
>>838 超有名な手法だね。
2ch以外でも掲示板でこの手の質問が出ると、必ず誰かがコレを書き出す。
まぁ関数名や引数名はちょっと違ったりするけどね。
個人サイトのVB Tipsなんかにも載ってたこと有るし。
853 :
デフォルトの名無しさん :2006/02/25(土) 20:56:23
>>852 長音を含む母音のときどう書くのですか?
促音とかはできたのですが。。
VBから呼び出したIEのサイトのテキストボックスに 文字入力したいんですが・・・テキストボックスの指定の 仕方がわからない。どうやってかいたらいいのか・・・orz わかる方教えてくださいm(_ _)m
>>831 ああごめん、
>>792 を読んだもんだからちょっと思い出してみただけです。
アンカー付け忘れ。IDEとexeうんぬんは余談で。
>>842 Debug.Assertが実行されるかどうかをブール値で返してるの。
あと誰も「API」を「使いたくて」使ってるわけなんかないから、最後の
トリッキーとか言うのは読まなくていい。
>>792 AllWin32.Ocx を使うとか。
>>856 自分自身の Function 名を引数で渡して ByRef bIsIDE As Boolean で受ける、
なんて、よく思い付くな・・・
確かに、関数名の変数に戻り値を設定出来るけど・・・
ったく、世の中には頭の良い人が一杯だ。
ThunderRT6Main で思い出した ThunderRT6Main の「Thunder(サンダー)」はVBの開発プロジェクトコード名 MSのプログラミングツール製品のイベントには雷のアイコンが使われているけど ココから来てるとの事 VB誕生当時、完全なイベント駆動は画期的だったらしく 現在も「サンダー」が名残っています まぁ知ってても役に立たないVB豆知識でした
>>858 一番最初にVBを開発したのはMSじゃぁないんだけど・・・
FindFirstChangeNotificationとWaitForSingleObjectを使った フォルダ監視のプログラムを常駐させています FindFirstChangeNotificationがタイムアウトを返せば関数を再帰呼び出し、 ファイル変更のシグナルを検知すれば処理を行って、また監視継続させます 日中はそれでうまく動いているのですが、深夜・早朝も使うことがあるため、 パソコンをつけっぱなしで放置しています 次の日の朝確認すると、再帰呼び出しのCallのところで 「スタック領域が不足しています」とエラーが出て、止まってしまいます スタックを増やすか再帰呼び出しごとに解放できればいいと思うのですが、 方法がわかりません・・・ VBでは無理なんでしょうか?
>>860 そんな処理になんでリエントリを使う必要があるのよ。
根本的に考え方がおかしい。
再起呼び出しを使ってみたい年頃なのね
>>860 わざわざ API なんか使わなくても Dir$ でいいじゃん。
865 :
860 :2006/02/26(日) 15:25:59
はじめはdo loopとdirでやっていたのですが、 CPU使用率が常に100%になってしまうので 別の方法はないかと、見つけたのが こういうやり方だったんです… どんな考え方をするべきなんでしょうか
単純にFindCloseChangeNotificationを呼んでないとか。 本当にこれに「再帰呼び出し」を使ってたらただの馬鹿だが、 繰り返し呼び出すくらいの意味に勘違いしてるだけだと思うが。
>>868 DoEvents はスタックオーバーフローの温床になるので
使用は極力控えましょう
質問者が馬鹿なら突っ込む方はもっと馬鹿かw タイマなんか使えるわけないだろw 次のインターバルで待機関数呼び出すまでの間にイベントが起こったらどうするんだよw 正攻法にCでdll作ってスレッドでやるのがいいんじゃないの? スレッドでフォルダを監視して、イベントを検出したらフラグを立てる。 VB側ではそのフラグをポーリングすると。 あるいはウィンドウメッセージ送出するとか。
WaitForSingleObjectを使うならスレッドを起こさないとなー しかしVB6では無理だしなー。 まあ、再起呼び出しはアホ過ぎるが
ちとかぶったか
873 :
870 :2006/02/26(日) 15:41:42
ああタイマってのはDir使ってイベントの検出を自前で実装するってことか。。。 スマン、俺が馬鹿だったw
874 :
860 :2006/02/26(日) 15:44:07
>>866 単純に呼んでませんでした…
今日はこれを入れて常駐させて様子見します
ありがとうございました
>>870-871 Cはやったことないです…
馬鹿ですみませんでした
これで失礼します
>>874 VB.NETに乗り換えればそのものずばりのコンポーネントがデフォであるぞよ。
>>874 再起呼び出しをやめないとcloseしても
そのうちスタックオーバーフローは発生するぞ
あれはでもWin9xでは使えんよ
DoEventを使ってもCPU使用率100%を下げるのには役に立たない。 単に画面が張り付くのを回避できるだけ。
>>878 別に使うなとは言わん
Gotoだって使い方を間違えなければ、使えないことはない
俺は間違えない!って考えの人なら、もはや言う言葉は無いがな
CPU使用率を下げるならSleep(1)だな
DoEvents で CPU 使用率上がっても、別に他の操作に影響ないよね。
他の作業で上がった場合、他の操作に影響出るけど。
>>881 通信系とかは、Sleep 使わない方がいいと思う。
883 :
デフォルトの名無しさん :2006/02/26(日) 17:26:31
■VBのバージョン : VB6 カナからローマ字のヘボン式に変換するソースありますか? 長音oを含む場合母音を重ねないってとこが上手くいきません・・ 上記のソースないっすか?
あるよ
>>882 > DoEvents で CPU 使用率上がっても、別に他の操作に影響ないよね。
あるだろ。他の操作に割り当てられるCPUが減る。
他の操作に使用するCPUが少なければ実害は無いかもしれんが、
他の操作に使用するCPUが多ければ、確実にその操作に影響を与える。
>>883 その上手くいかないコードを出せば、修正点を指摘してくれる人は居るかもしれないが
このスレに限らず、コード丸投げソースクレクレはこの板では嫌われてる。
結局それらは努力せずに利益だけ得ようっていう甘ちゃんな考え方だし。
「ものすごく努力したんですが上手くいきません」って、その努力の結果(ソースコード)も出さずに
口先だけで語られても全然説得力無いし
887 :
pp :2006/02/26(日) 18:18:15
テキスト処理で1行ずつ取り出して文字の置き換えをするプログラムで取り出した 文字列が改行のみの場合にその文字列自体をなくすには、どうすればよいでしょうか。 Replace関数で”\n”を””にしてみましたけどだめでした。初心者の私に教えてください。
いや、VBのReplace関数は正規表現サポートしてないんだから、 vbcrlfをvbnullstringにしないと。 RegExpやBREGEXPのReplace関数なら普通は\r\nでしょ。 まあ、\nでいい場合や\rのみの場合もあるので、 改行コードについては自分で調べて適切なもの使いな。 VBの組込定数でもvbcrとかvblfとかあるからさ。
>>885 いや感覚としてサ。
他の作業(例えばスーパーπとか)でCPUが100%になると、
他の作業がカクカクするけど、DoEvents を入れたVBの無限ループで
CPUが100%になっても、大してカクカクしないからサ。サ。
ちょっとVB起動して検証してみてくれるカナ?カナ?
>>887 置き換えるのをやめればいいんじゃね?
一行読む→変換→変換後を書き込む、なら、「変換後を書き込む」をしない。
>>889 DoEventで未処理のWindowメッセージを処理するわけだから
GUIについては「感覚として」重くはならんだろうけど
低プライオリティで動いてるプロセスやCPUの使用率見て動作する省電力機能などに影響は大きいよ。
外注がそんなプログラムをもってきたら即差し戻しだな。
ユーザにとっては感覚が軽いほうがいいんだよ
もしかしてWindows3.1とか使ってないか? メッセージループのアイドルタイムにCPUバウンドな計算をさせるってテクニックがあったのを思い出した。
>>887 Line Input だと LFのみは行区切りとは見なしてくれないの?
そうだとすると、vbCR ( chr(10) ) を "" にリプレースではだめかな。
VBでは¥はエスケープ文字としては使えない。
>>889 カクカクとかそういうアバウトな感覚で答えないでくれないかな。
仮にOS上で優先順位が同じ二つのプロセスしか動いていないとする。
一つはCPU100%使用するアプリ。一つはCPU10%程度ですむアプリ。
OSはこの二つのアプリに50%ずつ割り当てるから、
当然、CPU10%程度ですむアプリは十分なCPUを割り当てられているから
カクカクならない。
これをみただけで結論だしてるでしょ?
一つはCPU100%使用するアプリ。一つはCPU70%必要なアプリ。
こういう場合には、50%しか割り当てられないから、
CPU70%必要なアプリは遅くなるんだよ。
>>893 訂正 vbCR > vbLF
補足すると VBで "\n" にあたるのをCで書くと "\\n" で、つまり見た目どおりの文字列。
897 :
pp :2006/02/26(日) 19:52:22
>>888 >>889 >>893 ありがとうございました。
もともとLine�Input�には改行コードが含まれてないようなので
>>889 さんの意見の通りに
書き込みをしない事にして解決しました。みなさん、貴重な意見ありがとうございました
VBって、確か中間コードにコンパルされるんだよね。 その言語仕様が解説されたサイトを教えて下さい。
>>900 P-CODE?
VB5以降は、とりあえずオブジェクトファイル作られて(そして普通は消される)けど、最終的にはネイティブ
いやP-CODEは…あれはインタプリタだっけ? あんまり使わないからよーわからん
>>854 getElementByIdかgetElementsByNameで取得して代入。
ネットワークカードが2枚刺さってる環境で、Winsockを使用してUDP通信をしています。 ネットワークカードは別セグメントで 1枚目:192.168.10.1 → VBから使用している側 2枚目:192.168.20.1 → ルーターを介して別ネットワークへ といった感じになっています。 この場合、Winsockに「192.168.10.1」側のLANカードを使用する、といった設定は 必要になるのでしょうか? というのも通信が不安定で頻繁に接続が切断されているんです…orz 試しにルーター側のネットワークケーブルを引っこ抜いてみると 通信は安定します。 ルーターの設定が原因かもしれませんのでスレ違いかもしれませんが、 わかる方いらっしゃいましたら教えてくださいm(_ _)m
>>906 IPアドレスとポート番号の指定だから、それは関係ない様な気がするけど・・・
route コマンドとかは?
テキストボックスを選択した部分だけStrConvで変換して 選択部分とキャレットの位置はそのままにしたいのですが テキストを右の方から選択してキャレットが選択位置の 左側にある場合はSel***系のプロパティだけで実装できるでしょうか?
そうやって相手すると馬鹿が居つくよ。 まあ相手されないならされないでこういう奴はされるまで居つくだろうけどw 地縛霊みたいなもんか。
>>908 何がやりたいのかサッパリ理解出来ない・・・
AB[CD]lE ([]=選択範囲 l=キャレット) を AB[cd]lE にして、選択範囲もキャレットも維持したいんだろ。 で、キャレットが選択範囲の左右どちらにあるかで、Sel****で 実現できるかどうか変わると。
>>913 右から左へ反転選択した場合だって実現出来るんじゃないの?
SelText / Mid$ とか使えば、どっちにキャレットがあるから分かるから、
改めて左から右へ反転選択し直すとかして。
単なる文字列処理なんだし。
>>914 キャレット位置の取得/設定プロパティはない。
ええぇぇぇ?
917 :
デフォルトの名無しさん :2006/02/28(火) 15:19:37
>>906 OSは何?98/Meはどうあがいても無理
NT系ならrouteコマンドでちゃんとルーチング設定しろでFA
>>918 ないよ、909と916がアホなだけ
たぶんキャレットと選択範囲の区別すらついてない
>>919 でも、確かに、あってもいいプロパティだよね。
って、今迄に一度も必要になった事はないけど・・・
まー、無いなら無いでいいんじゃない? この先どうなろうと俺らの知ったことじゃないし
GetCaretPosとかの話題をあえて避けてるような空気
ためしにTextBox:Text1をForm:Form1に貼り付けて、次のコードぶち込んで実行し private sub Text1_Change() debug.print Text1.SelStart end sub
>>922 クライアント座標を受け取っても、何文字目かは分からない・・・
EM_LINEINDEXとかの話題をあえて避けてるような空気
>>925 それ、複数行のやつしか使えないんじゃなかったっけ?
何か問題でも?
VBの用語を調べられるサイトってある?
>>922 まーた、試したこともないのに適当なこと抜かすやつが出てきたな
SetCaretPosで見た目上、位置を変更できたように見えるが
VBのテキストボックスが内部でキャレット位置を保持していて
現在の位置を無視するので動作がおかしくなるだけ
>>924 EM_POSFROMCHAR で分かる
933 :
デフォルトの名無しさん :2006/03/01(水) 02:05:15
VB6.0で、テキストボックスに文字を入力できないようにするのは、 KeyPressイベントでKeyCode=0にするまでは解ったのですが、 既に入力されている文字をDELETEキーで削除できてしまいます。 DELETEキーを受け付けないようにしたいのですが、 どのようにすればいいのでしょうか??
>>993 KeyDownイベントで KeyCode = 0
というか、テキストボックスに文字を入力できないようにするなら
Text1.Locked = True でいいんじゃない?
KeyPressやKeyDownでキーコードつぶすのは、
キーによって細かく動作を変えたいような場合にしか使わんよ
Locked
Dim s, l As Integer With Text1 s = .SelStart l = .SelLength .SelText = UCase(.SelText) .SetFocus .SelStart = s .SelLength = l End With
> Dim s, l As Integer > Dim s, l As Integer > Dim s, l As Integer
> Dim s, l As Integer > Dim s, l As Integer > Dim s, l As Integer
940 :
デフォルトの名無しさん :2006/03/01(水) 21:22:09
たとえばテンキーの"+"を押したときにコマンドボタンをクリックさせるのって keydownイベントに if keycode = (107) then commanbutton1.value = true end if じゃだめなんですかねー^^;
941 :
デフォルトの名無しさん :2006/03/01(水) 21:30:40
失礼! commanbutton1→commandbutton1
Callしてやれば同じ事だろ
>>940 Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = &H6B& Then
KeyCode = VBRUN.KeyCodeConstants.vbKeySpace
End If
End Sub
944 :
デフォルトの名無しさん :2006/03/01(水) 21:53:18
いや ビジュアル的に ボタン押してるアニメーションも欲しかったので
>>934 Locked ってXPだとバグあるよね
Locked = True なのにコンテキストメニューからペーストできちゃう
>>946 そんなバグつきのバージョン使ってるやつのことなんかしらね
アップデートできない事情があるならコンテキストメニューも潰せ
WebBrowserで異なるドメインのためアクセスできないフレームのドキュメントにアクセスする方法を教えてください
嫌です
くずが
>>946 VB6はXPで動作保証されてません。
「MSのサイトでは云々」って話は無意味だから。
952 :
948 :2006/03/02(木) 10:34:56
誰かわかる人いませんかー?
いません
>>952 ドメインが違うとアクセス出来ないのは何故?
URLでサイト開くんじゃないの?
>>954 たとえば www2.2ch.net/2ch.html を開いて板一覧のDocumentにアクセスしようとしてもできないです
これを解決する方法を教えてください
>>955 現象が再現する必要最低最小限のコードは?
>>956 Private Sub Form_Load()
WebBrowser1.Navigate "
http://www2.2ch.net/2ch.html "
End Sub
Private Sub Form_Click()
Dim Doc As Object
Set Doc = WebBrowser1.Document.frames(0).Document
End Sub
>>957 With WebBrowser1
Dim Doc As HTMLDocument
Set Doc = .Document.frames(0)
End With
>>958 ありがとう
でも、私の目的とするところは、ちょっと違うんです
そのコードでオブジェクトそのものは取れても、Documentのプロパティにはほとんどアクセスできないんです
具体的には、そのDocumentオブジェクトを使って、板リンクのURLを取得するとか、そういうことを目的としています
「Documentにアクセス」っていう私の説明の仕方が悪かったですね、すみません
>>960 ソースをDLして解析しろってことですよね?
それだと動的な状態が取れないんで、ちょっと困るんです
あくまでもWebBrowserなんで、ブラウザであれこれ操作したいんです
962 :
デフォルトの名無しさん :2006/03/02(木) 17:42:40
NUMLOCKオフった時のテンキーの5キーの定数ってあるんですか? 色々調べたんですがわかんなかったんで
963 :
デフォルトの名無しさん :2006/03/02(木) 17:46:30
>>961 ブラウザの内部状態を知るにはブラウザを作れば良い
>>963 それは要するにWebBrowserでは不可能だということですか?
TDBGridって動的にセルの数を増減できないのかしら。
>>962 つKeyCodeConstants.vbKeyClear
WebBrowserを使っているオブジェクト(つまり自作アプリ)からだと WebBrowserオブジェクト内のほとんどにアクセスできそうだけどな。 フレーム使っているから、その親(つまり2ch.net)のセキュリティが 適用されるのかな? まーあれだ。2chなら、直接ファイル(dat?)を見に行けと。
>>968 ありがとう。
でも、知りたいのはカラム数の増減なの、ごめんね。
>>969 Column の Width を 0 にしたり、Visible を False にすりゃいいじゃん。
>>946 Lockedは2000から貼り付け可能です。
ですから、2000でもVB6アプリは動作保証されないということです。
さて、このスレッドももう次はいらないですよね。
972 :
デフォルトの名無しさん :2006/03/03(金) 00:09:50
必要に一票
>>946 もしかしてSP6で直ってる?割と有名な放置バグだと思っていたんだが再現しない。
次スレイラネ
イヤ イルネ
976 :
デフォルトの名無しさん :2006/03/03(金) 00:31:32
つか作っちゃうよ?
>>971 莫迦発見。2000は完璧にサポート範囲内だ、っての。
Locked が動作しないのは、お前の糞環境だけ。
ただの煽り厨に反応するなよ
979 :
デフォルトの名無しさん :2006/03/03(金) 02:22:19
次スレいるとか言ってるやつはただの教えたがり君だって噂。
質問があれば使うし無ければ消えるからどうもしないよ?
982 :
デフォルトの名無しさん :2006/03/03(金) 03:24:53
継続するべし・・・・・・・・・・・・・・・・・・・・・・
初心者です。作ったものをコンパイル?圧縮?して保存する方法教えてください。 BASICソフト無しの一般PCでソフトをインストールして使えるようにです。
984 :
948 :2006/03/03(金) 08:09:40
>>967 >フレーム使っているから、その親(つまり2ch.net)のセキュリティが適用されるのかな?
そうなんですよね、その辺は承知の上でどうにかしたかったんですけど
WebBrowser 側からすれば、呼び出し元が JavaScript か VB かというような判断はできないのか
一律で JavaScript と同レベルのセキュリティーにされちゃってるんですよね
どうやら、純粋にVBだけでどうにかするのは無理っぽいのでTLBをしこしこ作って
参照設定してからこつこつインターフェースを変換していったら何とかドメインを跨いでアクセスできました
答えてくれた方々ありがとうございました
>>971 SP5 以上で直ってるはずですから、いまだにLockedがおかしいとしたら
大昔のSPしか当てていないか、SPをまったく当てていないからでしょう
下記サイトからSP6を入手してください
http://www.microsoft.com/japan/msdn/vstudio/downloads/sp/order_vs6sp6.asp >>983 一番簡単な方法はディストリビューション ウィザードを使用することです
もっと詳細にインストールをしたい場合は、ディストリビューション ウィザードで
依存ファイル(DEP)を作成して、それを元に Visual Studio Installer を使うとよいです
もしくは、依存ファイルの記述を参考に必要なファイルを集めて
フリーのインストーラ(例えばBegin! Setup 200x)を使えば良いでしょう
input # ステートメントでファイルを読み込んでいくと、勝手に次の行に移動してしまうんですが、 これをレコードセットのように、前の行、後の行と自分で移動させるにはどうしたらいいのでしょう?
>>986 テキストデータソースドライバを使って、
テキストファイルをDBの様にアクセス。
988 :
デフォルトの名無しさん :2006/03/03(金) 23:25:32
ちと、申し訳ない、EXCEL95なんだが、VBAでお尋ねしたいが・・・ VBAの中で、Asc関数(全角カナ文字列を半角カナ文字列)と同様のことをしたい。 やりたいことは、VBAの中での、列の文字検索。 全角カナ文字列を読込み、半角カナ文字列の列を検索してもうまく検索してくれない。 Set foundCell = Worksheets(OUT_S).Columns("N").Find(M_NAM, , xlValues, xlWhole) で、うまくいかず・・・ 変数の M_NAM を半角カナ文字列としたい。 または、検索を出来るようにしたい。 なにか、よいアイデアを、お願いします。
10年前の製品のことが分かる人っているのかなw っていうか、Excel95のマクロってVBだったっけ? StrConvはないのかな。
990 :
デフォルトの名無しさん :2006/03/03(金) 23:59:03
>>988 ジダイオクレ
イイカゲン アプデートシル
991 :
デフォルトの名無しさん :2006/03/04(土) 00:14:58
>>889 その当時はVABっていってたね〜〜
>>990 まあね〜。まあ、ネットもつながってるし、お金もないしでさ〜〜〜〜
どなたか、ココロやさしいかた、パソコンちょ〜〜〜〜だい!!
秋には新しいWindowsも登場するみたいだしさ〜〜〜
mid("アイウエオ”,instr("アイウエオ",c),1)
993 :
デフォルトの名無しさん :2006/03/04(土) 02:55:08
>>992 あ〜、ごめん、ありがとう。
けど、おれの説明の言葉がたりなかった、ゴメン!!
やりたいことは、EXCELのシート内で列を指定しての文字検索をVBAで行いたいのです。
検索したい文字はシート内から読込みで、全角文字です。
検索するのはシートの列で半角文字で対象はあります。
Set foundCell = Worksheets(OUT_S).Columns("N").Find(M_NAM, , xlValues, xlWhole)
でやると、全角と半角文字を区別しちゃって、対象が存在するんですが検索されないので、
全角文字を半角文字にして検索をしたいのです。
6.0で質問です MSChartを使用したプログラムを作ってVBのインストールされていない環境で実行しようとしているのですが そのOCXはofficeに標準で入っているんでしょうか
さっきラーメン食ってきたんだよ
1000だったら処女と結婚出来る
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。