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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ここは Visual Basic 〜6.0 の質問スレです。
質問者は使用しているOS、VBのバージョン、サービスパックのバージョン、
「何がしたくて、どうしたけど、どう困っているのか」を明確に書きましょう。

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

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

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

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

※「まず自分で調べる」クセを身につけよう。
2デフォルトの名無しさん:2012/08/07(火) 16:51:31.61
Part 1 http://piza2.2ch.net/tech/kako/968/968328471.html
Part 2 http://piza2.2ch.net/tech/kako/990/990793224.html
Part 3 http://piza2.2ch.net/tech/kako/1000/10005/1000523122.html
Part 4 http://pc.2ch.net/tech/kako/1006/10069/1006922992.html
Part 5 http://pc.2ch.net/tech/kako/1010/10106/1010624646.html
Part 6 http://pc.2ch.net/tech/kako/1013/10138/1013844542.html
Part 7 http://pc.2ch.net/tech/kako/1015/10158/1015836357.html
Part 8 http://pc.2ch.net/tech/kako/1018/10187/1018794901.html
Part 9 http://pc.2ch.net/tech/kako/1020/10208/1020830472.html
Part10 http://pc.2ch.net/tech/kako/1022/10221/1022127528.html
Part11 http://pc.2ch.net/tech/kako/1024/10243/1024380249.html
Part12 http://pc3.2ch.net/tech/kako/1026/10266/1026642565.html
Part13 http://pc3.2ch.net/tech/kako/1029/10292/1029241786.html
Part14 http://pc3.2ch.net/tech/kako/1030/10309/1030947162.html
Part15 http://pc3.2ch.net/tech/kako/1032/10327/1032706491.html
Part16 http://pc3.2ch.net/tech/kako/1034/10343/1034302532.html
Part17 http://pc3.2ch.net/tech/kako/1036/10361/1036154952.html
Part18 http://pc3.2ch.net/tech/kako/1038/10381/1038103769.html
Part19 http://pc3.2ch.net/tech/kako/1039/10398/1039859691.html
Part20 http://pc2.2ch.net/tech/kako/1041/10418/1041879465.html
Part21 http://pc2.2ch.net/tech/kako/1044/10440/1044028945.html
Part22 http://pc2.2ch.net/tech/kako/1046/10463/1046354784.html
Part23 http://pc2.2ch.net/tech/kako/1047/10477/1047743187.html
Part24 http://pc2.2ch.net/tech/kako/1050/10501/1050151126.html
Part25 http://pc2.2ch.net/tech/kako/1052/10526/1052627913.html
Part26 http://pc2.2ch.net/tech/kako/1055/10551/1055145106.html
Part27 http://pc2.2ch.net/tech/kako/1058/10586/1058674927.html
Part28 http://pc2.2ch.net/tech/kako/1061/10612/1061296197.html
Part29 http://pc2.2ch.net/tech/kako/1065/10654/1065446334.html
3デフォルトの名無しさん:2012/08/07(火) 16:51:45.65
Part30 http://pc2.2ch.net/test/read.cgi/tech/1069160036/
Part31 http://pc2.2ch.net/test/read.cgi/tech/1073732636/
Part32 http://pc5.2ch.net/test/read.cgi/tech/1077216109/
Part33 http://pc5.2ch.net/test/read.cgi/tech/1080606445/
Part34 http://pc5.2ch.net/test/read.cgi/tech/1084544243/
Part35 http://pc5.2ch.net/test/read.cgi/tech/1087519251/
Part36 http://pc5.2ch.net/test/read.cgi/tech/1092906058/
Part37 http://pc5.2ch.net/test/read.cgi/tech/1090286450/
Part38 http://pc5.2ch.net/test/read.cgi/tech/1095673000/
Part39 http://pc5.2ch.net/test/read.cgi/tech/1099737063/
Part40 http://pc5.2ch.net/test/read.cgi/tech/1106748775/
Part41 http://pc8.2ch.net/test/read.cgi/tech/1112414085/
Part42 http://pc8.2ch.net/test/read.cgi/tech/1116924129/
Part43 http://pc8.2ch.net/test/read.cgi/tech/1123952677/
Part44 http://pc8.2ch.net/test/read.cgi/tech/1130231657/
Part45 http://pc8.2ch.net/test/read.cgi/tech/1133977286/
Part46 http://pc8.2ch.net/test/read.cgi/tech/1138975113/
Part47 http://pc8.2ch.net/test/read.cgi/tech/1141320612/
Part48 http://pc8.2ch.net/test/read.cgi/tech/1146678926/
Part49 http://pc8.2ch.net/test/read.cgi/tech/1152667953/
Part50 http://pc10.2ch.net/test/read.cgi/tech/1161517193/
Part51 http://pc11.2ch.net/test/read.cgi/tech/1169949451/
Part52 http://pc11.2ch.net/test/read.cgi/tech/1179563617/
Part53 http://pc11.2ch.net/test/read.cgi/tech/1187667616/
Part54 http://pc11.2ch.net/test/read.cgi/tech/1204552981/
Part55 http://pc12.2ch.net/test/read.cgi/tech/1247487156/
Part56 http://hibari.2ch.net/test/read.cgi/tech/1275397597/
Part57 http://toro.2ch.net/test/read.cgi/tech/1304095827/
Part58 http://toro.2ch.net/test/read.cgi/tech/1328782534/
4デフォルトの名無しさん:2012/08/07(火) 16:52:01.55
以上、テンプレ。
5デフォルトの名無しさん:2012/08/10(金) 16:06:56.36
多少、誰か書かないと、スレが落ちるよ
6デフォルトの名無しさん:2012/08/10(金) 16:48:08.84
このスレなんて、最終書き込みが2010/09/17なんだけど…。

WebObjects 質問スレ
http://toro.2ch.net/test/read.cgi/tech/1081712840/

この板で保守する必要なんてあるの?
7デフォルトの名無しさん:2012/08/10(金) 16:50:47.47
ここって即死ってないの?
あるなら即死判定分は伸ばさないと…
8デフォルトの名無しさん:2012/08/10(金) 17:07:15.66
スレが進んでる所はおちないけど、書き込みが少ないスレは落ちるんだよな
まあ、落ちるって事はいらないって事かもしれないが
9デフォルトの名無しさん:2012/08/10(金) 17:38:22.17
前スレのHotだった話題:
* 使ったオブジェクトはNothingを代入しないとメモリリークするよ!(ほんとか?)
* メールスロット簡単(はよコード書け)
* MicrosoftのTCP/IPコンポーネント使えねー(じゃお前は使うな)
10デフォルトの名無しさん:2012/08/10(金) 17:39:20.45
TCP/IPコンポーネントじゃなくて、Winsockコントロールか。
11デフォルトの名無しさん:2012/08/10(金) 22:14:21.13
104 : デフォルトの名無しさん : 2012/08/04(土) 09:27:15.86
老兵は死なず
(p)ttp://msdn.microsoft.com/ja-jp/magazine/jj133813.aspx

Visual Basic 6 が今でも成功している理由
(p)ttp://msdn.microsoft.com/ja-jp/magazine/jj133828.aspx

Visual Basic 6 がリリースされたのは 1998 年なので、Visual Basic 6 アプリケーションは
少なくとも 24 年にわたってサポートされることになります。
Windows 7 (2009 年) と互換性がない Microsoft .NET Framework 1.0 (2002 年) とは対照的です。
12デフォルトの名無しさん:2012/08/11(土) 00:08:15.55
Win7starterにVB6IDE(LE)をインスコしたんだが
コンポーネントにコモンダイアログコントロール(SP6)を追加できないエラーが出る
他にもいくつかエラーが出て追加できない
(XPでは問題なく追加できてたのに)
13デフォルトの名無しさん:2012/08/11(土) 00:13:06.58
インスコとか書くなよ、バカにしか見えない。
14デフォルトの名無しさん:2012/08/11(土) 00:18:41.56
遠回しにバカは書き込むなという意味です
15デフォルトの名無しさん:2012/08/11(土) 11:58:16.08
泣けるぜ…
16デフォルトの名無しさん:2012/08/11(土) 16:33:15.45
コンポーネントの追加とかやめた方がいいよね
色々バグあるし他の環境で使う時に面倒だし
ダイアログならAPIで作っておいた方が
17デフォルトの名無しさん:2012/08/11(土) 16:48:15.20
そんな事ならいっそVB6つかわなきゃいいのに
18デフォルトの名無しさん:2012/08/11(土) 16:58:35.66
メールスロットはコードは簡単だよね
ネットワーク設定さえしておけば
あとサービスもいったかな
19デフォルトの名無しさん:2012/08/12(日) 03:07:43.89
有料のFlexGrid使ってるアプリ、どーせいっちゅうんじゃ
20デフォルトの名無しさん:2012/08/12(日) 16:47:58.30
あるリストを表示して、そのリストの中から選んで詳細表示をする
といった単純なプログラムです。

・リストの上にコンボボックスを配置して、複数あるリストのデータ元を選択します
・リストの右に縦スクロールバーを配置して、マウスホイールでリストをスクロールさせます

細かくは、他にも色々とコントロールが乗っていて設定画面やらなんやらありますが
基本は上記の動作をするものです
21デフォルトの名無しさん:2012/08/12(日) 17:31:29.06
>>20は自己解決しました

問題は、コンボボックスにフォーカスがあたると
コンボボックスがマウスホイールイベントを先に取ってしまい、メッセージフックできない

それを解決するには、コンボボックスが選択され、その処理をした後に
スクロールバーをSetfocusする以外に方法がないかということだったのですが
Private Sub Combo1_Click()
  処理
  SendKeys "{TAB}"
End Sub
でいけました
22デフォルトの名無しさん:2012/08/14(火) 13:58:26.80
>>13
そもそも、ここはVB6もろくに書けないバカが集うスレだろ。
23デフォルトの名無しさん:2012/08/14(火) 22:12:39.16
質問してみなさい
24デフォルトの名無しさん:2012/08/16(木) 18:57:25.19
>>9
ボタンコントロールにグラデュエーションを付けるって話題も入れてあげてよ。
俺が質問して、実際に頂いたコードで書いて納品住んでるんだからさ。
25デフォルトの名無しさん:2012/08/16(木) 19:01:11.46
目下の質問

リストコントロールで一行ごとに背景色や文字色を変更する事ってやっぱりできないの?
26デフォルトの名無しさん:2012/08/16(木) 20:14:26.10
>>25
サブクラス化を使えば可能だが、このスレには出来るスキルを持ってる人は来ないと思われ。
27デフォルトの名無しさん:2012/08/16(木) 20:20:56.90
>>25
オーナードローでも可能っぽい。でもメッセージフックが必要だし面倒だぞ。
無難なのはListViewとかTreeViewを使う事かな。
28デフォルトの名無しさん:2012/08/16(木) 20:30:08.93
それはどうかな。
29デフォルトの名無しさん:2012/08/16(木) 20:32:50.82
まーた何も具体的なソリューションを提供できないクズどもが騒ぎ始めたw
30デフォルトの名無しさん:2012/08/16(木) 20:43:43.71
サブクラス化というのはLerningEditionではできなさそうな雰囲気
31デフォルトの名無しさん:2012/08/16(木) 20:50:54.41
>>30
LEと決めつけるのは良くない
32デフォルトの名無しさん:2012/08/16(木) 20:52:24.73
メッセージフック期間中にブレークポイントで停止するとVB6特有の楽しい出来事が起こるw
33デフォルトの名無しさん:2012/08/16(木) 22:31:59.78
>>32
C:ドライブが消えました。どうしてくれますか?
34デフォルトの名無しさん:2012/08/16(木) 23:23:32.66
特にIDEで実行・デバック中はメッセージフックを使わないようにしないとね
35デフォルトの名無しさん:2012/08/16(木) 23:39:54.46
マジでCドライブがふっとぶの?それ怖いんだけど
どうやってデバグすんのよ
36デフォルトの名無しさん:2012/08/16(木) 23:59:04.18
サブクラス化がわからんので調べてみた
これのことでおk?

Visual Basicの限界を広げるサブクラス化の手法
http://pcdn.int21.co.jp/pcdn/vb/noriolib/vbmag/9802/subc/
37デフォルトの名無しさん:2012/08/17(金) 09:32:46.36
>>35
>どうやってデバグすんのよ

命がけでどうぞ
38デフォルトの名無しさん:2012/08/17(金) 13:23:26.39
ADOでOracleにアクセスしてるんですが
CLOB型のデータの取得が
rs.Fields(0).Value
で取得できているのですが、これでいいのでしょうか?
readとかしないといけなかったような気がするのですが。
39デフォルトの名無しさん:2012/08/17(金) 13:25:07.15
>>38
カーソルはどうなってるの?
40デフォルトの名無しさん:2012/08/17(金) 13:34:59.91
>>39
カーソルは3です。
41デフォルトの名無しさん:2012/08/17(金) 14:01:46.18
>>40
エッチな奴だな。性的カーソルかよ?
静的カーソルなら当然の結果でしょ?
2にしたらReadしないと無理と思われ。
42デフォルトの名無しさん:2012/08/17(金) 14:17:02.48
>>41
カーソルが性的だとReadしなくてもいいんですね。
勉強になりました。ありがとう。
43デフォルトの名無しさん:2012/08/18(土) 13:58:33.26

 静的過疎る
44デフォルトの名無しさん:2012/08/19(日) 16:15:01.21
何もかも朝鮮人が悪い
45デフォルトの名無しさん:2012/08/20(月) 09:59:31.31
最近は怖くて香港通販も利用できない。
中国から輸入されている食品は一切食べない。
食費が高くつくようになった。
46デフォルトの名無しさん:2012/08/21(火) 05:29:57.41
Private Sub Form_Load()
100 '
200 GoTo 400
300 Debug.Print "300"
400 Debug.Print "400"
End Sub
47デフォルトの名無しさん:2012/08/24(金) 07:57:30.50
ピクチャボックスにAVIファイルを表示させるのにMCIコマンドでやってるのだけど
ピクチャボックスの大きさを変えて、表示する映像のザイズを合わせるのは
"put ALIAS destination at 0 0 W H"
これで縮小はできるのに拡大ができないのは何でだろう
48デフォルトの名無しさん:2012/08/24(金) 09:14:30.90
>>47
単純にストレッチすればいいのでは?アスペクト比は無視だが。
49デフォルトの名無しさん:2012/08/24(金) 15:34:19.20
>>48
単純にストレッチの意味がわかりません

オーバレイモードなら拡大・縮小はできるのだけど
ピクチャボックスの位置で再生する場合は拡大ができない・・・
50デフォルトの名無しさん:2012/08/24(金) 15:45:33.39
何故、今時AVIなのかは、今時VB6のスレだからいいとして
過疎ってるみたいだし興味ある人はやってみないかな
flvやmpegやmp4をAVIに変換すればスロー再生・コマ送り・逆再生も自由自在。
おっぱいが揺れてるシーンだけをスローで繰り返し再生もプログラム次第

宣言は
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
使い方は
sndstringに>>47のようなコマンドを羅列して
Dim rtnstr As String * 256
rtn& = mciSendString(sndstring, rtnstr, 256, 0)
こんだけ
51デフォルトの名無しさん:2012/08/24(金) 16:21:38.08
まずはおっぱいが揺れてるAVIをうpしてからだな
52デフォルトの名無しさん:2012/08/25(土) 08:03:01.67
再生ボタン
Private Sub Command1_Click()
Dim rtnstr As String * 256
mciSendString "open C:\OPPAI.AVI alias ERO style child parent " + CStr(Picture1.hwnd), rtnstr
, 256, 0
End Sub
ファイル名が8文字を超える場合は短いファイル名に変換する必要あり
再生した動画に”ERO”という名前を付けて、以後この名前で各種制御をする

停止ボタン
Private Sub Command2_Click()
Dim rtnstr As String * 256
mciSendString "close ERO" , rtnstr, 256, 0
End Sub
53デフォルトの名無しさん:2012/08/25(土) 08:25:59.21
フォームリサイズ
Private Sub Form_Resize()
  Dim rtnstr As String * 256
  Picture1.Width = Me.Width - Picture1.Left -10
  Picture1.Height = Me.Height - Picture1.top -30
  '↑実際はGetSystemMetricsで枠幅等を取得するけど、取り合えずはこれでいいでしょう
  mciSendString "put ERO destination at 0 0" + Str(Picture1.Width) + Str(Picture1.Height), rtnstr, 256, 0
End Sub

ウィンドウの大きさに合わせてピクチャボックスの大きさが変わり、
そのピクチャボックスの大きさに合わせて映像の大きさが変わるはずなのだけど
元のサイズより小さくはなるけど、大きくならないのは何故か?
54デフォルトの名無しさん:2012/08/25(土) 08:34:23.17
ソースは以上です
Picture1とボタンを二つフォームに貼り付けて

>>50の宣言文と
>>52 Command1_Click、Command2_Click
>>53 Form_Resize

AVIファイルはC:\WINDOWS\clock.aviとかを使ってください
55デフォルトの名無しさん:2012/08/25(土) 08:46:46.80
>>53
Str(Picture1.Width) + Str(Picture1.Height)は単位がピクセルかも

自分のプログラムはスケールモードを全部ピクセルに設定してるので
デフォルトのTwipなら
Str(Picture1.Width \ Screen.TwipsPerPixelX)
+ Str(Picture1.Height \ Screen.TwipsPerPixelY)
56デフォルトの名無しさん:2012/08/25(土) 08:48:36.75
>>55
プロジェクトごとZIPで固めてアップローダーに上げた方が回答が早く来るよ
57デフォルトの名無しさん:2012/08/26(日) 18:49:16.45
1回でコピペできるようにまとめました
openの後のplayが抜けてたので追加しましたすいません
Dim rtnstr As String * 256
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Private Sub Command1_Click()
  mciSendString "open C:\WINDOWS\clock.avi alias TOKEI style child parent " + CStr(Picture1.hwnd), rtnstr, 256, 0
  mciSendString "play TOKEI window", rtnstr, 256, 0
End Sub
Private Sub Command2_Click()
  mciSendString "close TOKEI" , rtnstr, 256, 0
End Sub
Private Sub Form_Resize()
  Picture1.Width = Me.Width - Picture1.Left -10*Screen.TwipsPerPixelX
  Picture1.Height = Me.Height - Picture1.top -30*Screen.TwipsPerPixelY
  mciSendString "put TOKEI destination at 0 0" + Str(Picture1.Width \ Screen.TwipsPerPixelX) + Str(Picture1.Height \ Screen.TwipsPerPixelY), rtnstr, 256, 0
End Sub
58デフォルトの名無しさん:2012/08/26(日) 21:31:45.97
つべのダウンローダー、このサイトに教えてもらってできますた
今日一日かかった
ttp://par
osky.ne
t/wor
dpres
s/?p=993
59デフォルトの名無しさん:2012/08/26(日) 21:34:35.13
ふざけてんのか
60デフォルトの名無しさん:2012/08/27(月) 01:06:11.01
VB6からgzipファイルってどうやって扱うの?おすすめのライブラリとかある?
61デフォルトの名無しさん:2012/08/27(月) 03:50:16.02
ggrks
62デフォルトの名無しさん:2012/08/27(月) 12:14:19.95
>>60
XCEED
63デフォルトの名無しさん:2012/08/27(月) 22:53:13.99
>>58のロジックじゃ既に対応できないつべソースがあるんだね
イタチごっこになるからこそ自分で作らなきゃいけない
64デフォルトの名無しさん:2012/08/28(火) 07:56:58.03
VB6 でアクセスのデータを取り込んでいます。
AdocdとDataGridをフォームに貼り付けてデータを表示させるところまでは
成功しました。
これで,ある特定の列のデータすべてを配列変数に取り込みたいのですが
うまくいきません。
DataGridのrowを増やしていくと,表示しているところをこえると「不正な
行番号」となって停止してしまいます。どうすればよいのでしょうか?
65デフォルトの名無しさん:2012/08/28(火) 11:29:03.14
行数をあらかじめ調べておいて、そこまでしかrowを増やさない
66デフォルトの名無しさん:2012/08/28(火) 12:27:05.43
仮想表モードでなくリアル表モードにする
67デフォルトの名無しさん:2012/08/28(火) 12:59:45.71
>>65
質問に書いたとおり,列の一番下までのデータを読み込みたいので,
rowを増やさなければ意味がないのです。
>>66
リアル表モードって何ですか?
68デフォルトの名無しさん:2012/08/28(火) 13:10:18.83
>>64
SQLを発行して、Recordset使えば良いんじゃないの?
69デフォルトの名無しさん:2012/08/28(火) 16:39:32.83
>>67
表示を高速にするために、見えている部分だけを更新し
見えてない部分はスクロールして見えるようになったときに更新させるのが仮想表モード。
データ全部分が書き込まれるまでずっと待たなければならないのがリアル表モード。
初歩的なことだよね?
70デフォルトの名無しさん:2012/08/28(火) 19:18:18.67
>>69
ありがとうございます。
初歩的なこともわかっていないものですみません。
このモードの切り替えってどうやるのでしょうか。
71デフォルトの名無しさん:2012/08/28(火) 19:26:11.63
エクセルでも行数に制限があるよね
>>69氏の言う通り、全部読む必要はない
取り合えず20行表示させればよい
そんで横にスクロールバーを配置して、必要な部分を表示するようにする
全部読むとか非実用的&初心者的発想
72デフォルトの名無しさん:2012/08/28(火) 20:39:04.34
>>71
初心者的発送ですみませんが,質問に書いたとおり,表示させるのが目的ではなく,
全データを配列に読み込むことが目的なので,20行表示させたり,スクロールバー
は意味がありません。ちなみに表示は一切されなくていいのです。
73デフォルトの名無しさん:2012/08/28(火) 20:58:08.12
68が答え
74デフォルトの名無しさん:2012/08/28(火) 21:07:02.86
ええっ?
じゃあDataGridとか関係ない話で
メモリ上の配列に読めばいいだけでは
配列の大きさが判らなかったら大きさを宣言しないで
読みながらReDim Preserveで配列をどんどん大きくすればいいだよ
75デフォルトの名無しさん:2012/08/28(火) 23:41:09.56
正直な話、質問者の説明不足で的確な答えが返ってきてないだけだと思う
76デフォルトの名無しさん:2012/08/29(水) 09:24:42.68
良く思うんだが、クライアントと話もまとめられない
コミュニケーション能力に欠けるプログラマーって
潰しきかないよなって。
77デフォルトの名無しさん:2012/08/29(水) 18:47:37.14
小さいピクチャにアイコンを表示させて
それをクリックしたらあるサイトを開くようにしてる
ClickイベントであるURLを開くようにしてる訳だ
ところがそのURLを他アプリケーションにドラッグ&ドロップで送る必要がでてきた
そこでピクチャのOLEDragModeを自動にしてOLEStartDragイベントでURLをvbCFTextでData.SetDataした
それで送れたものの、今度はClickイベントが発生しなくなってしまった
なるほどOLEDragModeを自動にするとClick、MouseDown、MouseUpイベントは発生しなくなるのだ
そこでピクチャのOLEDragModeを手動にしてMouseDown、MouseMoveでクリックなのか
ドラッグなのかを判定してドラッグしてると判定したら手動でOLEDragしてOLEStartDragイベントを発生させることにした
そのクリックなのかドラッグなのかを判定する部分が微妙なので何かスマートな方法はないかな
78デフォルトの名無しさん:2012/08/29(水) 18:52:27.74
>>72
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset

Set con = 〜
  'New して接続文字列を設定

Call con.Open

Dim sql As String:  sql = cleateSql()
  'sql = "select 〜"
  '必要なSQL文を作成

Set rs = con.Execute(sql)
  'この段階でSQL文で要求したデータがrsに入ってる

Do while Not rs.EOF
  'データ取得処理。Collectionに入れるなり、Redim Preserveしながら配列に入れるなり
  'オススメはいったんCollectionに入れてから、配列に入れなおす。 Preserveでの配列拡張が嫌
  '全件取得ならRecordset主体の方法よりこの方法が高速。
  '
  Call rs.moveNext 'これを入れてないとループ終わらないよ
Loop

Call rs.Close
Call con.Close

http://www.geocities.jp/cbc_vbnet/ADO/recordset.html#cnnection
ここの03な。
7978:2012/08/29(水) 19:05:30.13
>>72
尚、データベースからデータを取得する時は、私の場合、
必ずValueObjectを作成して、それに入れてます。

例えば学生の氏名を管理するマスタがあるとして
カラムが学籍番号、氏名、登録日だったとして
以下のようなクラスモジュールを作成します。
Recordsetから読み込んだ値は、こういうクラスに入れて
Collectionとか配列で持たせます。


Private personNo As String    '学籍番号(PK)
Private personName As String  '氏名
Private hiduke As Date       '登録日


'アクセッサの例( これはPropertyにしても良い )
Public Sub setHiduke(hiduke_ As Date)
  hiduke = hiduke_
End Sub
Public Function getHiduke() As Date
  Set getHiduke = hiduke
End Function
'アクセッサ以下略
80デフォルトの名無しさん:2012/08/29(水) 19:44:37.25
>>77
MouseDownした場所とDragDropした場所が同じコントロールだった場合はClickと同じ処理をしてやればいいだろ?
頭使えやカス!!!

しかしこの場合にMouseDownした時点でDragアイコンが表示されてしまうのでちょっとみっともない。
そこで、現在表示されているマウスアイコンを取得して、そのアイコンをMouseDown時にDragアイコンと入れ替えようとしたが
取得したアイコンをピクチャに描画してビットマップにしてしまうと透明度が無くなる。
イメージリストとか駆使して色々やったが結局気持ち悪いアイコンしかできずに断念したことがある。
アイコンハンドルをそのままDragアイコンに代入する方法でもあれば可能なのだろうが、まあ無理だ罠。
81デフォルトの名無しさん:2012/08/29(水) 19:46:44.19
>>78
なんかいらない所にCall付けたがる人ハッケーーン!!!!
82デフォルトの名無しさん:2012/08/29(水) 19:56:32.95


  ミスター コールマン!!!
83デフォルトの名無しさん:2012/08/29(水) 23:34:23.06
>>79
ヒデュークって何かと思ったら日付だったw
84デフォルトの名無しさん:2012/08/30(木) 00:10:28.78
デューク...更家...
85デフォルトの名無しさん:2012/08/30(木) 00:23:37.75
東郷
86デフォルトの名無しさん:2012/08/30(木) 00:26:58.39
スペースサンダー!
87デフォルトの名無しさん:2012/08/30(木) 04:26:04.10
>>80
受け側のOLEDragDropイベントにコードを書かなきゃいけないんだな
悪いけどMouseMoveイベントでのマウスが押されながら動いたかどうか判定でいくわ

MouseDownした時点でDragアイコンが表示されてしまうのでちょっとみっともない
の部分の意味が判らん
クリック操作の僅か0.1秒の間にDragアイコンが表示されたとして
それはみっともないというより、ここからドラッグ操作もできるんだと
ユーザーに知らせるのにむしろ都合いいのでは
88デフォルトの名無しさん:2012/08/30(木) 08:53:29.89
utf-8のデコードにnkf32.dll使ってるんだけど
ADOストリームオブジェクトの方がよいの?
89デフォルトの名無しさん:2012/08/30(木) 11:56:56.17
>>87
>クリック操作の僅か0.1秒の間にDragアイコンが表示されたとして
>それはみっともないというより、ここからドラッグ操作もできるんだと
>ユーザーに知らせるのにむしろ都合いいのでは

実際実装してから言ってくれないかな?
クリック操作でマウスボタンを押している時間は意外に長い。
ドラッグアイコンが出てクリックするという違和感ははっきり言ってきもい。
俺も机上ではイケルと思ったが実際の動きを見て愕然とした。
しかしその仕様で納品してクライアントには喜ばれたけどな。
嬉しい誤算だ。
90デフォルトの名無しさん:2012/08/30(木) 12:08:57.57
そうか、なら尚更おれのやり方の方がいいな
マウスを押したまま動かさない限りドラッグアイコンは出ない
91デフォルトの名無しさん:2012/08/30(木) 12:13:22.00
>>90
普通動くよ。そして一度表示されたら超ウザく感じる。残念。
92デフォルトの名無しさん:2012/08/30(木) 13:02:42.14
今、コード書いて試してみたら
ボタンが押されたままMouseMoveイベントが3回以上連続して発生したら
ドラッグアイコンを表示するようにしたらイケた。
93デフォルトの名無しさん:2012/08/30(木) 13:21:23.16
>>92
DragModeになったらMouseMoveイベントは発生しないよ?
94デフォルトの名無しさん:2012/08/30(木) 19:24:07.88
OLEDragModeプロパティが自動になってるとMouseイベントが発生しなくなる
なので手動=0にして、これはドラッグなのだなと判断したところで手動でOLEStartDragイベントを発生させるんだよ
95デフォルトの名無しさん:2012/08/30(木) 19:28:23.92
>>88
140000文字をutf-8→s-jis変換させたところ
ADOは30msec、NKFは15msecかかった
ただし2回目からどちらも15msecだた
96デフォルトの名無しさん:2012/08/30(木) 19:54:31.75
それって読む側のキャッシュが効いたからじゃないのかと
97デフォルトの名無しさん:2012/08/30(木) 22:35:20.18
>>94
手動でも同じで、ドラッグモードに入ればマウスイベントは発生しない。

何言っちゃってるの?
98デフォルトの名無しさん:2012/08/30(木) 22:37:03.73
>>95
15ミリセカンドで処理が終わるはずねーだろ?

タワケがwwww
99デフォルトの名無しさん:2012/08/30(木) 22:50:55.45
どんな測定やったか書かないとね
15.6msくらいの分解能なら17msでも約30msって出ちゃうし
100デフォルトの名無しさん:2012/08/30(木) 23:02:51.82
14万文字なら15秒ってとこだろ
101デフォルトの名無しさん:2012/08/31(金) 00:38:58.12
1文字あたりかもしれんぞ
102デフォルトの名無しさん:2012/08/31(金) 01:07:59.61
必至だなwww
103デフォルトの名無しさん:2012/08/31(金) 01:22:38.49
>>98
おいそこのタワケ
Gettickcountの単位は何だよ
あ、16ビットマシン使用か
104デフォルトの名無しさん:2012/08/31(金) 01:28:16.55
処理時間の測定はGettickcountでやるだろ普通

Timerイベントでなるべく正確に1秒周期で動かしたいときなんか
Timerイベント中の処理時間を測定して
1000-(イベント処理に要したmsec)をintervalに再設定したりするだろ
しないか、まぁそんなロジックは嫌だがな
105デフォルトの名無しさん:2012/08/31(金) 01:38:30.86
Youtubeのソース見てみ
それが14万文字
Youtubeの画面を開く時に14万文字のutf-8をブラウザがs-jisに変換してる
15秒もかかるマシンてどんだけオンボロなんだか
106デフォルトの名無しさん:2012/08/31(金) 01:43:38.00
1.5秒か
107デフォルトの名無しさん:2012/08/31(金) 03:28:48.16
URLDownloadToFileの進捗表示ってVBじゃ無理なんだ?
Type byte8
  byt(7) As Byte
End Type
Public Sub test()
  URLDownloadToFile 0, Form1!Text1, "r:\test.dat", 0, AddressOf StatusCallback
End Sub
Function StatusCallback(Progress As byte8, ProgressMax As byte8, StatusCode As byte8, ByVal StatusText$) As Long
  StatusCallback = 1
Exit Function
108デフォルトの名無しさん:2012/08/31(金) 03:31:13.60
Winsockでしこしこ受信しながら表示するしかないか
109デフォルトの名無しさん:2012/08/31(金) 09:18:33.87
>>104
バカかお前????
ミリセカンドが悪いなんて誰もいってねーよ。
15ミリセカンドで14万文字UTF8→S-JIS変換ができるPCって
どこのスーパーコンピューターなんですかって言ってるんだぜ?アホかよ????
110デフォルトの名無しさん:2012/08/31(金) 09:43:53.89
>>109
何いきりたってんだよ
ばーか
UTF-8ったら一般的にはネット上のhtmlだ
サンプルに取得したhtml14万文字では確かに15msだ
お前が検証したデータと内容が違うってことだ
何でいちいち変な方向から気違いみたいに突っかかってくるかな
頭イカれちゃってるのか?
ADOとNKFがほぼ同じ処理スピードだって話だ
役立たずのクズ野郎が
111デフォルトの名無しさん:2012/08/31(金) 11:09:40.97
>>109
俺のセレロンでも7msだったよ
112デフォルトの名無しさん:2012/08/31(金) 12:41:21.28
まぁHTMLソースなんて大半が半角の英数字記号だからな
113デフォルトの名無しさん:2012/08/31(金) 13:00:42.81
QueryPerformanceCounter÷QueryPerformanceFrequency
114デフォルトの名無しさん:2012/08/31(金) 15:23:10.76
>>112
いや、半角だろうが14万字の変換が15msは有り得ないよ。

バカかアホだろ?
115デフォルトの名無しさん:2012/08/31(金) 15:33:52.86
>>114
ん、そんなもんじゃないの?

$ file *
aaa.txt: UTF-8 Unicode text, with very long lines, with CRLF, LF line terminators

$ ls -l
-rw-rw-r-- 1 hoge hoge 369494 8月 29 17:07 2012 aaa.txt

$ time nkf -e aaa.txt > bbb.txt

real 0m0.035s
user 0m0.029s
sys 0m0.006s

$ file *
aaa.txt: UTF-8 Unicode text, with very long lines, with CRLF, LF line terminators
bbb.txt: ISO-8859 text, with very long lines, with CRLF, LF line terminators
116111:2012/08/31(金) 15:34:11.31
>>114
何を根拠にそんなこといっちゃってんの? 確認したらすぐにわかるじゃん
117デフォルトの名無しさん:2012/08/31(金) 15:35:08.76
あ、SJISか。

$ time nkf -s aaa.txt > bbb.txt

real 0m0.038s
user 0m0.029s
sys 0m0.010s

あんまかわらん。
118デフォルトの名無しさん:2012/08/31(金) 15:42:50.72
VBで1文字ずつループして、独自変換した自分のコードの実行時間からして、
想像を超えるパフォーマンスだったんだろう。
119デフォルトの名無しさん:2012/08/31(金) 15:46:33.49
2GHzのシングルCPUで、10msで2000万クロックだからな。
かなりのことができるぜ。
120デフォルトの名無しさん:2012/08/31(金) 17:00:48.75
変換なんてバイトコードを変換テーブルに従って書き換えるだけっしょ
しかも半角英数、いわゆるアスキー文字はutf-8もSJISも同じで変換は生じないわけだし
ほんの少数の日本語文字を変換するだけで終わるんだから
大した時間もかからんだろ
121デフォルトの名無しさん:2012/08/31(金) 17:11:08.82
ほぼ日本語文字でも同じくらいだよ。

夏目漱石の坊ちゃん(SJIS)
bocchan.txt: Non-ISO extended-ASCII text, with very long lines, with CRLF, NEL line terminators
-rw-rw-r-- 1 hoge hoge 209990 5月 20 23:31 2011 bocchan.txt

$ time nkf -w bocchan.txt > utf8.txt

real 0m0.027s
user 0m0.021s
sys 0m0.007s

$ time nkf -s utf8.txt > sjis.txt

real 0m0.034s
user 0m0.031s
sys 0m0.003s
122デフォルトの名無しさん:2012/08/31(金) 17:12:57.36
なんでさっきからunixのシェル風なの?
123デフォルトの名無しさん:2012/08/31(金) 17:14:31.89
ん?時間測りやすいからUnixのシェルでやってる。
Windowsでnkf.dllだかを使っても、そんなかわらんでしょ。
124デフォルトの名無しさん:2012/08/31(金) 17:15:18.31
VB6でLinuxを作る方法を教えてください!!
http://toro.2ch.net/test/read.cgi/tech/1282147489/
125デフォルトの名無しさん:2012/08/31(金) 17:23:59.89
UnixとWindowsでは同じ処理を同じアルゴリズムで組んでやれば同じだけの速度が実現できます
126デフォルトの名無しさん:2012/08/31(金) 17:37:22.36
もう、めんどくさいなぁ。

> timeit nkf -w bocchan.txt > utf8.txt

Version Number: Windows NT 5.1 (Build 2600)
Exit Time: 5:36 pm, Friday, August 31 2012
Elapsed Time: 0:00:00.078
Process Time: 0:00:00.078
System Calls: 1355
Context Switches: 413
Page Faults: 463
Bytes Read: 215136
Bytes Written: 314342
Bytes Other: 150502
127デフォルトの名無しさん:2012/08/31(金) 17:46:59.81
おまえさん偉いなあ
わざわざ
128デフォルトの名無しさん:2012/08/31(金) 18:11:58.32
そして、ソースが14万字であることを永遠に証明できないたわけ者なのであったwwww

無理すんなw
129デフォルトの名無しさん:2012/08/31(金) 18:22:41.38
さすがの俺様も、>>128が何を欲しているのかさっぱりわかりません。
130デフォルトの名無しさん:2012/08/31(金) 23:15:58.29
取りあえず>>128のPCが、Pentiumの66MHzなんだろ?
131デフォルトの名無しさん:2012/08/31(金) 23:27:35.44
ここに粘着してる気違いのために、もう一度検証したら
どなたか付き合って頂いてたようでご苦労さまでした
この気違いを以下「タワケ」と呼び、どのような検証をしたのか問い詰めます

>タワケ
まさか検証もせずに想像で人様をバカ呼ばわりしてんじゃないだろな
俺が興味あるのはお前の計時方法だ
教えろよ

じゃ、同じソースを使うぞ
http://www.youtube.com/watch?v=ZK28ZKbKAic
これをURLDownloadToFile等でutf-8のテキストを取得する
ブラウザで開いて保存じゃないからな、あれは既に変換済みだから
これもutf-8→s-jisは15msecだった
変換後文字数は147982文字だ
じゃ、次はお前の番だ
132デフォルトの名無しさん:2012/09/01(土) 08:07:36.84
タワケはよ
133デフォルトの名無しさん:2012/09/01(土) 08:13:23.55
普通なら、オレがやったらXX秒かかったけど
それ、どうやったの?
とか言うのに、タワケときたら頭ごなしにバカ、カス呼ばわりだもの
タワケの社会性の無さは目を見張るものがある

バカなくせにプログラムなんぞ組まされて一度発狂してるのだろう
こんなとこにいないで早く病院に行けばいいのに
134デフォルトの名無しさん:2012/09/01(土) 08:22:25.68
しかし、タワケなんて言葉を使うのはかなりの年寄りだな
気がふれて社会性もない孤独な年寄りのタワケはどうやって生きてるのだろう
135デフォルトの名無しさん:2012/09/01(土) 09:02:07.47
「戯け」が年寄りとか日本語知らないだけじゃないの?
なんだか必死だなぁw
136デフォルトの名無しさん:2012/09/01(土) 16:45:29.04
僅か15msで14万文字UTF8変換?寝言は寝て言えよwwww
137デフォルトの名無しさん:2012/09/01(土) 16:50:52.89
14万文字と言ったら一文字3バイトとして
42万バイト。420,000。たったの420KBだ。

高速SSDで500MB/sでるとして、
1秒あれば、5MB。
100msあれば、500KB読み込み可能

あとはわかるな?
138デフォルトの名無しさん:2012/09/01(土) 16:52:51.66
変換なんだからHDDの読み書き時間は含めなくていいだろう。
キャッシュがきくかどうかで大きく変わるから
HDDのことは忘れて、メモリに入っているデータを
処理する時間のみを見るべきだ。
139デフォルトの名無しさん:2012/09/01(土) 17:22:21.29
>>138
あらあら、急に弱気になってしまってw

無理もないよね。
140デフォルトの名無しさん:2012/09/01(土) 17:24:06.16
>>139
俺、このスレに久々に書き込んだんだけど、
誰かと勘違いしてるだろw
141デフォルトの名無しさん:2012/09/01(土) 17:26:13.78
仮に最高性能のCore i7CPUの1次キャッシュ及び二次キャッシュに全変換前データと変換後データが入る前提でも
14万文字へんかんを15msでやって退けることは到底無理だろう。ただしこれはVB6でという話ね。
C++でアンマネージコードでの変換なら計算上十分可能でしょう。
142デフォルトの名無しさん:2012/09/01(土) 17:27:39.65
>>141
VB6だってスカラー型変数だけの使用ならC++に匹敵するコードを吐くよ。
ループの内側でString型とか使ったらJavaより遅くなるけどそれでもPerlよりは速い。
143デフォルトの名無しさん:2012/09/01(土) 17:28:39.81
14万文字と書いてるから多いように感じるが、

For i = 0 To 140000
 
Next i

たったこれだけのループだぞ。
何秒で終わるよ。
144デフォルトの名無しさん:2012/09/01(土) 17:31:37.63
UTF8がVBでネイティブに対応しておらず、
可変長文字列だからバイト配列に入れることになるだろうね。

そしてバイト配列に入れるところは、ディスク読み込みになるけど
ディスク読み込み時間は到底15msには収まらない。
だからこの時間は省いて考えていいのだろう。

あとはその配列を処理していくことになる。
145デフォルトの名無しさん:2012/09/01(土) 17:34:26.47
>>143
ループの内側を書けないのは突っ込み所満載だからだろうな。

>>144
ディスクのアクセス時間を除外するなんて前提だと非現実的な話になってしまう。
元々が一回目と2回目の速度が変わったという提起なのだから。

現実を目の当たりにして少しびびって来てない?
146デフォルトの名無しさん:2012/09/01(土) 17:39:18.82
CPUが2Ghzだとして、
2,000,000,000 クロック/s。 15msだと
.  30,000,000 クロック/s。
    140,000 文字

もちろん、1文字(3バイト)を1クロックで終わらせることは出来ないよ。
でもねぇ。200 クロックもあれば終わるでしょ?

データをルックアップして、
新しい領域にコピーするだけなんだから。

この程度の量であればI/Oのほうが
ボトルネックになる。
147デフォルトの名無しさん:2012/09/01(土) 17:43:08.04
>>144
> ディスクのアクセス時間を除外するなんて前提だと非現実的な話になってしまう。
> 元々が一回目と2回目の速度が変わったという提起なのだから。

一回目と二回目の速度が変わったのは
二回目はデータがキャッシュされて
ディスクアクセスがなくなったからでしょ?

ディスクアクセスの時間は500MB/sの高速SSDでも
15msで75KBしか読み込めない。

データが14万件であれば420KBになるわけで84msはかかる。

HDDなら100MB/s程度だから、84msの5倍で420msはかかる計算になる。
148デフォルトの名無しさん:2012/09/01(土) 17:56:09.82
変換自体は単純なループと配列へのアクセスしか無いから
この程度ならVBでもネイティブになる。
149デフォルトの名無しさん:2012/09/01(土) 18:12:50.96
とりあえず>>95が検証したコード出せばいいんじゃね
あとはそれぞれの環境で実証してみればいい

個人的には具体的な環境を書かないのに具体的な数字を出す>>95は信じられん
150111:2012/09/01(土) 18:39:36.99
>>149
コードくらい自分で書けよ
151デフォルトの名無しさん:2012/09/01(土) 18:42:53.02
コードを書くのはいいが
マッピングテーブルを作るのが面倒だ。

データくれ。
速度を考えるとバイト配列そのままの
形式になっていて欲しいんだが。
152デフォルトの名無しさん:2012/09/01(土) 18:44:18.57
Unicodeと非Unicodeの相互変換は
順番がランダムに並んでいるから
計算ではもとめられないんだよね。
153111:2012/09/01(土) 18:48:57.42
>>151
いや何言ってんだお前、ADO使えよ
154デフォルトの名無しさん:2012/09/01(土) 19:30:50.45
>>153
ADOを使った瞬間、14万文字変換/15ms神話は一瞬にして崩壊する。

しかし、机上計算でも無理の物をどうやって実装でこなすのかな?
VB6ってマルチスレッドできたっけ?
155デフォルトの名無しさん:2012/09/01(土) 19:34:30.71
理論上はマッピングで高速処理可能だからって事なのだろうけど
VB6はバイト配列の操作でも1回だけ空のOLEコールが介在するからな。
これが14万回ループするだけで3秒はゆうにかかるでしょうな。
156デフォルトの名無しさん:2012/09/01(土) 19:35:01.83
> VB6はバイト配列の操作でも1回だけ空のOLEコールが介在するからな。

しないよ。
バイナリに変換してみ。
普通にメモリアクセスだけで終わってる。
157デフォルトの名無しさん:2012/09/01(土) 19:37:28.71
>>154
タワケは机上計算で反論してたのかよ
しかもマルチスレッドでタイマー動かして時間計測するつもりか
超初心者じゃねーか
なんなんだよ偉そうに
158デフォルトの名無しさん:2012/09/01(土) 19:42:18.00
"空のOLEコール" で検索

"空のOLEコール"との一致はありません。


頑張って違和感を感じないと思われる言葉を作ったんだろうなw
だがそんな言葉はない。そんな処理も行われない。

行われるというのなら、空のOLEコールとはなんで
どんなことを行うのか説明してみろ。
159デフォルトの名無しさん:2012/09/01(土) 19:53:00.49
変換テーブルをメモリ上にロードするだけで15msかかりそうな気がする
160デフォルトの名無しさん:2012/09/01(土) 19:55:48.24
ファイルからのロードがどれくらいかかるかは
>>147で指摘済み。

15msは大きくこえるのはHDD/SSDの速度から明らかなので
今はキャッシュが有効になってメモリからのロード状態になっているのが前提。
161デフォルトの名無しさん:2012/09/01(土) 19:59:13.74
■タワケの特徴
・検証もせずに罵声を浴びせて反論
・わずか7行の文字コード変換プログラムが書けない
・時間の測定方法すら知らないド素人

■タワケの暴言
>>96
>15ミリセカンドで処理が終わるはずねーだろ?
>タワケがwwww
>>109
>バカかお前????
>どこのスーパーコンピューターなんですかって言ってるんだぜ?アホかよ????
>>114
>いや、半角だろうが14万字の変換が15msは有り得ないよ。
>バカかアホだろ?
>>128
>そして、ソースが14万字であることを永遠に証明できないたわけ者なのであったwwww
>無理すんなw
>>136
>僅か15msで14万文字UTF8変換?寝言は寝て言えよwwww
162デフォルトの名無しさん:2012/09/01(土) 20:07:22.52
単純変換だけでCore i7 3GHz のDell PCで889msかかった。

Option Explicit
Dim u8sjis(140000) As Integer

Private Function intSjis(u8 As Long) As Integer
  intSjis = u8sjis(u8)
End Function

Private Sub MousouTest()
  Dim sjis As Integer
  For i = 0 To 14000 - 1
    sjis = intSjus(i)
  Next
End Sub



163デフォルトの名無しさん:2012/09/01(土) 20:09:21.46
>>162
1/10の1万4000回でもそんなにかかるもんなんだな。
14万回だったらその10倍かかるということ?
164デフォルトの名無しさん:2012/09/01(土) 20:10:11.13
>>163
単純にミスだろ?
165デフォルトの名無しさん:2012/09/01(土) 20:10:43.41
タワケが自分で検証して「何秒かかりました」と報告すれば済むものを
気違いのように吠えまくる
生きてる価値が全くない、早く土に帰れ
166デフォルトの名無しさん:2012/09/01(土) 20:11:59.36
15msというのは計測ミスっただけだろ。
167デフォルトの名無しさん:2012/09/01(土) 20:13:33.10
>>163
すまん。ケアレスミスだったorz
140000に修正したら9431msかかった
168デフォルトの名無しさん:2012/09/01(土) 20:14:06.08
>>162
ちゃんとexe作ってやらやれよ。
でないとコンパイルされないだろ。
169デフォルトの名無しさん:2012/09/01(土) 20:16:38.14
>>162
話の流れを全く読まずにレスするけど、なんかいかにもVBerっぽいコードだなそれ。

何で配列をそのまま渡さずに要素を列挙して一つづつ渡すんだよw
っていうか、VBは引数をデフォでは参照渡しすること知らないのかな。
せめて値で渡せって。
170デフォルトの名無しさん:2012/09/01(土) 20:21:16.47
>>162
キタ━━━━━(`・ω・´)━━━━━ !!!

これがタワケの検証コード??
じゃあ、今までのADOストリームオブジェクトとかNKFとか
何のことか知らずに首突っ込んできたんだ
171デフォルトの名無しさん:2012/09/01(土) 20:22:48.50
>>169
いや、それ以前に今回の場合関数呼び出しをする必要がない。

簡単なビット演算を行なって1〜4バイト(昔は6バイト)を合成し
配列のインデックス値として使うだけだから。
172デフォルトの名無しさん:2012/09/01(土) 20:31:29.99
>>118
正解キタ━━━━━(`・ω・´)━━━━━ !!!


あかん、目眩がしてきた
気違いタワケに付き合ってる場合じゃないわ
173デフォルトの名無しさん:2012/09/01(土) 21:17:04.04
VB6使いは必死になると怖いねw
174デフォルトの名無しさん:2012/09/01(土) 21:43:47.47
>>173
何しに来たの?
175デフォルトの名無しさん:2012/09/01(土) 23:48:49.97
気違いタワケは最初、ちょっと乱暴だがそういうノリの奴なんだと思ってた
しかし実態は何も知らないド素人!!!!
お前、邪魔だから早く死ね
176デフォルトの名無しさん:2012/09/02(日) 00:12:02.87
>>155
空のOLEコールワロタw
ナノ純銀除染みたいなもんかwww
177デフォルトの名無しさん:2012/09/02(日) 01:20:55.48
>>162
変換はADOストリームかnkf.dllを使う前提なわけだが

気になったからADOストリームで実験してみた
153,211 バイトのUTF-8のファイルを変換して150,017 バイト
所要時間が、ファイルの読み書き含めて2回目以降で200ms弱

Core2Duo E6550の仮想マシンでこのスピードだから
15msで14万文字は早いマシンなら行けるかもしれん
178デフォルトの名無しさん:2012/09/02(日) 02:00:03.92
仮想マシンはI/O、つまりディスクが遅い。
179デフォルトの名無しさん:2012/09/02(日) 02:01:44.85
>>177
バーチャルPC?ハンデありすぎでしょう
書き込み時間まで変換時間に含めたら
プリンター出力時間も含めなあかんとか言い出す奴が出てきそう
180デフォルトの名無しさん:2012/09/02(日) 02:33:03.48
この15msを唱えてる人も人間としてちょっと???なところがあるねww

ほほえましいVB6信者共がよwww
181デフォルトの名無しさん:2012/09/02(日) 02:33:49.87
ADOよくわかんないけど
こんなかんじ?


Dim d As Byte(140000)
Dim r

Dim a As New ADODB.Stream
Dim b As New ADODB.Stream
a.Open
a.Type = adTypeBinary
b.Open
b.Type = adTypeText
b.Charset = "Shift_JIS"

a.Write d
a.Position = 0
a.Type = adTypeText
a.Charset = "UTF-8"
b.WriteText = a.ReadText()

b.Position = 0
b.Type = adTypeBinary
r = b.Read()

a.Close
b.Close
Set a = Nothing
Set b = Nothing
182デフォルトの名無しさん:2012/09/02(日) 02:45:56.59
>>180
だから何しに来たの?w
183デフォルトの名無しさん:2012/09/02(日) 11:18:48.26
>>180
唱えてるってか?
20行程度のコードをちょこっと書いて検証すればいいだけなのに
検証もせずに↓だぞ。早く検証して謝罪しろ
>15ミリセカンドで処理が終わるはずねーだろ?
>タワケがwwww
>バカかお前????
>どこのスーパーコンピューターなんですかって言ってるんだぜ?アホかよ????
>いや、半角だろうが14万字の変換が15msは有り得ないよ。
>バカかアホだろ?
>そして、ソースが14万字であることを永遠に証明できないたわけ者なのであったwwww
>無理すんなw
>僅か15msで14万文字UTF8変換?寝言は寝て言えよwwww
184デフォルトの名無しさん:2012/09/02(日) 11:35:10.43
スレチですが、ADOとNKFで吐き出す文字コードに違う場合があって
調べたところ、ADOの場合、存在しない文字だと"?"を出力します
具体的にはUTF-8のBOMという、本来先頭にあるべきコードが中に散りばめられているソースがあって
そうなると"?"が入り込んで使い物にならないことが判明
NKFはそれを無視してくれるのでNKFにすることにしました
気違いタワケが早く死にますように。
185177:2012/09/02(日) 11:45:02.41
>>178
2回目以降はどうせキャッシュに入るだろうって前提
ちなみにファイルは別マシンのRAMディスクをネットワーク共有で読み書き

>>179
仮想化はVirtualPCじゃなくてHyper-vな
ほかの仮想マシンは全部止めてあるからそれほどのハンデはないと思う


ま、15msで終わったってやつは、ソースと環境さらしてほしいが
今時のマシンで10倍性能差がでるなら買い替え検討するわ
186デフォルトの名無しさん:2012/09/02(日) 12:02:36.11
>>185
この場合、サンプルコード晒さなきゃ、証明にゃならんないと思われるな

しかも検証条件を後から出してたら検証にもなってない
187177:2012/09/02(日) 13:08:32.94
>>186
ソースってのはソースコード、つまりプログラムのことな
検証条件はソース見れば解るだろう
どんな環境で、どんなプログラムのどこからどこの処理時間が15msか知りたいんだよ

まさか実測せずに適当な数字を言ったわけじゃないだろう
188デフォルトの名無しさん:2012/09/02(日) 14:08:16.47
>>185
> 2回目以降はどうせキャッシュに入るだろうって前提
> ちなみにファイルは別マシンのRAMディスクをネットワーク共有で読み書き
仮想マシンではそうはいかない。
マシン自体はメモリのつもりでも、
ディスクに書き込まれていることもある。

それと、仮想マシンは時間の精度がよくない。
時間がずれることすらある。
そんなもんで、msレベルの計測はできない。
189デフォルトの名無しさん:2012/09/02(日) 14:09:39.17
>>187
すげぇな...
自分のサンプルコードは晒さず、相手のサンプルコードは要求するんだ
190デフォルトの名無しさん:2012/09/02(日) 14:50:49.10
>>187
上の方を見直してきた
相手にソースを要求するのは良いが...それって、ちょっと恥かしいと思うぞ...

>>115,>>117,>>121,>>126の検証で十分だろ?
どこかおかしい点でもあるのかい?
191デフォルトの名無しさん:2012/09/02(日) 15:40:46.78
コードうんぬんより、どんなマシン、環境でその速度なのか知りたいが
192デフォルトの名無しさん:2012/09/02(日) 15:46:57.37
>>191
自分で試せばいいんでない?
少なくとも、>>121,>>126については、テストデータも含めて全て入手可能みたいだし
193デフォルトの名無しさん:2012/09/03(月) 08:44:05.57
すごいだろ!俺って15msだぜぇー!
すごいだろ!俺って15msだぜぇー!
すごいだろ!俺って15msだぜぇー!
すごいだろ!俺って15msだぜぇー!
すごいだろ!俺って15msだぜぇー!

これも可能みたいだし
194デフォルトの名無しさん:2012/09/03(月) 09:00:49.26
タワケと言った俺が来ましたよ?
なんかすごい事になってますなぁ
まさに

      タワケ がwww
195デフォルトの名無しさん:2012/09/03(月) 11:40:21.45
誰も突っ込んでないので、念のため突っ込んでおく。

>>147
> ディスクアクセスの時間は500MB/sの高速SSDでも
> 15msで75KBしか読み込めない。

15msで読み込めるのは、7.5MBです。

> データが14万件であれば420KBになるわけで84msはかかる。

1msで読める量は500KB。よって、420KBは1ms未満で読める。
420KBを読むのに84msもかかるなら、1000msだと5,000KBしか読めないことになるよ(5MB/s)。

> HDDなら100MB/s程度だから、84msの5倍で420msはかかる計算になる。

100MB/sなら、1msで読める量は100KB。
よって、420KBは4〜5msで読める。
196デフォルトの名無しさん:2012/09/03(月) 11:42:14.94
ひょっとして、1MB=1000KBってことを知らないのか、1sec=1000msってことを知らない人なのかな。
197デフォルトの名無しさん:2012/09/03(月) 12:22:35.34
ディスク読み込み時間を含めることも
含めるかどうか議論することも
板違いだから、出て行け。
198デフォルトの名無しさん:2012/09/03(月) 12:55:47.14
>>191
MacBook Pro(Core2 Duo 2.26GHz, HDD, 8GB)上のParallels7上のCentOS 6.3(2MB割り当て)と
Athron 64 X2 5600+ 3GBのWindows XP, Intel SSDで計測。

自分で試すのが早いよ。坊ちゃんは青空文庫から入手可能。

あと、Windowsでnkf.exeを使ったのは失敗だった。nkf32.exeを使うべきだった。
199デフォルトの名無しさん:2012/09/03(月) 13:06:20.03
何が問題になってるか、まじでわからん。

UTF-8で14万字程度の文字列を、SJISに変換するのに15msくらいしかかからないというのは
ありえない、っていう主張なのか?
さらに、VBでは無理で、nkfだって無理だっていう主張なの?
200デフォルトの名無しさん:2012/09/03(月) 13:08:52.92
nkf32.dllは、変換関数をexportしてんだから、その呼び出し前と後で時刻計測するだけだろ
はよやれ
201デフォルトの名無しさん:2012/09/03(月) 13:27:02.23
>>199
基地の外の人が一人暴れてるだけだから、無視してOK
202デフォルトの名無しさん:2012/09/03(月) 15:33:31.00
>>199
タワケと言ったオイラがやってきましたよ?

VB6での実装である以上、15msは絶対不可能です。
EXEにすると速くなるとかそんなレベルの話じゃないですわwww
203デフォルトの名無しさん:2012/09/03(月) 15:43:49.43
もう飽きたから次の話題に行かない?
204デフォルトの名無しさん:2012/09/03(月) 16:08:20.07
>>202
なんでnkfとか使わないの?
宗教的理由?
205デフォルトの名無しさん:2012/09/03(月) 18:12:47.82
これ?

nkf Network Kanji Filter プロジェクト日本語トップページ - SourceForge.JP
http://sourceforge.jp/projects/nkf/

nkf Win32版の詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/win95/util/se031296.html
206デフォルトの名無しさん:2012/09/03(月) 18:14:06.75
nkf.exe nkf32.dll Windows用の詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/win95/util/se295331.html

こっちか
207デフォルトの名無しさん:2012/09/03(月) 20:15:44.30
>>202
ADOはVB6で実装されてはいないと思うし
nkfもVB6では実装されていないと思うが
VBがやるとこはnkfなりADOなりを呼び出すだけだろ
15msが不可能かどうかは知らん。計って出来たって人がいるから出来たんだろ
208デフォルトの名無しさん:2012/09/03(月) 20:40:41.28
>>207
>ADOはVB6で実装されてはいないと思うし

バカ

実装の意味が分かってない
209デフォルトの名無しさん:2012/09/03(月) 20:50:25.00
おらバカなんでわからんなぁ
君の言う実装の意味を教えてくれないか
210デフォルトの名無しさん:2012/09/03(月) 21:27:17.59
タワケはまだ作れてないのか
一体、何日かかってんだ、どんだけ低能なんだよ
常識は無いわ、知能は低いわ、気はふれてるわ
生きてるだけで周囲にどんだけ迷惑かけてるか考えろ
211デフォルトの名無しさん:2012/09/03(月) 21:35:18.39
14万文字は少ない。
よってVB6でも15msもあれば終わる。
ということか。
212デフォルトの名無しさん:2012/09/03(月) 22:52:37.97
>>198
  SetNkfOption "sx"
  NkfConvert 出力バイト配列, 入力バイト配列 '入力バイト配列末尾はNullのこと

たった2行ですのにね
213デフォルトの名無しさん:2012/09/04(火) 09:25:02.16
タワケは未だに検証も謝罪もしねーのか
とんでもねー野郎だ
ド素人タワケにゃ判らんだろうがプログラム作る人間は寝食忘れてデバッグするもんだ
お前がこのスレのバグなんだよ
お前をデバッグしたい
裁判所か警察経由でプロバイダに個人情報の開示要求して家に乗り込んでやろうか
214デフォルトの名無しさん:2012/09/04(火) 09:35:05.84
個人情報の開示要求
 理由:お前をデバッグしたい


なんだそれ
215デフォルトの名無しさん:2012/09/04(火) 13:31:48.91
macbookでvb・・・?
216デフォルトの名無しさん:2012/09/04(火) 13:33:57.39
15msで出来ないって喚いてる奴は自分で試そうともせず

また

検証結果を晒してる奴はVBを介さない結果しかよこさない


何この不毛スレ
217桃白白:2012/09/04(火) 14:26:37.77
>>216
つまり桃白白の出番というわけか。ちょっとまってろ目薬差してくる。
218デフォルトの名無しさん:2012/09/04(火) 14:56:00.23
面白そうだからVBScriptでやって見た...

S = Timer

Set IStream = CreateObject("ADODB.Stream")
Set OStream = CreateObject("ADODB.Stream")

IStream.Charset = "Shift-JIS"
OStream.Charset = "UTF-8"

IStream.Open
OStream.Open

IStream.LoadFromFile "bocchan.txt"
IStream.CopyTo OStream

OStream.SaveToFile "bocchan-copy.txt", 2

IStream.Close
OStream.Close

E = Timer

MsgBox E - S

Core2 Quad Q8400でOSはXP SP3ざんす
初回は300ms付近だけど、2回目以降なら15.625msだったよん
キャッシュに乗ったら、15.625msだったねぇ
219デフォルトの名無しさん:2012/09/04(火) 15:27:16.98
たかだか数百KBの文字コード変換が数十msのオーダーで終わるはずないと思ってる人は、
100MBのファイルのmd5sumを計算するのに、どれくらいかかると思ってるのだろうか。
220デフォルトの名無しさん:2012/09/04(火) 15:33:15.35
>>219
あの手の人は、>>218の結果で0.625msオーバーしている事を取り上げて、15msでは終わってないとか言い張るからねぇ...
221桃白白:2012/09/04(火) 16:01:23.17
>>218
乙、目薬差してる間に終わってた
222デフォルトの名無しさん:2012/09/04(火) 17:46:40.03
>>221
VBAスレ帰れよ
223デフォルトの名無しさん:2012/09/04(火) 23:35:12.48
15msでできるとかデータ捏造してる自演君

毎日乙
224デフォルトの名無しさん:2012/09/05(水) 08:52:06.37
数字が出たら捏造という。答えを封じる最高にバカな方法の一つだな。
225デフォルトの名無しさん:2012/09/05(水) 09:24:35.30
つ、15msとか詳細条件提示せずに言い放った無責任な子供が問題なだけだろ?
アカデミックにつられるのもいいが、大人としては悲しいね。
226デフォルトの名無しさん:2012/09/05(水) 10:08:24.36
>>225
>>223が大人に見えるんだ...へぇ...
227デフォルトの名無しさん:2012/09/05(水) 11:48:45.63
15msの言いだしっぺは引っ込みがつかなくなった?
228デフォルトの名無しさん:2012/09/05(水) 23:52:18.26
■ここまでのまとめ■
(´・ω・`)<文字コード変換は、ADOとNKFどっちがいいにょ?
(  ^ω^) <両方やってみたお!14万文字でどっちも15msかかったお!
<丶`∀´><15ミリセカンドで処理が終わるはずねーだろ?
<丶`∀´><タワケがwwww

(´・ω・`)<タワケは何秒かかったん?
<丶`∀´><バカかお前????
<丶`∀´><どこのスーパーコンピューターなんですかって言ってるんだぜ?アホかよ????

(´・ω・`)<タワケは検証しないで言ってるん?
<丶`∀´><いや、半角だろうが14万字の変換が15msは有り得ないよ。
<丶`∀´><バカかアホだろ?

(´・ω・`)<タワケはADOとかNKF知らないん?
<丶`∀´><そして、ソースが14万字であることを永遠に証明できないたわけ者なのであったwwww
<丶`∀´><無理すんなw

(´・ω・`)<タワケはプログラム作れないん?
<丶`∀´><僅か15msで14万文字UTF8変換?寝言は寝て言えよwwww
229デフォルトの名無しさん:2012/09/06(木) 01:09:55.41
>>218
これ、うちの環境(Core2Duo E8400)でやっても2回目は15.625msだった
VBSのタイマー制度の限界がこの数字でホントはもっと早いかも
230デフォルトの名無しさん:2012/09/06(木) 01:25:43.25
なんでおまえらのPCそんなにハイスペックなんだよ・・・俺なんて10年前のPCを現役でまだ使ってるというのに・・・
231デフォルトの名無しさん:2012/09/06(木) 01:39:50.88
10年前じゃあるまいし、いまどき数万で当時の数十倍の速度のPCが買えるのに
数十倍じゃきかないか?なんにせよ捗るぞ
232デフォルトの名無しさん:2012/09/06(木) 01:54:08.15
てことは何か
おまえらみんなwin7に古いvbインストールして使ってるってことなの?
233デフォルトの名無しさん:2012/09/06(木) 02:07:27.12
VirtualPCだよ
234デフォルトの名無しさん:2012/09/06(木) 06:29:50.39
>>230
10年前のPCがまだ動いてるなんてすごいな。

>>232
悪いことは言わないから今すぐ Windows 7 Pro(←ここ重要) が入ったパソコンを買うんだ。
今なら仮想マシン用XPライセンスがついてくる。急げ。間に合わんぞ。
金に余裕があるならUltimateを買え。仮想マシン用XPライセンスが4つついてくる。

そして一応、1,200円でWindows 8 アップグレードを買っておけ。今年中にな。

今使ってるXPも3,000円くらいでWindows 8 アップグレードが買えるから買っておけ。
これも仮想で使うことが出来るから無駄にはならんぞ。
235デフォルトの名無しさん:2012/09/06(木) 06:32:16.07
ちなみに仮想マシンを使う場合、CPUは Core i5 がおすすめ。

i7 はコスパも熱効率も悪い。
i3 はVT機能が一部削られてる。
セレロン?仮想マシン使うのにそんなごみ買うな。
236デフォルトの名無しさん:2012/09/06(木) 13:23:34.41
Core i5なんて一番中途半端なものをすすめるなアホwwww

237デフォルトの名無しさん:2012/09/06(木) 14:00:15.49
>>236
仮想が前提じゃないなら Core i3 で十分と思うけど
バージョンアップするたびに仮想化ソフトの要求はアップしてる。
Windows 8 は付属のHyper-VがVT-xを要求するんで、どうせならVT-dにも対応しておいたほうがいい。

Core i7 でもVT-dに対応してないのがあるみたいだけど
Ivy Bridge ならCore i5 でもVT-dだけじゃなくTXTにも全種対応してる。


モバイル向け Ivy Bridge はまだないんだな。
238デフォルトの名無しさん:2012/09/07(金) 10:14:21.15
>>237
ダブルグリスバーガーがそんなに美味しいのかい?
マクドナルドで\100で売ってるならまだしも
Windows 8程度ならCore i7の最上位で問題無いだろ。
239デフォルトの名無しさん:2012/09/08(土) 06:04:06.32
最下位で問題ないのだから、
最上位で問題ないのは当たり前だと思うが?
240デフォルトの名無しさん:2012/09/08(土) 20:23:26.51
熱放散に優れる最下位の方がマシンが長寿命
上位は下位のすべての性能を上回っていない
241デフォルトの名無しさん:2012/09/08(土) 22:07:23.25
金がないならしゃあない
242デフォルトの名無しさん:2012/09/09(日) 01:36:39.23
放散はCPUのパッケージが同じなら差はないんじゃね
発熱が少ないだけで

結果長持ちするのかどうかはしらんが。CPUが寿命で壊れたなんて話は聞いたことがないし
243デフォルトの名無しさん:2012/09/10(月) 01:05:53.63
なぜ朝鮮人が不気味に見えるのか、それはちょっと不思議に思っていた
その理由が、もしかしたら判ったかも知れない。
終戦直後、敗戦に打ちひしがれている中、
日本軍の武器を持った朝鮮人に襲われたご先祖様。
日本経済の7割も奪ったというから、朝鮮進駐軍は虱潰しに襲っていたことだろう
白昼堂々と殺人・強姦・略奪が行われ、どれほど無念であったろうか
そのご先祖様の無念の念がとり憑いているのだと、ふと感じた
韓流などとんでもない、仇をとらねばならない立場にいることを忘れてはならない
244デフォルトの名無しさん:2012/09/10(月) 10:38:52.58
北朝鮮ではVB6が大流行なんだって
遅れてると言えばそれまでだが
.netを使わないのは頭が弱いからか?
245 ◆InstallVb6 :2012/09/11(火) 07:22:28.44
トリップ
246デフォルトの名無しさん:2012/09/11(火) 12:54:43.33
ハードがしょぼいからだろう
247デフォルトの名無しさん:2012/09/13(木) 08:56:30.89
>>246
スゲー洞察力。感服しましたm(_ _)m
248デフォルトの名無しさん:2012/09/13(木) 19:41:03.73
なんかVB6の新バージョンが出るみたいね。
.netでないVBだけどクラス対応とか言語仕様ではVBnetにかなり近づけているとか。
一旦VB6ユーザーを引っ張って.netに落とす戦略なのだろうが
アンマネージコードを吐くVBnetなら使ってやってもいい。
249デフォルトの名無しさん:2012/09/13(木) 19:53:32.95
>>248
クラス対応は元々だが…
継承が使えるようになるのかな?
250デフォルトの名無しさん:2012/09/13(木) 19:58:37.90
あれはインタフェース継承でなく実装継承が可能なクラスって意味だろうな。
一応クラス仕様はVB.netに限りなく近づけているそうだから
フレームワークを使わないってだけでVB.netに近いものになるだろうね。
OLEオートメーションは相変わらずバリバリ使う仕様でランタイムも必要らしいが
.netの導入よりははるかに楽だろう。
251デフォルトの名無しさん:2012/09/13(木) 20:04:36.58
VBneoってwww net臭せぇwww
252デフォルトの名無しさん:2012/09/13(木) 20:29:01.16
マジで?
253デフォルトの名無しさん:2012/09/13(木) 20:31:54.12
MSの社員しかまだ知らないはずだろ?
リークしていいのか?
254デフォルトの名無しさん:2012/09/13(木) 20:40:50.84
Windows RTの開発も出来るそうだから、RT拡散のためには手段を選ばんという事かもな。
255デフォルトの名無しさん:2012/09/13(木) 22:02:55.07
.netみたいに重くなっちゃうん?
256デフォルトの名無しさん:2012/09/13(木) 22:10:05.26
Metroスタイルの中間言語からネイティブコンパイルと言う発想は評価できるが
今のCLコンパイラほど最適化されたコードが出るかはなど実行性能は不明。
まあ期待しないで待ってようや。
257デフォルトの名無しさん:2012/09/13(木) 22:16:31.83
簡単に言うと、.Net Frameworkの中間言語をOLEオートメーションで実装した別バージョン。
中間言語レベルでは.Net Framework下でもRT下でも動く。
258デフォルトの名無しさん:2012/09/14(金) 10:08:31.95
風説の流布じゃないだろうな
259デフォルトの名無しさん:2012/09/14(金) 18:43:28.50
なんで旧VB用のスレで.NETの話題で盛り上がってんだ?.NETの資源を使おうって話か?
260デフォルトの名無しさん:2012/09/15(土) 04:31:21.37
VBにもマルチスレッドが欲しいお
261デフォルトの名無しさん:2012/09/15(土) 06:41:54.87
テキストファイル→テキストボックスへの一括読み込みについてVB6/XP

一括読み込みは
fno% = FreeFile: Open "C:\HogeHoge.Txt" For Binary As fno%
  Text1 = Input(LOF(fno%), fno%)
Close fno%
や、バイト配列でGetや、FileSystemObjectでReadAllの方法もありますが

いずれの方法でもUnicodeで131,070バイト(s-jisのファイルにして66kB程度)しか読めない
エラーにもならずに、読み込んだものと思ってたら、途中で切れてた状態
262デフォルトの名無しさん:2012/09/15(土) 06:56:11.81
確かに、以前はテキストボックスの容量が小さく制限されていたけど
今はどのくらいだろうか、試しに文字を入れていって、3MBでやめたけど
一発でなく、ずるずると入れるならメモリ不足になるまで入りそう

問題は、Text1 = t$ の時点で、131,070バイト以降がカットされること
(Text1はMultiLine=True、ScrollBars=両方)

試しに
  Text1=""
  Text1.SelText = Left$(t$, 50000)
  Text1.SelText = Mid$(t$, 50001)
と分けたら入った
どういうことでしょう
263デフォルトの名無しさん:2012/09/15(土) 09:28:38.19
にちゃんのしかもこんな辺境すれで、MSの社員しか知らない情報が
リークされるとか、あほすぎ。
264デフォルトの名無しさん:2012/09/15(土) 14:37:08.33
>>260
マルチプロセスいいよ
265デフォルトの名無しさん:2012/09/15(土) 15:28:04.72
MSの社員でも新VB6にマルチスレッドは無理だろ?

欲しいけどね
266デフォルトの名無しさん:2012/09/15(土) 15:28:54.24
タイマーがアイドル時にしか動かないのを
別スレッドで動くようにしてもらうだけでいい
267デフォルトの名無しさん:2012/09/15(土) 15:34:42.03
>>266
それだけでいいのなら、
別exe起動すればいい。
268デフォルトの名無しさん:2012/09/15(土) 15:52:22.19
セマフォも制御できんくせによく言う。
予期せぬ再入でコード進行はメタメタ。
デバッグも出来ない哀れな初心者。
マルチスレッドは100年早いわ。
269デフォルトの名無しさん:2012/09/15(土) 15:59:49.66
自分がマルチスレッドを理解するのに100年かかったからって
他人も同じだと思うなよw
270デフォルトの名無しさん:2012/09/15(土) 16:01:38.30
>>269
7年かけたが今でもまだ致命的なミスがたまにある。
そんなに気を配ってもやってしまう些細なミス。
シングルスレッドの有難さを知れやアホが。
271デフォルトの名無しさん:2012/09/15(土) 16:06:10.90
マルチスレッドでの開発にはまるでOSのカーネルを作成するときのような慎重さが必要だよね。
100時間以上正常動作してたのにたまにハングアップとかいうバグが多いからデバッグは不可能に近い。
だからこそ設計時に完璧さを要求される。バグを追いかけるよりゼロから作り直した方が早いのがマルチスレッド。
VB6使ってて、とりあえず実行してみてエラー出なければラッキー、エラー出たらそこを直せばいいや
なんてやってる奴にマルチスレッド プログラミングが出来るはずかない。
272デフォルトの名無しさん:2012/09/15(土) 16:10:19.08
そもそもしないし。
273デフォルトの名無しさん:2012/09/15(土) 16:12:13.54
> VB6使ってて、とりあえず実行してみてエラー出なければラッキー、エラー出たらそこを直せばいいや
> なんてやってる奴に

お前がそうだからって、他人も同じだと思うなよw
274デフォルトの名無しさん:2012/09/15(土) 16:16:49.67
>>273
よくわかったな。なんでバレちゃうんだろ?w
275デフォルトの名無しさん:2012/09/15(土) 19:50:21.25
>>261-262
そもそもUnicodeのテキストファイルはVB6にとってはバイナリファイル
バイナリでオープンしても、Inputで読めばテキストとして読む
InputBで読め

そしてTextプロパティのヘルプには
>テキスト ボックス (TextBox) コントロールの Text プロパティに設定する文字列は、
>MultiLine プロパティが真 (True) の場合は最大で約 32KB まで、
>偽 (False) の場合は最大で 2,048 文字 (半角の場合) までに、
>それぞれ制限されています。
ってあるからたぶん普通に制限値で引っ掛かってるだけだな
(どうも制限64Kな気もするが。文字コードがらみか)

なんでこんな制限があるのかはしらん

SelTextはこの制限にかからんから入るんだろう
そう考えるとTextBoxそのものの制限ではなさそうだが
276デフォルトの名無しさん:2012/09/15(土) 21:58:40.57
> なんでこんな制限があるのかはしらん

制限のほとんどは過去との互換性。
いつからその制限があるかを調べればわかるよ。
どうもね。現在のことしか思いつかない人がいるよね。
277デフォルトの名無しさん:2012/09/16(日) 02:48:31.73
>>276
文句があるなら、お前が互換性が理由だって証拠やいつからその制限があるか提示したらどうだね?

そんなことはすぐに思いつくが、ホントにそうなのかどうか確認できんから知らんって書いただけ
そしてホントにSelTextならその制限越えれるのかどうかも検証してないが
SelTextなら制限かからないなら、TextBoxの制限ではないわけで、そこで制限かける意味が薄い

たとえば.NETのTextBoxは、MaxLengthのデフォルト値は32,767らしい
指定すればそれ以上の数値でも問題ないのに、その文字数で制限するのはまさに互換性のためだろう

そうであればますますVB6のTexeBox.Textの制限の理由は不明だが
是非お前にその理由を説明してほしいもんだ
278デフォルトの名無しさん:2012/09/16(日) 04:32:42.01
VB6アプリは9x系でも動く
9x系のメモ帳は32KBしか編集できない。
これぐらいのヒントで十分だろう。
279デフォルトの名無しさん:2012/09/16(日) 07:00:27.90
>>275
>Text プロパティに設定する文字列は・・
それですね
ヘルプに書いてありましたか、すみません。

そこに制限があるのだけど、TextBox自体には別の方法で入ってしまうし、読めてしまう。
でも、Textプロパティの代入の制限を超えた部分をSelStartで指すとエラーが発生する。
TextBox本体は時代とともに拡張されたけどインターフェイス部が取り残された感じですね
280デフォルトの名無しさん:2012/09/16(日) 07:11:06.28
シングルスレッドの有難さって、それは複数で開発してるとか
他人が作ったのを引き継いだ場合はそうだろうね
そりゃデバックの困難さが段違いだもの

たまーに発生する異常を、突き詰めて突き詰めて辿り着くのは
ここに排他処理ができてないじゃないかーってことで

それは判るんだけど、自分で設計、作る立場なら、
その機能は欲しいし、ないよりはあった方がいいわな
281デフォルトの名無しさん:2012/09/17(月) 17:16:18.69
クラスを書いたら 「わざわざ難しく書かないでよ」 と言われた・・・謎
282デフォルトの名無しさん:2012/09/17(月) 18:14:12.65
VB6 のクラスはなんちゃってクラスだから、本当に必要なとき以外に
使う奴はアホだと思う。
283デフォルトの名無しさん:2012/09/17(月) 18:21:24.94
おれはアホだったのか
284デフォルトの名無しさん:2012/09/17(月) 18:26:16.05
俺もアホだ
285デフォルトの名無しさん:2012/09/17(月) 19:18:28.30
>>282
ほんとうに必要な時と
そうでない時の例を上げてください。
286デフォルトの名無しさん:2012/09/17(月) 23:38:40.29
with event とかはクラスじゃなきゃ出来ないんじゃなかったっけ?
あれはVBAか
287デフォルトの名無しさん:2012/09/18(火) 00:21:42.44
コードの見通しを考えてクラスにする事が多々ある。
288デフォルトの名無しさん:2012/09/18(火) 11:00:37.43
本当に必要な部分を*.frmと*.basにそのコードを書いて、その他は全部classで書く、
くらいでいいと思うけど。
classにすることで、CTOR/DTORが使えるし、カプセル化はできるし、イベント監視することも
できるし、限定的ではあるけどポリモーフィズムも使える。
xUnitと相性が良いというのもメリット。
289デフォルトの名無しさん:2012/09/18(火) 11:25:11.39
クラスでraise eventして、frmでイベントハンドラ書くやり方が楽
290デフォルトの名無しさん:2012/09/18(火) 12:04:54.64
WindowsProcをフックしてメッセージ横取りした場合
rise eventが効かないのは致命的だけどな。
291デフォルトの名無しさん:2012/09/18(火) 14:58:01.61
mjd?
292デフォルトの名無しさん:2012/09/18(火) 15:29:04.30
WindowsProcとかwww
293デフォルトの名無しさん:2012/09/18(火) 16:24:52.58
>>290
ちゃんと動くけど?

http://homepage1.nifty.com/rucio/main/tyukyu/tyukyu9.htm
 のコードをコピペして、Command1, Command2, Text1を持つForm1を作る
・Form1にCommand3を追加後、以下のコードを追加

Form1.frm:
Dim WithEvents obj As Class1

Private Sub Command3_Click()
  Set obj = New Class1
  obj.foo
End Sub

Private Sub obj_FooEvent()
  Debug.Print "event fired."
End Sub

Class1.bas:
Public Event FooEvent()

Public Sub foo()
  RaiseEvent FooEvent
End Sub

・exeを起動後、Command1をクリックしてWindowProcをフック後、Command3をクリックすると、FooEventが発火するのが確認できる
294デフォルトの名無しさん:2012/09/18(火) 16:45:35.14
>>290
動くコードが出たんだから、問題が発生するコードはよ
295デフォルトの名無しさん:2012/09/18(火) 19:01:55.13
WindowsProcじゃないやん!
296デフォルトの名無しさん:2012/09/18(火) 21:32:39.12
問題が発生するコードを出せば話は終わる。
なにもないなら、この話題はなかったとして扱うのが
科学者風w
297デフォルトの名無しさん:2012/09/19(水) 10:28:02.65
効かないのは、

rise event

だよ?
勘違いしないでね。
298デフォルトの名無しさん:2012/09/19(水) 11:43:50.70
Rise Eventはサブクラス化でも効かない
299デフォルトの名無しさん:2012/09/19(水) 11:57:22.62
「サブクラス化」ほど謎単語ってないよな
300デフォルトの名無しさん:2012/09/19(水) 15:31:03.04
いまだにサブクラス化の意味がわからん。
301デフォルトの名無しさん:2012/09/19(水) 15:35:42.58
継承するってことだよ
302デフォルトの名無しさん:2012/09/19(水) 15:39:31.83
継承はinheritance
サブクラス化はsubclassing

subclassingのうまい日本語訳がなかったから、サブクラス化ってしたんだろう。
303デフォルトの名無しさん:2012/09/19(水) 15:42:47.51
でも継承のほうがイメージ沸くよ
304デフォルトの名無しさん:2012/09/19(水) 15:54:46.27
いや、継承じゃないし。
305デフォルトの名無しさん:2012/09/19(水) 16:05:46.33
うっそ
306デフォルトの名無しさん:2012/09/19(水) 23:14:54.22
マイクロソフトは謎な単語が多くて困る
コールバックルーチン取り替えるのがMS語のサブクラス化だっけ?
307デフォルトの名無しさん:2012/09/19(水) 23:34:58.18
お前ら何やってんの?
Windows API用語の
サブクラス化だろ。
308デフォルトの名無しさん:2012/09/19(水) 23:38:05.68
マイクロソフトが、っていうより英語がそういう言語なんだろう。

新しい概念が出来た時、語彙を増やして対応する傾向が強いのが日本語。
対して英語は既存の語彙の意味を増やす。

っていうか、クラスにしろサブクラウスにしろ、OOPの文脈でしか通じない用法を
文脈と無関係に使える言葉みたいに思い違いをしてる奴の方が困ったちゃんだろ
309デフォルトの名無しさん:2012/09/20(木) 01:01:36.42
>>308
サブクラウスってケンタウルスの親戚か何かか?

思い違いを指摘できる立場ではなさそう。
310デフォルトの名無しさん:2012/09/20(木) 01:02:30.91
サブのクラウスさんに決まってるだろ。くだらないこと聞くな。
311デフォルトの名無しさん:2012/09/20(木) 01:03:08.31
ウィンドウメッセージをフックしてコントロールに機能を追加するのがサブクラス化だろ?
312デフォルトの名無しさん:2012/09/20(木) 13:37:02.89
sstabコントロールについてなのですがタブごとに背景色を
変更することはできないでしょうか?
それらしいプロパティが見つからないのですが。
313デフォルトの名無しさん:2012/09/20(木) 18:55:50.91
sstabなんて知らにゃい
314デフォルトの名無しさん:2012/09/20(木) 19:03:40.26
非標準のコントロール使うとあとが面倒だよね
タブならチェックボックスとフレームで作ってる
見た目はダサいけど、チェックボックスのStyleを変えれば
ボタンになって色もつけられる
どれか押したら他をOFFするコードは自前で書かないといけないけど
315デフォルトの名無しさん:2012/09/20(木) 21:05:01.51
(´・ω・`)…
316デフォルトの名無しさん:2012/09/20(木) 21:32:57.96
>>314
そのTABじゃVisualStyleの効果ないじゃん。ダメだね。
317デフォルトの名無しさん:2012/09/21(金) 04:10:34.92
オプションボタンにもStyleプロパティがあったんだ
発見するのに15年もかかってしまった
318デフォルトの名無しさん:2012/09/21(金) 08:45:03.22
ステートロックできるボタンだ罠
319デフォルトの名無しさん:2012/09/21(金) 12:52:07.94
320デフォルトの名無しさん:2012/09/22(土) 20:38:00.11
>>319
それ2004年になってるけど
Windows7や8では使えるのだろうかね
前スレで使えないといった書き込みがあったと思ったよ
非標準のコントロール使わなければ、その配布は不要で
exeをコピーするだけで他のマシンで使えるしサポートも表明されてるし
321デフォルトの名無しさん:2012/09/22(土) 21:00:11.96
win7に直接VB6のIDEをインストールした俺が来ましたよ。
たぶんいくつかの重要なシステムファイルはVB6の古いのに置き換えられたでしょうよ
322デフォルトの名無しさん:2012/09/22(土) 23:44:56.23
やっぱ俺らって間違いが嫌いじゃん
ま、こんなもんだろって、済ますようなことはしないじゃん
何時間も何日もかけて間違いを直すじゃん
それは放置したらその何倍も苦労するのを知ってるからじゃん

でも在日朝鮮人てその行動も主張も存在も、
全てが例外処理されるべきなのに放置されてるじゃん
それが俺ら厳格な理論を積み重ねる人間には許せないんだよな
だからこの板には在日朝鮮人嫌いが多いんだよじゃん
323デフォルトの名無しさん:2012/09/23(日) 00:11:32.51
痛いぐらいに重症なネトウヨ脳だなおい
324デフォルトの名無しさん:2012/09/23(日) 01:46:33.37
>>321
Vista/7はSxSがあるので気にする必要なし
325デフォルトの名無しさん:2012/09/23(日) 15:12:41.68
vb6 で遊んでる。今日のwindows update でvb6 webbrowser がレジストリエラー
vb6 webbrowser は問題があるのかwindows update のときに頻発する現象。
いきなり10日間ぐらいyoutubeの動画再生スライダが ieでは表示されるのに vb6では
表示されない現象が続いていたがyoutube側で訂正がされたのか2〜3日前から正常に
表示されるようになっていた。今度のwindows updateがそれと関連あるのかわからないが
再起動後は一応正常なまま。以上チラシの裏
326デフォルトの名無しさん:2012/09/23(日) 19:20:15.16
数日前にYoutube側の仕様変更で各ダウンロードツールがDLできないという現象が発生
すぐさま対応した作者もいれば、Youtubeに警告されて対応しないことを決めた作者もいるもよう
自作でシコシコDLツール作ってた俺の勝利
327デフォルトの名無しさん:2012/09/23(日) 23:38:38.52
>>326
すぐさま対応した作者のツールを使ってますが何か?
328デフォルトの名無しさん:2012/09/24(月) 02:10:50.41
質問です。

あるフォルダの内部構造を調べて、
そのフォルダ配下のすべてのファイル情報を取得する方法として、
代表的なものに再帰処理があると思うのですが、
負荷的な問題があり、なるべく再帰処理はしたくありません。

再帰処理をしないでフォルダの内部構造を調べる方法はないでしょうか?

それとも再帰するしかないのでしょうか?

ご存知の方がいらっしゃれば教えてください。
よろしくお願いします。
329デフォルトの名無しさん:2012/09/24(月) 02:18:36.65
ツリー構造のものを再帰なしにか

データ構造とアルゴリズム総合
http://toro.2ch.net/test/read.cgi/tech/1332279659/
330デフォルトの名無しさん:2012/09/24(月) 02:56:00.45
>>328 できた!

Private Sub Command1_Click()
Command1.Enabled = False
Dim FSO As New Scripting.FileSystemObject
Dim A$, B$, C$, TempDir$, Flag%
TempDir$ = FSO.BuildPath(Environ("USERPROFILE"), "TEMPDIR")
A$ = FSO.BuildPath(TempDir$, "HOGEHOGE.BAT")
B$ = FSO.BuildPath(TempDir$, "HOGEHOGE.TXT")
C$ = FSO.BuildPath(TempDir$, "HOGEHOGE.END")
If Not FSO.FolderExists(TempDir$) Then Call FSO.CreateFolder(TempDir$): Flag% = 1
With FSO.CreateTextFile(A$)
Call .WriteLine("CD """ & Dir1.Path & """")
Call .WriteLine("CMD.EXE /C FOR /R %%I IN (*.*) DO @ECHO %%~dpfI>>""" & B$ & """")
Call .WriteLine("ECHO END>""" & C$ & """")
Call .Close
End With
Call Shell("CMD.EXE /C """ & A$ & """")
Do While Not (FSO.FileExists(C$))
DoEvents
Loop
With FSO.OpenTextFile(B$)
Text1.Text = .ReadAll()
Call .Close
End With
Call FSO.DeleteFile(A$)
Call FSO.DeleteFile(B$)
Call FSO.DeleteFile(C$)
If Flag% = 1 Then Call FSO.DeleteFolder(TempDir$)
Set FSO = Nothing
Command1.Enabled = True
End Sub
331デフォルトの名無しさん:2012/09/24(月) 03:05:51.61
再帰使っちゃダメなんだぞう!
332デフォルトの名無しさん:2012/09/24(月) 03:09:49.29
Environ("USERPROFILE")
TEMP使いなさい
333デフォルトの名無しさん:2012/09/24(月) 03:12:52.61
どのみち非常に悪い例である
334デフォルトの名無しさん:2012/09/24(月) 03:22:48.40
問題点
一時ファイルを生成するなら環境変数TEMPのパスを使うべき
一時ファイルを生成する権限が無い場合にエラーが出る
1文字変数名のA,B,Cは分かりにくいので良くない
生成する各ファイルと同名のファイルがあった場合に上書きされる
ファイルが1つも無かった場合にHOGEHOGE.TXTのリードエラーになる
フォルダ名が記載されない
ファイル一覧がテキストなので一つ一つのファイル名を取り出す処理に時間がかかる
処理はバッチファイルなど外部処理を使わずVB内で完結すべき

採点 5点(100点満点中)
335330を修正した:2012/09/24(月) 03:38:50.17
Private Sub Command1_Click()
 Let Command1.Enabled = False
 Dim FSO As New Scripting.FileSystemObject
 Dim BatFile$, TxtFile$, EndFile$, TempDir$, Flag%
 Do
  Let TempDir$ = FSO.BuildPath(Environ("TEMP"), FSO.GetBaseName(FSO.GetTempName()))
 Loop While FSO.FolderExists(TempDir$)
 Call FSO.CreateFolder(TempDir$)
 Let BatFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.BAT")
 Let TxtFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.TXT")
 Let EndFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.END")
 With FSO.CreateTextFile(BatFile$)
  Call .WriteLine("CD """ & Dir1.Path & """")
  Call .WriteLine("CMD.EXE /C FOR /R %%I IN (*.*) DO @ECHO %%~dpfI>>""" & TxtFile$ & """")
  Call .WriteLine("ECHO END>""" & EndFile$ & """")
  Call .Close
 End With
 Call Shell("CMD.EXE /C """ & BatFile$ & """")
 Do While Not (FSO.FileExists(EndFile$))
  DoEvents
 Loop
 With FSO.OpenTextFile(TxtFile$)
  If .AtEndOfStream Then Let Text1.Text = "No Files" Else Let Text1.Text = .ReadAll()
  Call .Close
 End With
 Call FSO.DeleteFile(BatFile$)
 Call FSO.DeleteFile(TxtFile$)
 Call FSO.DeleteFile(EndFile$)
 Call FSO.DeleteFolder(TempDir$)
 Set FSO = Nothing
 Let Command1.Enabled = True
End Sub
336これならどうだ!:2012/09/24(月) 03:49:35.46
Private Sub Command1_Click()
  Let Command1.Enabled = False: Let List1.Visible = False: Call List1.Clear
  Dim FSO As New Scripting.FileSystemObject
  Dim BatFile$, TxtFile$, EndFile$, TempDir$, Flag%
  Do
    Let TempDir$ = FSO.BuildPath(Environ("TEMP"), FSO.GetBaseName(FSO.GetTempName()))
  Loop While FSO.FolderExists(TempDir$)
  Call FSO.CreateFolder(TempDir$)
  Let BatFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.BAT")
  Let TxtFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.TXT")
  Let EndFile$ = FSO.BuildPath(TempDir$, "HOGEHOGE.END")
  With FSO.CreateTextFile(BatFile$)
    Call .WriteLine("CD """ & Dir1.Path & """")
    Call .WriteLine("CMD.EXE /C FOR /R %%I IN (*.*) DO @ECHO %%~dpfI>>""" & TxtFile$ & """")
    Call .WriteLine("ECHO END>""" & EndFile$ & """")
    Call .Close
  End With
  Call Shell("CMD.EXE /C """ & BatFile$ & """")
  Do While Not (FSO.FileExists(EndFile$))
    DoEvents
  Loop
  With FSO.OpenTextFile(TxtFile$)
    If .AtEndOfStream Then Call List1.AddItem("No File")
    Do While Not .AtEndOfStream
      Call List1.AddItem(.ReadLine())
    Loop
    Call .Close
  End With
  Call FSO.DeleteFile(BatFile$): Call FSO.DeleteFile(TxtFile$): Call FSO.DeleteFile(EndFile$)
  Call FSO.DeleteFolder(TempDir$)
  Set FSO = Nothing: Let List1.Visible = True: Let Command1.Enabled = True
End Sub
337デフォルトの名無しさん:2012/09/24(月) 03:53:14.72
On Errorのエラー処理を入れなさい
338デフォルトの名無しさん:2012/09/24(月) 03:58:11.55
>Do While Not (FSO.FileExists(EndFile$))

括弧が多い
339デフォルトの名無しさん:2012/09/24(月) 03:59:34.90
Let 省略可能です。キーワード Let を明示的に使用するかどうかは表記上の問題であり、通常は省略します。

MSDNより
340デフォルトの名無しさん:2012/09/24(月) 04:03:09.54
もしかしてWin32APIのmemcpy使わなくてもユーザ定義型変数とLSet使えばメモリのコピーできるのか?
341デフォルトの名無しさん:2012/09/24(月) 04:09:01.41
そう、このように利用することができる

Private Type typeA
Val1 As Long
End Type

Private Type typeB
Val1 As Byte
Val2 As Byte
Val3 As Byte
Val4 As Byte
End Type

Private Sub Command1_Click()
Dim a As typeA
Dim b As typeB

Let a.Val1 = &HAABBCCDD

LSet b = a

Debug.Print Hex(b.Val1)
Debug.Print Hex(b.Val2)
Debug.Print Hex(b.Val3)
Debug.Print Hex(b.Val4)
End Sub
342デフォルトの名無しさん:2012/09/24(月) 04:09:33.72
これは使える!
343デフォルトの名無しさん:2012/09/24(月) 04:11:17.73
こんな使い方も可能だ

Private Type typeA
Val1(3) As Byte
End Type

Private Type typeB
Val1 As Byte
Val2 As Byte
Val3 As Byte
Val4 As Byte
End Type

Private Sub Command1_Click()
Dim a As typeA
Dim b As typeB

Let a.Val1(0) = &H10
Let a.Val1(1) = &H20
Let a.Val1(2) = &H30
Let a.Val1(3) = &H40

LSet b = a

Debug.Print Hex(b.Val1)
Debug.Print Hex(b.Val2)
Debug.Print Hex(b.Val3)
Debug.Print Hex(b.Val4)
End Sub
344デフォルトの名無しさん:2012/09/24(月) 04:11:57.13
これは便利すぎる!!
345デフォルトの名無しさん:2012/09/24(月) 09:31:42.27
LSetでの構造体コピーで型変換もできるぞ
例えば画像ファイルや動画ファイルの中を除くと
中の数値がインテル形式でなくモトローラ方式のバイト並びになってたりする
Uintなら逆に読んで256掛けていけばいいが
ShortやDoubleだと途方に暮れる
そこでバイト配列と目的の型をType宣言しといてLsetすると型変換できてしまう
346デフォルトの名無しさん:2012/09/24(月) 11:50:49.33
>>328
再帰にすると発生する負荷的なものとはいったい何でしょう?
途中でキャンセルする方法が判らないとか、
もしかして空き時間にタイマーイベントで少しずつ処理したいとかかな

まずフォルダを列挙する方法
文字列配列に列挙する

初期値はlist$(0)="C:\"
コードは、その配列を全部調べて右端が'\'だったらサブフォルダを追加して'\'を削除する

よって、このコードを1回実行すると
list$(0)=C:
list$(1)=C:\Program fille\
list$(2)=C:\Windows\
になる。右端の\が全部無くなったら終了
347デフォルトの名無しさん:2012/09/24(月) 12:07:56.85
再帰ならではの負荷なんてないよなー
348デフォルトの名無しさん:2012/09/24(月) 12:34:48.45
Lsetなんか使ったら.netに移行する際に死ぬほど苦労するよ?
VB.netにさえLSetは存在しないし。
VB6とお永遠に御付き合いするならええが。
349デフォルトの名無しさん:2012/09/24(月) 12:36:48.12
>>346
”C:\Program fille”なんてフォルダ、はじめて聞いた。
350デフォルトの名無しさん:2012/09/24(月) 13:04:39.19
再帰じゃないロジックで書くのと比べれば、再帰にすればメソッド呼び出しのオーバーヘッドと
スタック操作のオーバーヘッドがあるから、それを負荷と呼んでるのかもしれん。
351デフォルトの名無しさん:2012/09/24(月) 13:06:20.64
いや、たぶんAPIみたいなものでWindowsが一括でデータくれるような
ものはないか?ってことじゃないか?
352デフォルトの名無しさん:2012/09/24(月) 13:19:48.49
おそらくフォルダ階層がすごい深いんでしょう?1000とか2000とか
353デフォルトの名無しさん:2012/09/24(月) 13:26:53.34
その負荷のかかるという再帰コードにミスがあってメモリを食うだけだろ
コードを見直すべきだな
354デフォルトの名無しさん:2012/09/24(月) 13:37:15.30
RAM32MB
355デフォルトの名無しさん:2012/09/24(月) 14:04:01.79
>>328 再帰なしでできたよ!


Private Sub Command2_Click()
Let Command2.Enabled = False: Let List1.Visible = False: Call List1.Clear
Dim FSO As New Scripting.FileSystemObject
Dim DCT As New Scripting.Dictionary
Dim FLD As Scripting.Folder
Dim SBF As Scripting.Folder
Dim FL As Scripting.File
Call DCT.Add(DCT.Count, Dir1.Path)
Do
Set FLD = FSO.GetFolder(DCT.Item(DCT.Count - 1))
Call DCT.Remove(DCT.Count - 1)
For Each FL In FLD.Files
Call List1.AddItem(FL.Path)
Next FL
Set FL = Nothing
For Each SBF In FLD.SubFolders
Call DCT.Add(DCT.Count, SBF.Path)
Next SBF
Set SBF = Nothing
Set FLD = Nothing
Loop While DCT.Count > 0
Call DCT.RemoveAll: Set DCT = Nothing
Set FSO = Nothing: Let List1.Visible = True: Let Command2.Enabled = True
End Sub
356デフォルトの名無しさん:2012/09/24(月) 14:37:56.78
そう、よかったね・・
357デフォルトの名無しさん:2012/09/24(月) 14:46:40.42
目的は再帰なしじゃなかろうて
358デフォルトの名無しさん:2012/09/24(月) 14:51:37.93
負荷の少ない処理を所望だよね
そんな方法があるなら俺も知りたい
359デフォルトの名無しさん:2012/09/24(月) 15:44:27.16
>>336
>Call .WriteLine("CD """ & Dir1.Path & """")
>Call .WriteLine("CMD.EXE /C FOR /R %%I IN (*.*) DO @ECHO %%~dpfI>>""" & TxtFile$ & """")

何故FORを使った?DIR /B /S使えばいいのに
360デフォルトの名無しさん:2012/09/24(月) 15:45:29.63
そもそもそこにCMD.EXEがいらない
361デフォルトの名無しさん:2012/09/24(月) 15:56:25.96
Call .WriteLine("CD """ & Dir1.Path & """")
Call .WriteLine("CMD.EXE /C FOR /R %%I IN (*.*) DO @ECHO %%~dpfI>>""" & TxtFile$ & """")



Call .WriteLine("@DIR """ & Dir1.Path & """ /A-D /B /S>>""" & TxtFile$ & """")
362デフォルトの名無しさん:2012/09/24(月) 16:07:51.26
DIR /B/S 高速 1秒未満
>>355 低速 2〜5秒
>>336 低速 3〜20秒
363デフォルトの名無しさん:2012/09/24(月) 16:29:34.83
ディレクトリ内のファイルの検索またはファイル一覧の取得を行う方法
http://support.microsoft.com/kb/185476/ja
364デフォルトの名無しさん:2012/09/24(月) 16:32:39.58
>>328
>>363を見ろ
365デフォルトの名無しさん:2012/09/24(月) 17:17:11.01
なんか変なのがいるな
366デフォルトの名無しさん:2012/09/24(月) 17:22:49.27
俺のことかな?
367デフォルトの名無しさん:2012/09/24(月) 18:15:31.51
DOSコマンドを知ってるヤシって・・
368デフォルトの名無しさん:2012/09/24(月) 18:17:58.84
ステキ?
369デフォルトの名無しさん:2012/09/24(月) 20:02:59.82
ああ
370デフォルトの名無しさん:2012/09/24(月) 20:19:32.23
コード書いてる奴って質問文よく読んでない
フォルダ構造を負荷のかからない方法で知りたいって質問なのに負荷の大きいファイル列挙コードを書いてんじゃん
371デフォルトの名無しさん:2012/09/24(月) 21:35:56.20
再帰だから負荷が高いっていう間違った前提の質問で、質問内容は
>再帰処理をしないでフォルダの内部構造を調べる方法はないでしょうか?
だから、負荷は無視して回答するしかないわけですが
372デフォルトの名無しさん:2012/09/24(月) 21:54:14.15
ファイルひとつひとつに負荷の高い処理をしたいから再帰処理はしたくないって話じゃなくて?
373デフォルトの名無しさん:2012/09/24(月) 23:07:21.83
対象フォルダをネットワーク上において、各回答手段を実行して
パケットモニタリングすれば良い。
374デフォルトの名無しさん:2012/09/25(火) 05:01:50.44
ソウル日本人教会の吉田耕三牧師(70)
・韓国大統領が独島を訪問したことや 天皇に謝罪を要求したのは
極めて当然のことだとする趣旨の書簡を野田佳彦首相に送付した。

・昨年12月にも、在韓日本大使館前の「慰安婦少女像」の撤去要請に対し
抗議の手紙を日本政府に送った。

・新潟県立新潟中央高等学校(男子5人、女子338人)に韓国修学旅行
プログラムをコーディネート、大人の付き添いもなく一般家庭にお邪魔するというものらしい
375デフォルトの名無しさん:2012/09/25(火) 09:18:13.71
>>355
VB使いならFileSystemObjectを使わないで実装しろよ。
VB6の非標準オブジェクトを使用するのは俺らにとってはルール違反。
何でもアリならFileMakerや4Dでもいいって事になる。
376デフォルトの名無しさん:2012/09/25(火) 10:51:54.21
>>375
俺らって誰よ?
FSOは、ほぼ標準だろ。
377デフォルトの名無しさん:2012/09/25(火) 11:29:27.95
FSOはVB6の言語仕様じゃないだろ?
使う使わないは自由だが便利なので初心者は皆使う。
腕に自信のあるスキルの高いVB6プログラマは
APIと応用で軽くこなす。
378デフォルトの名無しさん:2012/09/25(火) 11:30:43.59
FSOを使うと頒布の時余計なもん入れなきゃならないから嫌だ。
最新のWindowsなら問題ないが、Win98やWin2000とかにはFSOは入ってないからな。
379デフォルトの名無しさん:2012/09/25(火) 11:33:23.94
VB6で何の抵抗もなくFSOを使ってしまう奴の神経が知れん。
自力のコーディング力に乏しく、困るとすぐにOCXとか探して
いくら高くても会社の金だからって買ってしまうんだろうな。
雇った会社に同情汁。
380デフォルトの名無しさん:2012/09/25(火) 12:52:24.36
じゃ、DictionaryもRegexpも使うなアホ
381デフォルトの名無しさん:2012/09/25(火) 12:52:59.41
使ってないだろ?普通は。
382デフォルトの名無しさん:2012/09/25(火) 12:54:41.79
>>377-379
こういう奴らが車輪の再発明しまくって、閏年バグとかを作っちゃったりするんだろうなぁ。
383デフォルトの名無しさん:2012/09/25(火) 12:56:55.21
I/Fぐちゃぐちゃな俺俺ファイルシステムライブラリでも作って悦にいってろ
384デフォルトの名無しさん:2012/09/25(火) 12:58:08.02
MS謹製ライブラリとその他雑魚ライブラリを同一に語られましても。
385デフォルトの名無しさん:2012/09/25(火) 13:03:15.68
FSOを使えば1分で実装できるのに、VBネイティブコードで1時間かけて実装する馬鹿
386デフォルトの名無しさん:2012/09/25(火) 13:04:16.86
むしろFSOは積極的に使うべきだろ
387デフォルトの名無しさん:2012/09/25(火) 13:08:56.07
>>378
今時、Windows 98とか2000がターゲットに入ってる時点で、自分の職場が超特殊であることに気付よ
388デフォルトの名無しさん:2012/09/25(火) 13:36:37.30
>>381
お前の「普通」なんかどうでもいいわ。
389デフォルトの名無しさん:2012/09/25(火) 13:42:58.44
>>380
Scriptingクラスと言えよ。
390デフォルトの名無しさん:2012/09/25(火) 13:44:46.57
>>385
一時間かかるという発想が自らのスキルの低さを露呈している訳だが…。プププ
391デフォルトの名無しさん:2012/09/25(火) 13:46:06.95
>>387
98は知らんが2000サポートはかなり広範囲の顧客から条件設定される場合が多いよ。
あまり客層の厚くない会社は無縁だろうが。
392デフォルトの名無しさん:2012/09/25(火) 13:50:22.47
sage, sage, ageと三つ続けてレスするの辞めて
393デフォルトの名無しさん:2012/09/25(火) 13:52:24.02
>>391
客層が厚いワロタ
394デフォルトの名無しさん:2012/09/25(火) 13:56:25.35
>>389
vb6 "scriptingクラス"
7 件 (0.16 秒)

ウフフフフ
395デフォルトの名無しさん:2012/09/25(火) 14:10:17.71
FSO使わないって奴は、PerlやRubyやPython使うときも組み込みライブラリしか使わないんだろうなぁ
396デフォルトの名無しさん:2012/09/25(火) 14:15:05.62
先生!ネットワーク関連も、生Winsock APIしか使っちゃいけませんか?
397デフォルトの名無しさん:2012/09/25(火) 14:16:51.38
そういや、ちょっと前にWinsockコントロール使うなっていってた奴いたけど、このスレだっけか。
そいつと同一人物か?
398デフォルトの名無しさん:2012/09/25(火) 14:38:25.49
MSでさえサポートしないOSを使えって、マゾか
399デフォルトの名無しさん:2012/09/25(火) 15:03:48.08
上の人達って、IE6のサポート打ち切るなんてもっての他なんでしょうね
400デフォルトの名無しさん:2012/09/25(火) 15:47:25.66
APIというのは余計なインストールなくても使えるのか
401デフォルトの名無しさん:2012/09/25(火) 16:01:35.33
sodayo
402デフォルトの名無しさん:2012/09/25(火) 16:04:06.88
おまえら>>363を見ろ

MSが薦めるやり方はWindowsAPIを使うかVB標準のメソッド等を使うかだ
FSOでのやり方も載ってるが推奨はしてないだろ!
403デフォルトの名無しさん:2012/09/25(火) 16:12:47.15
>>402
Microsoft曰く、

http://support.microsoft.com/kb/185601/en-us
> The FileSystemObject class provides better performance than if you use Visual Basic
> intrinsic functions such as Dir and GetAttr. Additionally, FileSystemObject is much simpler
> to implement that the Visual Basic intrinsic functions.

ってことなんだけど?
404デフォルトの名無しさん:2012/09/25(火) 16:29:19.66
FSOやWinsockコントロールは個人や学校の部活動とか趣味レベルのことしようとする奴向けのライブラリ
本格的なアプリケーション開発するのならFSOやWinsockコントロールを使うべきではない

ここでの問題点は

質問者が趣味レベルのことやってんのか、仕事レベルのことやってんのか。

前者ならFSO使うのもいいだろう
後者ならFSO使うのは避けるべきだろう
405デフォルトの名無しさん:2012/09/25(火) 16:32:41.85
>>403

>The FileSystemObject class provides better performance than if you use Visual Basic
> intrinsic functions

ここで言うperformanceとはコーディングが楽になるという意味でのパフォーマンスの良さって意味ですね
アプリケーションのパフォーマンスが良いという意味ではありません
406デフォルトの名無しさん:2012/09/25(火) 16:50:14.47
おまえら面白いな
質問者からのレスポンスが全くないのにおまえらだけで勝手に空回りして
407デフォルトの名無しさん:2012/09/25(火) 16:51:43.56
>>404
本格的なアプリケーション開発するならVC++かC#でしょ。
VBごときでなにいきってんの?

>>405
そういう意味だとすると、なんでAdditionallyとか付けたのかな?
408デフォルトの名無しさん:2012/09/25(火) 16:55:21.57
>>404
なんで避けるべきなんだかw
409デフォルトの名無しさん:2012/09/25(火) 16:56:44.24
質問が来るとすぐ暴走するのが旧VBスレ
410デフォルトの名無しさん:2012/09/25(火) 16:57:09.11
>>404はVB6以外ではどんな言語使ってるの?
で、それらを使うとき、ビルトインライブラリ以外は一切使わないの?
そうじゃない場合、例えば具体的にはどんなライブラリ使うの?
411デフォルトの名無しさん:2012/09/25(火) 16:57:48.98
ライブラリのライセンスとか気にしてないで使いまくって開発してる企業とか多そう
412デフォルトの名無しさん:2012/09/25(火) 16:58:47.37
誰かがわざと燃料投下してるとしか思えない
413デフォルトの名無しさん:2012/09/25(火) 16:59:01.12
まぁ、俺はFSOを存分に使って、さっさと別のことやるけどね。
それがプロw
414デフォルトの名無しさん:2012/09/25(火) 16:59:38.31
プロ(笑)
415デフォルトの名無しさん:2012/09/25(火) 17:00:03.52
10万20万のOCX買うの渋って、1,2人月かけちゃうようなアホ上司みたいだ。
416デフォルトの名無しさん:2012/09/25(火) 17:01:35.29
MSはVBの検定試験とかプロ資格試験とか作ればよかったのにね
417デフォルトの名無しさん:2012/09/25(火) 17:02:14.75
OCX買って開発したはいいものの出来上がったものを製品として販売はOCXのライセンス違反なのであった
418デフォルトの名無しさん:2012/09/25(火) 17:03:38.56
さあどんどん燃料投下していってね!
419デフォルトの名無しさん:2012/09/25(火) 17:04:17.44
旧VBスレが大炎上
420デフォルトの名無しさん:2012/09/25(火) 17:04:25.18
C++でboost使って良いかどうかとか、超絶メタプログラミングテクニックは是か非かみたいな話と似てるな。
421デフォルトの名無しさん:2012/09/25(火) 17:05:04.96
>>417
OCX買ったこと無い人にはわからない話題だったね。
422デフォルトの名無しさん:2012/09/25(火) 17:05:57.31
プログラマがライセンス条項を読んでるわけないじゃん
423デフォルトの名無しさん:2012/09/25(火) 17:06:02.08
製品として配布できないOCXを売るw
424デフォルトの名無しさん:2012/09/25(火) 17:16:48.81
OCXそのものを配布したらライセンス違反だろ
425デフォルトの名無しさん:2012/09/25(火) 17:19:10.20
え?
426デフォルトの名無しさん:2012/09/25(火) 17:22:36.99
427デフォルトの名無しさん:2012/09/25(火) 17:26:14.70
拡張子ocxのファイルそのものを再配布はダメなとこが多かったハズだが
428デフォルトの名無しさん:2012/09/25(火) 17:30:15.74
は?
429デフォルトの名無しさん:2012/09/25(火) 17:30:57.08
元の質問とはかけ離れた話にシフトアップしていきます
430デフォルトの名無しさん:2012/09/25(火) 17:31:48.45
真昼間から暇人が多いVB使い
431デフォルトの名無しさん:2012/09/25(火) 17:35:04.97
おいおい
432デフォルトの名無しさん:2012/09/25(火) 17:43:54.62
元の質問って何だったっけ?
433デフォルトの名無しさん:2012/09/25(火) 17:46:17.03
俺も分からない
434デフォルトの名無しさん:2012/09/25(火) 17:47:52.30
しかたない
次の質問が来るのを待つとするか
435デフォルトの名無しさん:2012/09/25(火) 17:58:28.62
真性かまってちゃん
436デフォルトの名無しさん:2012/09/25(火) 18:04:42.39
昔、Chart OCX買って貰えずに、泣きながら実装したことあるの思い出したわw
437デフォルトの名無しさん:2012/09/25(火) 21:31:11.49
この流れで、大体のレベルが知れた。
俺のVBレベルは、このスレ全体を100としたとき、上位15番以内に入れる気がするわ。
438デフォルトの名無しさん:2012/09/25(火) 21:39:22.31
このスレに15人もいるのか・・・?
439デフォルトの名無しさん:2012/09/25(火) 22:25:56.86
俺もそうだが、このスレを読んでるような奴はもう終わってるよ
440デフォルトの名無しさん:2012/09/26(水) 01:30:08.58
このスレ見てるの10人もいないと思う
441デフォルトの名無しさん:2012/09/26(水) 07:59:27.93
ドットNETに移行しない奴が多いので旧VB路線復活というMSのリーク話はどうなった
442デフォルトの名無しさん:2012/09/26(水) 08:57:42.79
FSOとかDictionary否定したら、
巨大なランタイムが必用な.net全否定だな。
まあ、このスレにいる人なら、あり得なくはないが。
443デフォルトの名無しさん:2012/09/26(水) 09:25:14.91
>>441
間もなく正式アナウンスがあるようだけど、.netの最新機能が使えるのが嬉しいな。
444デフォルトの名無しさん:2012/09/26(水) 10:56:31.63
>>443
Lsetが使えなくなるっぽい。便利だったのに。なんで?
445デフォルトの名無しさん:2012/09/26(水) 11:00:58.39
Win8でVB8か?まじかよ
446デフォルトの名無しさん:2012/09/26(水) 11:49:41.28
>>444
Twipsの単位系が全滅。
ScaleModeでリサイズ可能に実装したグラフも全滅orz
アンマネージなVB.netとどんだけ違うのか?
たぶん.etへの移行促進を目的にしているんだろうな。
447デフォルトの名無しさん:2012/09/26(水) 12:16:07.10
おまえらがVB.NETを使えないからだろ!
448デフォルトの名無しさん:2012/09/26(水) 12:42:28.03
ランタイムが数個・数MBで、ネイティブコードで
GCなしにしてくれれば、即移行するけどなぁ。
449デフォルトの名無しさん:2012/09/26(水) 15:12:41.76
VB.NETで作ると、微妙なモッサリ感がぬぐえないんだよなぁ。
450デフォルトの名無しさん:2012/09/26(水) 16:18:41.02
マシンスペックさえ上がればモッサリ感など!
451デフォルトの名無しさん:2012/09/26(水) 16:22:19.27
C#なら少し速くなるかと思ったら同じなのに唖然!
452デフォルトの名無しさん:2012/09/26(水) 16:24:23.33
コンパイラはVisual Studio 2012のC++のアンマネージド用と同じになるようだが
それって性能的にはどうなんだろ?
453デフォルトの名無しさん:2012/09/26(水) 16:24:41.99
>>407
>本格的なアプリケーション開発するならVC++かC#でしょ。

つまり業務用のアプリをVBで開発してるとこは頭おかしいってこと?
454デフォルトの名無しさん:2012/09/26(水) 16:25:14.78
燃料投下!
455デフォルトの名無しさん:2012/09/26(水) 16:25:30.97
>>450
どこまで上げればいいんだよって話だよね。
少なくとも俺が使ってるCore2Duo 2.26GHzでもっさりだった時点で、俺は何かをあきらめたよ。
456デフォルトの名無しさん:2012/09/26(水) 16:25:52.77
Functionで戻り値は、プロシージャ名=戻り値ってやるじゃん
ある条件の時には−1を返して早々に抜けるんだけど
プロシージャ名 −1: Exit Function
って書いてあって、これが無限再帰になって死ぬのになかなか気付かなくて
この記法はやめてほしいわ
Returnで返した方が編集しやすいし視認性もいいし
457デフォルトの名無しさん:2012/09/26(水) 16:26:48.32
言語は関係ないでしょ?
バグだらけで不安定なC++で作られたアプリと
ちょっとモッサリ感はあるけど10年間トラブルが1度もなく
超安定しているVBアプリと、業務で使うとしたらどちらか
効くまでもなかろう。
458デフォルトの名無しさん:2012/09/26(水) 16:27:48.12
>>455
Javaを知らない人は厳しい評価を下すねぇ・・・。
459デフォルトの名無しさん:2012/09/26(水) 16:29:25.69
VB6が作られたのはもうずいぶん前だ。
今の技術とセンスで作れば見違えるようなものが出来るはずだ
460デフォルトの名無しさん:2012/09/26(水) 16:32:25.83
>>456
プロシージャ名=戻り値のような戻り値を設定するだけのプロシージャ名でない固有名の処理ステートメントを作ればよいのだ
さらにはreturn と併用できるようにすれば処理の幅が広がる!
461デフォルトの名無しさん:2012/09/26(水) 16:33:41.96
>>458
Javaでプログラミングしてた時期もあるし、Javaで動くIDE使ってるからJavaの絶望感は知ってるよ。

だけど、やっぱりVB6やVC+MFCのアプリと比べるとねぇ・・・。
462デフォルトの名無しさん:2012/09/26(水) 16:34:53.13
えくりぷすか
463デフォルトの名無しさん:2012/09/26(水) 16:36:16.36
古いVBのスレなのに活気があるよねここ
464デフォルトの名無しさん:2012/09/26(水) 17:08:44.36
9割は俺の自演だから
465デフォルトの名無しさん:2012/09/26(水) 17:22:11.08
>>464
俺も忘れんなよ!
466デフォルトの名無しさん:2012/09/26(水) 17:23:09.41
>>463
古いけど最新のVB.netでは逆立ちしても追いつけない実効効率の高さがある。
467デフォルトの名無しさん:2012/09/27(木) 11:49:16.26
高飛車な態度をとる奴を叩きまくってスレを盛り上げる
それでエクセルVBAスレを抜くことができた
468デフォルトの名無しさん:2012/09/28(金) 08:51:22.92
Windows 8の一般リリースとと同時発表か
469デフォルトの名無しさん:2012/09/28(金) 09:11:39.04
何が?
470デフォルトの名無しさん:2012/09/28(金) 09:13:23.18
特集:哀れな国、韓国!
http://web-wac.co.jp/magazine/will/201211_w
http://web-wac.co.jp/magazine/wp-content/uploads/4910183971126-190x278.jpg


世界中で嫌われる韓国人とシナ人
韓国人はなぜ日本人を憎むのか
韓国こそ世界一の売春輸出大国だ
輸入韓国魚介類は糞尿まみれ
「パクリ無罪」の韓国
ヤミ金で成立する韓国経済
中国でもめちゃくちゃ不人気な韓流ドラマ
韓国大統領に群がるアリとハエ
韓国経済を支えているのは日本
在日韓国文化人の「妄言」を嗤う
朝日新聞・植村隆記者への公開質問状
「竹島をあげる」小沢一郎発言の真偽
韓国人は自分の家に放火する
471デフォルトの名無しさん:2012/09/28(金) 09:36:04.87
ネトウヨ王がなんたらかんたら
472デフォルトの名無しさん:2012/09/29(土) 18:42:09.92
新VB6の全容が明らかになったね。無料?
473デフォルトの名無しさん:2012/09/29(土) 19:12:42.98
どこで?
474デフォルトの名無しさん:2012/09/29(土) 21:57:26.08
初心者です。すみませんが回答可能な方いらしたら御教示の程お願いします。

VB6の文字コードの取り扱いのことで悩んでます。

InetコントロールでWebサイトのソースを読み取りテキストとして取り出したいのですが、
当初、UTF-8で読んでいたため文字化けしてしまっていました。

VB6の場合、文字列はUNICODE(UTF-16)として扱うなどを知り、UNICODE(UTF-16)に
変換できるようにして、ファイルをMIFESで開いても自動判定でUNICODE(UTF-16)になり
文字化けせず、NptePadでも文字化けせず開けるようになったのですが、VB6でテキスト
表示させると文字化けしてしまいます。

ちなみに、ShiftJISに変換してみてもダメでした。

文字化けするのは日本語(全角)の箇所のみです。

原因がわかる方、どなたか御教示いただけませんでしょうか・・・
475デフォルトの名無しさん:2012/09/29(土) 22:33:33.38
>>474
名探偵 Forms 2.0 に依頼してみては?
476デフォルトの名無しさん:2012/09/30(日) 04:59:00.82
>>474
ミニマムコードつくって張れ
477474:2012/09/30(日) 07:19:57.68
>>475
>>476
もう少し自力で頑張ってみます。有難うございました。
478デフォルトの名無しさん:2012/09/30(日) 11:39:01.08
>>474
初心者死ねよ。
479デフォルトの名無しさん:2012/09/30(日) 12:34:34.97
>>474
本当にUTF-8からUnicodeに変換したの?
変換できてないよ
変換する方法はこのスレの前の方で喧々諤々やってるから見てみ
480デフォルトの名無しさん:2012/09/30(日) 12:40:20.08
VB6/XPだけどTreeViewがおかしくなってる
フォルダのツリーを作ってあったんだけど
実行ファイルでエラーが出たからソース開いたら文字化けしてるし
フォルダが開けないし
Windows Updateで壊された?
481デフォルトの名無しさん:2012/09/30(日) 13:37:44.22
HDDが壊れただけだろ
482デフォルトの名無しさん:2012/09/30(日) 17:30:24.66
やっぱ俺らって間違いが嫌いじゃん
ま、こんなもんだろって、済ますようなことはしないじゃん
何時間も何日もかけて間違いを直すじゃん
それは放置したらその何倍も苦労するのを知ってるからじゃん

でも朝鮮人てその行動も主張も存在も、
全てが例外処理されるべきなのに放置されてるじゃん
それが俺ら厳格な理論を積み重ねる人間には許せないんだよな
だからこの板には在日朝鮮人嫌いが多いんだよじゃん
483デフォルトの名無しさん:2012/09/30(日) 17:33:09.36
ネトウヨ王に、俺はなる!まで読んだ。
484デフォルトの名無しさん:2012/09/30(日) 17:49:46.97
何で右翼なんだよw

>>482
朝鮮より中国だろ
オフショア開発が多いからそう思う人も多いはず。
奴ら適当にやり過ぎだわ。
485デフォルトの名無しさん:2012/09/30(日) 18:33:16.85
>>480
> VB6/XPだけどTreeViewがおかしくなってる
> フォルダのツリーを作ってあったんだけど
> 実行ファイルでエラーが出たからソース開いたら文字化けしてるし
> フォルダが開けないし
> Windows Updateで壊された?

MSCOMCTL.ocx がおかしくなった、8月のWindowsUpdateだったかな?
あきらめてリカバリーしてWindowsUpdateせずに放っておいたら知らないうちに直ってた
486デフォルトの名無しさん:2012/09/30(日) 18:36:06.44
【チラ裏】MS12-060をあてると、MSCOMCTL.OCXの再登録が必要な場合がある
http://blogs.wankuma.com/chuki/archive/2012/08/17/288168.aspx
487デフォルトの名無しさん:2012/09/30(日) 21:56:04.52
>>474
ADO
488デフォルトの名無しさん:2012/10/01(月) 09:42:34.12
>>487
Stream
489デフォルトの名無しさん:2012/10/01(月) 10:10:01.15
>>485-486
やっぱりだね
VBの現役時代に雑誌で、参照設定から追加するようなコントロールは
製品のサブセット版で、サンプルみたいな意味合いが強く
ちゃんと動くものが欲しかったらベンダーの製品を買え、みたいな記事があって
それ読んでから小物ツールにしか使わないようにしてたけど正解ぽいね
いつ動かなくなるかわからないよ
490デフォルトの名無しさん:2012/10/01(月) 10:58:38.16
MS謹製のOCXにも、品質の濃淡があるんだよ。
MSCOMCTLは、昔からできが悪いものとして有名。

まあ、ベンダー製品にも当然バグはあって、マメにリビジョンアップされてくものや、
放置されるものなどさまざま。
一概に、金を払ったから安心ってことでもないでしょ。
491デフォルトの名無しさん:2012/10/01(月) 12:03:10.65
文化オリエントの頃は良かったがGrapeCtyと横文字になってから
.netにしか注力しなくなったサードベンダーもいるしな。
不謹慎で申し訳ないが、震災の時は天罰が下ったかと思ったよ。
492デフォルトの名無しさん:2012/10/01(月) 12:06:16.20
>>491
コントロールにまでアクティベーションをかけた企業だしな
マシン変えたんで再認証しようと思ったら震災で鯖が動かんと来た
そのために納期に間に合わずキャンセル食らって7千万円の損害
社内では悪いのは俺ってことになってる
493デフォルトの名無しさん:2012/10/01(月) 12:25:24.40
VB6の時点でだめだろ
494デフォルトの名無しさん:2012/10/01(月) 12:25:45.08
>>492
そりゃそうだろw

別にインターネットを使用しない
認証方法もあるわけだし、
震災のせいにしてはいけない。
495デフォルトの名無しさん:2012/10/01(月) 12:28:31.47
496デフォルトの名無しさん:2012/10/01(月) 13:25:17.66
>>494
それがインターネットをしない認証もできなかったんだよ
震災のせいではないよ
震災に対応できないくせに
アクチなんて導入した奴のせいだよ
マイクロソフトなら日本が潰れても海外でアクチできる
やはりそのくらいのキャパが無ければ
やってはいけない事だとおもった
497デフォルトの名無しさん:2012/10/01(月) 13:27:10.44
>>493
最近、徐々にn.et場馴れが進んでいるというがね。
知り合いのSIも主要言語をC++に変更したというし。
.netって先がないんじゃない?
498デフォルトの名無しさん:2012/10/01(月) 13:29:13.15
ActiveXを排除せずに残しておいたのが敗因。
.netしか使えなくすれば良かったのに。
欲張ったのが大失敗なのさ。
Macをみてみろ。過去をすべて捨てたからこそ圧倒的に支持されている。
今だけだが。
499デフォルトの名無しさん:2012/10/01(月) 13:29:36.69
>>473
え?
500デフォルトの名無しさん:2012/10/01(月) 17:55:13.28
>>378
質問なんだが...
Windows2000や、Windows98でFSOが使えないって本当?
Windows95なら使えない場合もあると思うけど...Windows98以降では問題なく使えたと思うんだけど
501デフォルトの名無しさん:2012/10/01(月) 18:45:01.33
wshom.ocxかscrrun.dllのどちらかを参照設定に加えればFSOが使えるようになったはず
502デフォルトの名無しさん:2012/10/01(月) 18:51:54.40
Windows98SEでのSide-By-Side: DOBON.NETプログラミング掲示板過去ログ
http://dobon.net/vb/bbs/log3-15/8773.html


WindowsXP、VB6にてFileSystemObjectを使用したアプリケーションを
開発しています。
FileSystemObjectはscrrun.dllのバージョンが5.4以上でないと使えないと
認識しているのですが、FileSystemObjectに対応していないバージョンの
scrrun.dllが入っているPCでも動作させたいと思っています。
そこで、ネット上で調べた結果、Side-By-Sideの機能を使えばいいのかなと思い、
下記のように行いました

@実行環境はWindows98SE。Windowsのシステムフォルダ内にある
 scrrun.dllのバージョンはver.5.0。
AアプリケーションフォルダにFileSystemObjectに対応している
 scrrun.dllをコピー。このscrrun.dllのバージョンはver.5.6。
Bアプリケーションフォルダ内に実行ファイルと同名のlocalファイル
 を作成。
 ※実行ファイル名が「abc.exe」であれば
503デフォルトの名無しさん:2012/10/01(月) 18:53:51.02
Inno Setup知識データベース
http://nardog.takoweb.com/misc/mystral_kk/iskb15.htm

scrrun.dllと他のWindowsスクリプト実行時ファイルをどうやって配布したらよいのですか?

次に示すのは,Windowsスクリプト実行時ファイルのWindows 98/Me/NT 4.0版を配布する方法です。マイクロソフト社のWebサイトによれば,Windows NT 4.0では,インターネットエクスプローラ 3.02以降のバージョンをインストールしておく必要があります。
504デフォルトの名無しさん:2012/10/01(月) 19:43:53.56
FSO使わないって
Win95〜WinXPまで全部そろってるパソコン全部に入れたいとかいう依頼でも来たわけなの?
505デフォルトの名無しさん:2012/10/01(月) 21:51:32.11
そもそもFSOを使う必要はなかったりするんじゃ
506デフォルトの名無しさん:2012/10/01(月) 21:56:18.38
フォルダ構造知るだけならFSOは必要ないねDirメソッド使えばおk
507デフォルトの名無しさん:2012/10/01(月) 22:28:38.10
ファイルにアクセスするならFSOって思い込んでる人かも
508デフォルトの名無しさん:2012/10/01(月) 22:29:08.42
つーか、FSOを使う場合、CreateObjectで拾えば参照設定はいらないような気がするのだが...
509デフォルトの名無しさん:2012/10/01(月) 22:46:19.91
>>508
レイトバインディングのペナルティは検討外ですか?そうですか。
510デフォルトの名無しさん:2012/10/01(月) 23:01:46.60
そんなペナルティーなんかゼロに等しいと思うが、普通はインテリセンスが使えないのは
不便だから参照設定はするね。

しかし、本当にここだけ10年時間が遅れてるスレみたいなスレだなw

FSOなんてもう10年以上使ってないけど、一つだけ覚えているのは、
何らかの理由でFSOが使えなくなってる環境が結構あったりするということ。
511デフォルトの名無しさん:2012/10/01(月) 23:09:33.52
wshom.ocxかscrrun.dllのどちらかを使っててそれが無いってパターンか
512デフォルトの名無しさん:2012/10/02(火) 12:39:39.08
もう無理しないでFindFirstFileでやるのが
一番互換性高いだろ・・・
513デフォルトの名無しさん:2012/10/02(火) 16:15:26.45
MSおすすめの>>363のやり方でFA
514デフォルトの名無しさん:2012/10/02(火) 16:25:17.49
FSOのがコードが簡単でハイパフォーマンスなのに、なんで頑なに使おうとしないのか理解不能。
515デフォルトの名無しさん:2012/10/02(火) 16:28:14.25
バカだからだろうな
516デフォルトの名無しさん:2012/10/02(火) 17:17:10.15
FSOはVBS用のライブラリ
517デフォルトの名無しさん:2012/10/02(火) 23:50:19.72
VB厨の皆さん、そろそろjsに移行して下さいね。^^;
518デフォルトの名無しさん:2012/10/03(水) 00:22:24.93
簡単だがハイパフォーマンスとかどこの乞食だ?
519デフォルトの名無しさん:2012/10/03(水) 00:26:27.09
MSの主張
520デフォルトの名無しさん:2012/10/03(水) 01:38:48.89
FSOは遅いというイメージがあるんだが
そのイメージがどこから来たのか思い起こすと
たぶんVBマガジンに書いてあったんだと思う
521デフォルトの名無しさん:2012/10/03(水) 02:03:21.27
>>363でMSが示す
API使ったやり方
VBの標準メソッド使ったやり方
FSO使ったやり方
の3つでどれが負荷かかるかとか時間かかるかとか誰か測定したことあんのかな

古い言語だし誰かがやっててもおかしくないはずなんだが
522デフォルトの名無しさん:2012/10/03(水) 02:06:52.68
おまえやれ
523デフォルトの名無しさん:2012/10/03(水) 09:09:52.56
Dir$()はネスティングできないのが最大の欠点だな。
ネスティングするつもりがなくてもDirの活性期間中に
Dirを使っているサブルーティンを呼美出してしまい
変な挙動で悩むことがあった。
クラスで設計するようになってからこの問題はほとんど起きなくなったが
それでもコンストラクタ内の処理で同じ過ちをしてしまうことがままある。
524デフォルトの名無しさん:2012/10/03(水) 11:02:22.28
あとUSBメモリが抜けなくなるというのも
525デフォルトの名無しさん:2012/10/03(水) 12:08:28.89
それはない
526デフォルトの名無しさん:2012/10/03(水) 17:16:34.63
Dirは使い終わった後の開放処理がないから
527デフォルトの名無しさん:2012/10/03(水) 18:04:11.27
>>526
基本的に構造が良くない。

面倒でも、最初にファイルリストを何かのコンテナに入れるというところまでを一区切りにし、
そのコンテナ内のデータ分ループして、目的の処理をするという構造が望ましい。

このやり方は、FSOを使う場合でも同様だし、他言語でも同様。
また、一般に外部リソースを扱う場合も同様。
528デフォルトの名無しさん:2012/10/03(水) 18:14:12.10
安価ミスか?
529デフォルトの名無しさん:2012/10/03(水) 18:14:45.59
>>521
はやいとこ結果おしえてくれ
530527:2012/10/03(水) 18:18:03.99
ん?>>523=>>526でしょ?

間違ってないよ。
531デフォルトの名無しさん:2012/10/03(水) 18:19:56.87
IDの出ないスレで
532527:2012/10/03(水) 18:23:02.92
>>523 != >>526ってことか?

じゃ、>>527>>523あてで。
533デフォルトの名無しさん:2012/10/03(水) 18:24:03.26
なぜIDの出ないスレで決めつける
同一人物である根拠も別人である根拠もないのに
534527:2012/10/03(水) 18:27:28.53
2ch初心者に絡まれちゃったよ・・・
535デフォルトの名無しさん:2012/10/03(水) 18:36:28.77
かわいそうに・・
536デフォルトの名無しさん:2012/10/03(水) 18:41:36.11
このスレ、レス乞食大杉
537デフォルトの名無しさん:2012/10/03(水) 18:43:40.38
俺の・・・ことか・・・・
538デフォルトの名無しさん:2012/10/03(水) 20:32:39.62
>>526
まーた予感で言うなよ。
言語仕様的に開放されてないように見えるだけ。
値がNullStringになった時点で内部的にはちゃんと開放されてるよ。
539デフォルトの名無しさん:2012/10/03(水) 20:37:54.34
Dirは未だに使い方がよく分からん
540デフォルトの名無しさん:2012/10/03(水) 20:51:57.51
つまり返すデータが必要なくなってもNullStringを返すまでDirを呼び続けなければならないってことでしょ?
541デフォルトの名無しさん:2012/10/04(木) 13:35:23.24
うn
542デフォルトの名無しさん:2012/10/04(木) 15:15:28.80
なに言ってるの?
NullStringを返す時点で開放されるのはもとより
引数付きでDirを再度読んだ時点で解放されるのは言うまでもない。

今時V6を使う人間は、.netやC++で適切でない実装での選択肢として残しており
かなりハイスキルな人達だけかと思っていたが、単に.netに乗れない能なしもいることが
わかってしまった今日この頃である。
543デフォルトの名無しさん:2012/10/04(木) 15:18:07.78
                 ______
             ,.-'" ̄           "''‐- 、
        _,,. -─/                \
      /  /                    ヽ、
     /   /             ,i          ヽ,
    /    ,l          /   / .|   /l ヽ    l
   l    .|    l |    / |  ,/  | ,  | |  .!ヘ 、  |
   l     |     //i.l.|ム--レ/_    |l  _|L--、 | l/
  ./     |  L   V |l  _,,.-.、 `     "_.、-、  | |
 / /    ト./ 'l   |  "i、,j ,)       (_,,j ) .l |
 レ/     |::| `|   |   " '"         '"  |. |
  /   l  /::::l.  |   |:   (二)     _ 、   "゛゛ |. |
. /   /レ'| /::::::::ヽ┤  |::                |. |
/ ./ /:::::::`::::::::::::::::::|.  |:::                l |         初心者が来るところじゃないっすよ!?
| /| |:::::::i:::::::::::::::::::::::|. ll::::       -──     ノl |
V | |:::::::|:::::::::::::::::::::::::|. ||::il`'┐._     "   _.-''゛ |. |
  .| |::::/|:::::::|:::::::::::::::::| |'|:ト|!┴-ニ'─--┬‐''"     l.|
  ヽ |/ ヽ|:::l|;:::::::::::::::::|.| |l___    ̄─、ト 、__
   i.|   ヾ. |:/:::::::::;~‖___  ̄''‐-.__  ~`''-ニヽ
         ル-|:::::|/ __゛''‐- 、 '~‐ 、   .|、
          |::;ノ'/    ~'''-、. `ヽ、 ~''‐-"ヾヽ、
544デフォルトの名無しさん:2012/10/04(木) 15:22:14.04
まあ、Dirなんか使わんしどうでもいい
545デフォルトの名無しさん:2012/10/04(木) 15:41:42.75
よく使うぜ?
546デフォルトの名無しさん:2012/10/04(木) 15:43:38.25
Dirは余計なリソース使わんし、Win98でFSOと速度比較すると10000ファイルリストアップするのに6倍の差がある。
547デフォルトの名無しさん:2012/10/04(木) 15:50:48.68
XPだとFSOの方が速いけどな
548デフォルトの名無しさん:2012/10/04(木) 16:28:01.85
MSのページに載ってたコードで、Listに追加するのとDoEventsを取って実行。
数千ファイル以上のファイル名を取得したいときは、方法を考える必要があるね。

*

Windows XP+SSD

23309 Files found in 3635 Directories
Size of files found under C:\tool\ = 812,468,523 Bytes

Use API code: 2109ms
Use VB code: 2328ms
Use FSO: 9703ms

おまけ(上と処理内容がちょっと違うけど):
$ uname -a
CYGWIN_NT-5.1 hoge 1.7.9(0.237/5/3) 2011-03-29 10:10 i686 Cygwin

$ cd /cygdrive/c/tool
$ time find . -print > /dev/null

real 0m1.295s
user 0m0.343s
sys 0m0.967s

ひょっとしたら、Cで書いた方が速いか?
549デフォルトの名無しさん:2012/10/04(木) 16:35:11.52
ほとんどListのプロパへ書き込むときの時間だね。
比較するにもほどがるwww
550548:2012/10/04(木) 16:41:05.28
>>549
俺のコメントへのレス?
Listに追加するコードは削除して実行したってば。
551デフォルトの名無しさん:2012/10/04(木) 16:55:46.95
Win32 API最強ってことでFAだな
552デフォルトの名無しさん:2012/10/04(木) 17:31:30.68
>>549
お前、Win32APIスレに居るだろ
553デフォルトの名無しさん:2012/10/04(木) 18:02:51.02
結局FSOが致命的に遅いのがよーーくわかった。
554デフォルトの名無しさん:2012/10/04(木) 18:04:04.22
Dir関数とFindFirstがそんなに変わらんなら迷わずDirを使うわ。
555548:2012/10/04(木) 18:30:19.27
>>553
そうでもないよ。ケースバイケース。

単にファイル一覧を取得するだけなら、FSO使っても2531ms。
しかも、コードが超シンプル。
一発でコレクションになるのが良い。

Dim FSO As New FileSystemObject

Function FindFile(ByVal sFol As String)
  Dim oFolder As Folder
  Dim oFile As File
  Dim oSubFolder As Folder

  Set oFolder = FSO.GetFolder(sFol)
  For Each oFile In oFolder.Files
     'Debug.Print oFile.path
  Next
  For Each oSubFolder In oFolder.SubFolders
    FindFile oSubFolder.path
  Next
End Function
556デフォルトの名無しさん:2012/10/04(木) 19:32:57.61
おまえらFSOの話好きね
557デフォルトの名無しさん:2012/10/04(木) 19:58:08.24
2531ms 開くだけで十分遅いわ
558デフォルトの名無しさん:2012/10/04(木) 20:02:18.89
再帰キチガイがまた来たねw
559デフォルトの名無しさん:2012/10/04(木) 20:31:24.47
>>555
サブフォルダって既にフォルダオブジェクトに格納されてんのにパスを渡して新たに同じフォルダオブジェクト作るの?
560デフォルトの名無しさん:2012/10/04(木) 20:38:25.37
>>559
サブディレクトリを再帰的に舐めてるんだよ。バカか?w
561デフォルトの名無しさん:2012/10/04(木) 20:42:56.28
メソッド名ListFilesならわかるけどFindFileなら探すファイル名くらい指定しないとダメなんじゃないの?
562デフォルトの名無しさん:2012/10/04(木) 20:44:14.85
>>561
センスねーな。複数形にしてFindFilesで十分だろ?
563デフォルトの名無しさん:2012/10/04(木) 20:44:16.66
FindFileというメソッドに引数としてフォルダパスだけ渡すとかカオス設計
探すファイル名と探す場所の起点としてのフォルダパスを渡すならわかるが
564デフォルトの名無しさん:2012/10/04(木) 20:46:15.56
>>561,563
英語のfindの意味を知らないのか
小卒か?いや今は小学校でも英語を習うっつうから幼稚園卒か
565デフォルトの名無しさん:2012/10/04(木) 20:47:09.13
フォルダも探索してるのだかFindFolderAndFiles が正当だろうな。

ScanFoldersAndFilesならもっと良い。
566デフォルトの名無しさん:2012/10/04(木) 20:48:13.06
”find”は”探す”って意味じゃありません。”見つけ出す”という意味です。中学生から人生やり直して反省してください。
567デフォルトの名無しさん:2012/10/04(木) 20:49:08.10
ファイルパスしか出力してないぞ
568デフォルトの名無しさん:2012/10/04(木) 20:49:45.79
>>564
俺ネイティブだけど、Findだと見る程度の意味しかないよ?
何かを見つけ出すならFnd out。
この動作ならFindFileで十分意味が伝わるけどなぁ?
569デフォルトの名無しさん:2012/10/04(木) 20:50:43.93
>>567
「舐める」という意味がわからんのかこの坊やは?wwww
570デフォルトの名無しさん:2012/10/04(木) 20:51:10.28
ネイティブの答え

Fnd out
571デフォルトの名無しさん:2012/10/04(木) 20:55:31.62
>>570
さすがネイティブ パチパチ!
572デフォルトの名無しさん:2012/10/04(木) 21:08:10.09
英語力が問われるスレ
573デフォルトの名無しさん:2012/10/04(木) 21:10:13.00
VB6プログラマにはなぜか英語が堪能な人が多かった印象があったのに。

残念だ。
574デフォルトの名無しさん:2012/10/04(木) 21:10:14.86
>>363を見ればFindFileとFindFilesでは動作が違うということがわかーる
575デフォルトの名無しさん:2012/10/04(木) 21:10:51.79
573
同感
576デフォルトの名無しさん:2012/10/04(木) 21:10:56.64
ばざーるでござーる  か?
577デフォルトの名無しさん:2012/10/04(木) 21:13:13.55
そういえば昔、 「○○○がわかーる」 なんて学習ソフト売ってなかった?
「VB.netがわかーる」なんかもあった気がするが
もし使える教材だったらこのスレが存在してるわけないし
結局学習しても全然わからない教材だったんだろうな。
578デフォルトの名無しさん:2012/10/04(木) 21:23:12.26
Find Files
Scan Files
Search Files
Seek Files
Discover Files
Locate Files
Hunt Files
579デフォルトの名無しさん:2012/10/04(木) 21:26:48.69
英語力が問われるスレ
580デフォルトの名無しさん:2012/10/04(木) 21:27:20.72
VB6プログラマにはなぜか英語が堪能な人が多かった印象があったのに。

残念だ。
581デフォルトの名無しさん:2012/10/04(木) 21:47:16.78
質問スレなんだから質問しろバカ
582デフォルトの名無しさん:2012/10/04(木) 21:50:35.75
個人の趣味のプログラムならFSOを積極的に使っても良いですか?
583デフォルトの名無しさん:2012/10/04(木) 21:50:47.64
言っちゃなんだけどVB厨らしい低レベルな議論だな。

やってることを日本語で表現すれば「ファイルを再帰的に列挙する」だろう。
だからメソッド名は
EnumerateFiles
EnumerateFilesRecursively

普通はこうじゃないのか。
どっからfindとかseekといった単語を連想するのか俺には理解不能としか言いようが無い。

>>580
繰言は脳が劣化してる証拠。
ボケ老人も知的障害者も繰言が大好き。
ネタのつもりかもしれんが、普通の正常な人はそれをネタとして面白いと思わないから
いずれにせよ脳機能かメンタルのどこかに故障がある可能性が高い。
584デフォルトの名無しさん:2012/10/04(木) 21:52:15.61
マジレスしちゃうのはアスペの証拠
585デフォルトの名無しさん:2012/10/04(木) 21:53:35.19
>>582
ダメ
FSOはWindows98で使えないことがあるから
586デフォルトの名無しさん:2012/10/04(木) 21:54:20.14
>>582
FSOは動作が遅いからAPIのほうを使いなさい
587デフォルトの名無しさん:2012/10/04(木) 21:54:25.43
列挙とかwww

今度はEnum野郎登場かよwww
588デフォルトの名無しさん:2012/10/04(木) 21:55:43.20
問題点がそれくらいなようなので
FSOを使うことにしました。
589デフォルトの名無しさん:2012/10/04(木) 21:56:32.37
>>582
FSOなんて覚えたって意味ないよ
APIの使い方覚えたほうが他の言語でも使えるからプログラマならAPI
590デフォルトの名無しさん:2012/10/04(木) 21:58:10.11
>>583
>>363のMSの回答を全否定っすか
591デフォルトの名無しさん:2012/10/04(木) 21:59:58.57
>>582
FSO以前にこんな古いVBを捨てるべき
VB.netを覚えるか他の言語を使え
592デフォルトの名無しさん:2012/10/04(木) 22:00:25.13
FSOで列挙。

ENUM FSO
  FOLDER
  FILE
  FIND
END ENUM
593デフォルトの名無しさん:2012/10/04(木) 22:01:50.46
>>582
時代はC#
594デフォルトの名無しさん:2012/10/04(木) 22:02:01.52
VB6はアンマネージコードを吐ける最後のBASICコンパイラ。
Wn98でも実用レベルの実装が可能。
.netには逆立ちしてもできん芸当。
595デフォルトの名無しさん:2012/10/04(木) 22:03:01.80
Win98のくだりは関係なくね?
596デフォルトの名無しさん:2012/10/04(木) 22:03:46.53
VB6とC++を自在にこなすオイラだが、.netだけは未経験。
そんなに遅いのかい?.netって?
597デフォルトの名無しさん:2012/10/04(木) 22:04:17.84
>>582
PHPかRubyかPythonかPerlを覚えて使えばいいよ旧VBなんて使うな
598デフォルトの名無しさん:2012/10/04(木) 22:05:35.22
>>589
こんなの覚える必要ありますか?
マニュアル見て使うだけだと思いますが?
599デフォルトの名無しさん:2012/10/04(木) 22:09:32.68
>>582
業務で旧VBを使ってるとかならともかく
個人の趣味で旧VBを使うとかアホだぞ
さっさと新しい言語覚えて使え
600デフォルトの名無しさん:2012/10/04(木) 22:15:59.67
最近はVB6よりこっちを使う事が多い。
http://www.htaedit.com/

スクリプトをソースで渡せるしEXEにもできるし。
性能も悪くないよ。

もちろんFSOも再帰もEnumも使えるw
601デフォルトの名無しさん:2012/10/04(木) 22:17:12.99
これもセットでどうぞ!
http://www.vbsedit.com/
602デフォルトの名無しさん:2012/10/04(木) 22:18:32.69
たしかに個人の趣味でこんな古いVB使うとか頭おかしいな
603デフォルトの名無しさん:2012/10/04(木) 22:39:12.21
趣味だからこそVB6が許される。
仕事で使っていたらプゲラだろ?
ふつうは
604デフォルトの名無しさん:2012/10/05(金) 00:01:28.07
そういえばもう何年もVB6の新規案件という話は聞かないな。
当然といえば当然か。
605デフォルトの名無しさん:2012/10/05(金) 00:08:47.75
クライアントにPCを新しくするよう要求してろよ
606デフォルトの名無しさん:2012/10/05(金) 00:17:04.62
業務でも趣味でも旧VBは使われなくなりました

このスレを終わらせてください
607デフォルトの名無しさん:2012/10/05(金) 00:25:06.72
君が見なけりゃいい事だよ
608デフォルトの名無しさん:2012/10/05(金) 00:27:14.08
どんな言語よりも
この旧VBで作ったほうが良いっていうアプリとかどんなのある?
つまり他のどの言語よりも旧VBだけが持ってる優れた部分って何がある?
609デフォルトの名無しさん:2012/10/05(金) 00:38:14.36
何もない
610デフォルトの名無しさん:2012/10/05(金) 00:42:33.94
そんなものはない。一切ない。
どうでもいいけど、何で自分がそんなVB6を擁護するレスを期待するような見え透いたことを書くのか
少し考えた方がいいんじゃないの?

VB6しか使えない使えない自分を擁護して欲しいんだろ?
っていいうか、本当はわんくまのじゃんぬとか言う人が言うように、こういう人は
VB6もまともに使えてない可能性が高い。
611デフォルトの名無しさん:2012/10/05(金) 00:45:13.72
Office VBA
612デフォルトの名無しさん:2012/10/05(金) 00:59:24.28
旧VBが優れた点が無いのなら個人の趣味で使うのはやめたほうがよい
613デフォルトの名無しさん:2012/10/05(金) 01:11:42.56
なんで?
614デフォルトの名無しさん:2012/10/05(金) 01:12:45.08
将来性がない
老い先短い老人ならいいが
PCだって寿命のある家電
いつかは買い替えるだろ?
旧VBがいつまでも使えると思うな
615デフォルトの名無しさん:2012/10/05(金) 09:01:26.11
VB6開発環境を、Win7の64bit環境で使う方法を教えてくれないか?

VB6のインストーラを管理者権限でインストールして、SP6を当てるところまではやった。
ちゃんと起動するし、フォームにボタン載せるぐらいの簡単なプログラムならコンパイルもデバッグもできる。
でも、手持ちの大きなVB6アプリのソースをコンパイルしようとすると開発環境がフリーズしてしまうんだ。
タスクマネージャーで強制終了するしかなくなる。
そのアプリは、いろんな参照設定とか、Win32APIとか呼びまくってるソースなんだけど、
もちろんXP上でコンパイルしたら問題なくコンパイルできるよ。

同じ経験した人、何が原因か分かる人いますか?
616デフォルトの名無しさん:2012/10/05(金) 09:32:18.56
今時VB6を法人での採用事例がまだ少ないWin7 64bitで使う?
居たとしてもみんなXPモード使ってるよ。
だから自分で調べるしかない。

VB6の管理者起動試した?
互換性の設定全部試してみた?
そのアプリそもそも動くの?
デバッグ実行は?
617デフォルトの名無しさん:2012/10/05(金) 09:35:25.17
>VB6の管理者起動試した?
>互換性の設定全部試してみた?

試した。

>そのアプリそもそも動くの?

XPでコンパイルしたものをWin7 64bit環境にインストールすれば動く。

>デバッグ実行は?

これもフリーズする。
618デフォルトの名無しさん:2012/10/05(金) 09:39:14.09
>>614
>老い先短い老人ならいいが

うちのじいちゃん78才だけどVB6しか使えない。
でもじいちゃんが言うんだ。

 「年老いて能力が若い時の10分の1になったら

  10倍時間をかけて組めばいい。

   頭の足りない若造が作る足りないソフトより
 
   わしの作るソフトは大衆に気に入られておる。」
 

だってさ。 
619デフォルトの名無しさん:2012/10/05(金) 09:40:51.39
>>618
45でVB6使いの私には共鳴するところがある
620デフォルトの名無しさん:2012/10/05(金) 09:49:39.24
45歳以上の.netに移行してないVB6プログラマ300人にアンケートを取った結果です。

Q13 あなたはなぜ.netへ移行しないのですか?



  ・イベントの引数に訳のわからんものが増えているから。

  ・コンパイル後にJIT適用しても遅い感じだから。
   スカラー型変数だけを使えばVB6はCコンパイラと実行性能はそれほど変わらない。

  ・i As Integerと宣言しただけでNewしてそうできもい。

  ・プロファイラで簡単に逆コンパイルされるのでプロプライエタリを維持できない(オープンソースがデフォ)

  ・Javaと同じくAPIを使わないで自前のアルゴリズムだけで組むとN88 BASIC程度の性能しか出ない。

  ・単に面倒くさい。
621デフォルトの名無しさん:2012/10/05(金) 09:55:35.35
>>615

自分が担当してるプロジェクトでは使用しているコントロールが
Win7&VB6では使用できない(vbp立ち上げ中にエラー)のでいまだにXPで保守している。

空っぽのプロジェクトに参照設定をひとつずつ足していって原因になってるのをつきとめて
バージョンアップするなり代替策を用意するのがいいんでないかと思う。
622デフォルトの名無しさん:2012/10/05(金) 10:07:47.88
x64に対応していないのはIDEだけなのだから
x32で開発してx64で走らせればいいだけの事。
なんでそんな事も分からないのか?
それになぜ消去法で原因をみつけようとしないのか?
聞けば誰かが答えてくれる。そう思って2chを使う気なら
君はボロボロにされてしまうよ。
623デフォルトの名無しさん:2012/10/05(金) 10:08:20.10
x32
624デフォルトの名無しさん:2012/10/05(金) 10:29:02.04

x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x3 
32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 
2 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32  
 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x 
x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x3 
32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 
2 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32  
 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x 
x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x3 
32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 
2 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32  
 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x 
x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x3 
32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 
2 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32 x32  
625デフォルトの名無しさん:2012/10/05(金) 10:42:33.42
>>618
以前はプログラマ35歳定年説とか言われたけど
昔の開発環境だったらその通りだと思う
でも今の開発環境だと例えば自分で作り貯めたライブラリとかを
組み合わせるだけで先っちょの部分はそこそこできてしまう

若者の10分の1のスピードなら10倍時間をかければいいという話も
実際はそんな単純な話ではないはず
囲碁や将棋のように作る前から先が見通せるからね
最近はちょっとしたコードなら一発で動作して自分でも驚くことが多い
626デフォルトの名無しさん:2012/10/05(金) 12:36:54.28
>>621
確かに古い時代に購入したサードパーティー製のたちの悪いコントロールを使ってると、
Win7ではエラーが出るということはあるね。
おそらくDLLなんかの読み込み先をsystem32とかの決め打ちで書いてるバカなソースなんだろう。
しかしそれはXPでコンパイルしたexeを、Win7にインストールしても動かないというケースだ。

俺の場合はexeはWin7 x64では動くけど、ソースを開発環境でコンパイルができないというケース。
現状ではVMware上のXP環境でコンパイルするしているが、
Win7で直接コンパイルする手段があるならそうしたい。
627デフォルトの名無しさん:2012/10/05(金) 13:03:03.26
1:古い業務用VB6ソフトを仕事で嫌々保守ー> ストレス溜まる。精神的不安が免疫力を低下させー>健康問題発生
2:趣味でこれから新しいプロジェクトを立ち上げるー>頭おかしい。
3:趣味の古いプロジェクだが、それなりのファンや愛用者がいて機能拡張を期待されてる。windows8でも使えそう−>プログラミング楽しい。

3:以外の方はご愁傷様といわざる得ない
628デフォルトの名無しさん:2012/10/05(金) 14:59:42.29
VB6の良いところは、BASICって事だろ
VB.NETだと、BASICと言うには、ちょっと高度な内容だと思う
629デフォルトの名無しさん:2012/10/05(金) 15:01:04.48
高校数学の教科書やセンター試験の数学は未だにBASICなのかな
630デフォルトの名無しさん:2012/10/05(金) 15:02:46.43
今時あんな古い行番号BASIC扱えるパソコンなんかないのに
大学入試センター試験は頭おかしい
631デフォルトの名無しさん:2012/10/05(金) 15:20:24.30
仮想言語でプログラムできるってのは重要な素養だとおもうぞ
もちろんそこまで考えてないだろうが。
まあ若くしてプログラムしてる学生へのおまけだと思えば。

VB.NETって.NET FrameworkでのC#に対する優位性が
一見VB6に見えるから移行しやすそうに見えるってだけなんだよなー
だったらVB6の文法のまま進化すればよかったのに
632デフォルトの名無しさん:2012/10/05(金) 15:48:56.63
VB6の文法で.NETの中間コード生成するコンパイラをおまんらが作ればいい
633デフォルトの名無しさん:2012/10/05(金) 15:53:21.91
そんなスキルあるやつがVB6なんて使ってないってばよ
634デフォルトの名無しさん:2012/10/05(金) 18:53:16.81
>>632
それが間もなくMSからリリースされる新VB6だろ?
.netだけでなくアンマネージドなコードも出せる点が異なるが。
まあVC++と同じ特性をもつって事だが、ランタイムが新しいOLEオートメーションらしく
そっちの方に興味がある。
635デフォルトの名無しさん:2012/10/05(金) 19:03:25.37
>>634
OLEAUTOではなくなると聞いたけどね。
636デフォルトの名無しさん:2012/10/05(金) 19:08:44.29
でもOLEだろ?
637デフォルトの名無しさん:2012/10/05(金) 21:35:06.82
>>606
完全脱却か、羨ましいなあ
まだ保守案件残ってるよ
638デフォルトの名無しさん:2012/10/05(金) 21:52:20.10
編集ウインドウを3分割可かプロシージャ毎に閉じれるようにして欲しい
複数行になる時の行末の _ の後ろにコメントを書きたい
5つくらいの変数に色付け指定ができるように
MSの人見てないか
639デフォルトの名無しさん:2012/10/05(金) 21:55:51.43
Skincrafterってソフトでフォームを飾ったら、VB6もあと10年はイケルと思った。
http://skincrafter.com/gallery

アウトソースを受けてる某顧客にこれでスキン付けて納品したら、
最新の開発環境をお持ちのようで羨ましい限りですと誉められた。
中身がVB6とも知らずにねwww
640デフォルトの名無しさん:2012/10/05(金) 21:57:16.61
641デフォルトの名無しさん:2012/10/05(金) 22:33:17.11
>>639
言語知らせてないの?
642デフォルトの名無しさん:2012/10/05(金) 22:59:55.42
>>638
>>複数行になる時の行末の _ の後ろにコメントを書きたい
 
 同感だねぇー
 他の2つはツール買って貰って解消
643デフォルトの名無しさん:2012/10/06(土) 08:55:00.41
>>641
出来の悪いステマでしょ。
言語なんて普通発注元から指定されるし。
644デフォルトの名無しさん:2012/10/06(土) 08:57:27.27
言語指定なしの受託って少ないけどあるよ。
まあかなり信頼されているベンダーでないとあり得ないだろうが。
ウチの場合はすべてお任せって案件も少なくない。
そのケースでVB6を使う事は有り得ないけどね。
645デフォルトの名無しさん:2012/10/06(土) 08:58:50.36
>>643
そのメーカー海外だろ?
ステマって・・・。
しかもマイナーなVB6板で…。
ワロスwww
646デフォルトの名無しさん:2012/10/06(土) 19:00:19.11
>>639
会社の改良試作予算が残っていたので思わず買ってしまった。。。
ちょっと高いがまあソースも付いてるし、会社の金だから腹いたまんし。

647デフォルトの名無しさん:2012/10/06(土) 19:21:53.29
>>645
だから「出来の悪い」って書いてあるんだが…
バカはこれだから。
648デフォルトの名無しさん:2012/10/06(土) 20:22:35.61
ステマじゃないだろ?日本語不自由な北朝鮮?
649デフォルトの名無しさん:2012/10/06(土) 20:50:47.74
図星突かれて、顔真っ赤 (w
650デフォルトの名無しさん:2012/10/06(土) 20:52:29.32
ファビョってるステマちゃんw
651デフォルトの名無しさん:2012/10/08(月) 00:41:58.59
VB6に慣れちゃったからVB6でずっと作っていくつもりだよ(趣味グラマ)
652デフォルトの名無しさん:2012/10/08(月) 07:16:41.65
趣味なのにVB6とか持ってるとか不思議。割れ?
653デフォルトの名無しさん:2012/10/08(月) 07:36:19.72
意味わからん、Delphi とか VB6 とか普通に個人で買った奴はいくらでもいるだろうに。
654デフォルトの名無しさん:2012/10/08(月) 07:43:05.78
マジで?あんな高いものよくかえるな?
まあどうせ会社のをコピーしたんだろうけどw
655デフォルトの名無しさん:2012/10/08(月) 07:53:18.68
同じ言語習得と、わけのわからぬ理屈付けをして…
英会話教室に数十万費やすやつは基地外なわけだ
656デフォルトの名無しさん:2012/10/08(月) 08:39:27.22
て言うか、趣味としてはかなり安い部類だと思うぞ。
車とかオーオタだと桁が違うし (w

まあ、人は自分のやってることは人もやってると思いたがるものだから、

> まあどうせ会社のをコピーしたんだろうけどw

が、全てを表してるでしょ。
657デフォルトの名無しさん:2012/10/08(月) 09:45:59.35
昔ね VC4 のラーニング・エディションを一万程度で購入した記憶があるのだが…
それで十数年飯食えてるヤツもいれば、二・三週間しかもたないようなゲームを
一万数千円もだして数十本買うヤツもいるんだよね
658デフォルトの名無しさん:2012/10/08(月) 09:53:06.92
VB6のスタンダードって6万くらいだったよな
659デフォルトの名無しさん:2012/10/08(月) 09:55:11.76
仕事で使う事前勉強の為にVisualStudioに自腹で10万ほど費やしたが
今考えるともったいなかった
660デフォルトの名無しさん:2012/10/08(月) 10:01:12.11
自分も昔、コピーを疑われたことがあったなぁ。
何故そう思うのか不思議だったか、その人、もしくはその人の周りがそうだったんだろうね。
661デフォルトの名無しさん:2012/10/08(月) 10:05:24.79
趣味ならVB6じゃなくてDelphiとかVC++とか買う気がする
フリーソフトとかランタイムライブラリが嫌われてたし
662デフォルトの名無しさん:2012/10/08(月) 10:07:04.68
「内部統制」とかいってプロダクトIDの確認すればいいんだよ。
外注も含めて社内で作業する人全員分
663デフォルトの名無しさん:2012/10/08(月) 10:20:30.72
>>661
> 趣味ならVB6じゃなくてDelphiとかVC++とか買う気がする

まだ言ってるのか…、自分の世界が全てと思うタイプなのかな
664デフォルトの名無しさん:2012/10/08(月) 10:43:30.84
>>661
昔から趣味にしてる人は
8bitのBASIC→(QuickBASIC)→VB4ぐらいまでは流れる人がいても不思議じゃない
665デフォルトの名無しさん:2012/10/08(月) 11:06:32.47
TK80BS を十万以上出して購入した俺の父親は酔狂だったかと思う。
でも、俺は父親が好きだ。
666デフォルトの名無しさん:2012/10/08(月) 11:29:29.61
>>661
VB6製フリーソフトもたくさんあったし、趣味でVB6も十分あると思うよ。
まぁ、確かに自分が趣味で買ったのはDelphiで、VBは就職して使ったのが初めてだったけど。
667デフォルトの名無しさん:2012/10/08(月) 13:18:51.37
>>646
あとで使い勝手おしえてくださいませ。
668デフォルトの名無しさん:2012/10/08(月) 14:34:57.26
学生の時にVB6のLEを買ったからアカデミックパッケージでお安かったよ。10年以上VB6でしか開発してない(趣味グラマ)
669デフォルトの名無しさん:2012/10/08(月) 14:36:13.21
>>646
改良試作でVB6?
670デフォルトの名無しさん:2012/10/08(月) 15:45:19.19



 















671デフォルトの名無しさん:2012/10/08(月) 21:43:43.08
さすがに今となっては趣味でVB6使う気にはなれんなぁ
VB2010のExpressとか使うよな?
672デフォルトの名無しさん:2012/10/08(月) 21:44:45.19



















673デフォルトの名無しさん:2012/10/08(月) 21:50:38.11
>>671
昔ならパソコンはプログラムを作成して利用する物だったけど
現在、それを行ったら "自動車は改造して羽をはやして乗車するもの" を
あたかも常識として語り、キモイヤツと思われるのがおちでしょ
F1レースなら羽を生やしても空力等と言ってもらえるんですけど
674デフォルトの名無しさん:2012/10/08(月) 22:30:29.25
>>671
VB.NET 使うなら、C# の方が楽じゃね?
675デフォルトの名無しさん:2012/10/08(月) 23:58:39.62
>>674
一応このスレ的にはVBって事でw
機能的にはだいたい変わんないみたいだし

>>673
ごめん何言ってるか分かんない
676デフォルトの名無しさん:2012/10/09(火) 00:03:55.48























677デフォルトの名無しさん:2012/10/09(火) 09:12:54.79
最新のVisulStudio 2012までずっと割れで通してきた俺様が来ましたよ?
2010は体験版インスト後、インストールの変更時に製品の尻を入れればそのまま使えたが
2012はアクチを導入したりやっかいだったけど、それでも抜け道はあったね。
VB6はどうやって手に入れたか忘れたけど、昔はMSDNの正規会員だったこともあった。
CDがたくさん送られてきてバインダーが3個付いてきた時代。
それ以降は御付き合いが無いね。
678デフォルトの名無しさん:2012/10/09(火) 10:46:07.97
おれおまー
679デフォルトの名無しさん:2012/10/09(火) 13:28:31.31
>>673
プログラミングを学ぶということは、自動車の運転技術を学ぶ事と同じであり、自動車の改造をする事とは違う
680デフォルトの名無しさん:2012/10/09(火) 13:34:37.65
喩えを使うと、議論が駄目になる良い例。
681デフォルトの名無しさん:2012/10/09(火) 14:56:25.04



















682デフォルトの名無しさん:2012/10/09(火) 16:54:52.83
意味不明な喩えを使わないで>>673を簡単に言うと
今時、プログラムでアプリを自作する奴はキモい
フリーソフトを使いこなしてこそスマートである、と

キモくても何でもいいよ
必要なものは自分で作る
人の作った使い難いアプリを我慢して使い続ける必要はサラサラない
683デフォルトの名無しさん:2012/10/09(火) 17:50:40.16

















684デフォルトの名無しさん:2012/10/09(火) 22:01:01.15
ねっ、たとえ話をすると、プログラミング等でわけわからんこととやりだすやつ
の根底にある問題点が簡単に露見するでしょ
同じネタを 679 と解釈するやつもいれば 682 と解釈するやつもいる

絶対的な手法も多く存在しているかと思うけど、
マニュアルにある、サンプル(たとえ話)を参考にてプログラミング技術を
習得できるやつとできないやつの差ですよ。

685デフォルトの名無しさん:2012/10/09(火) 22:08:04.44






















686デフォルトの名無しさん:2012/10/10(水) 02:02:31.05
今日日、VBに出来て、ブラウザに出来きないことって何だろ
687デフォルトの名無しさん:2012/10/10(水) 02:05:11.66
VBのサンプルコードって何処で手にはいるんだ?
もはや化石を通り越して石油になった技術
688デフォルトの名無しさん:2012/10/10(水) 02:06:34.19
「VB6 -.NET」でググれば出てくるんじゃね
689デフォルトの名無しさん:2012/10/10(水) 02:54:30.41
>>687
少なくとも、MSDN Library や DirectX SDK
直接適用できないかもしれないが VBA のサンプル・コード
現在でも入手確実なんて話ではないが
その時に自分が必要でなくとも、無料で配布してくれているときに
ダウンロードしておかなかった自分が悪い。

優れたフリーウエアでソース・コードまで添付してくれている神の
ような作者さんもいる。
そのような人のソースの多くはプログラム自体も美しいと表現で
きるだけでなく、コメントの書き方まで参考になるよ。
690デフォルトの名無しさん:2012/10/10(水) 07:52:05.72





















691デフォルトの名無しさん:2012/10/10(水) 09:29:21.20
正規表現の確認に便利なレスが。
692デフォルトの名無しさん:2012/10/10(水) 12:13:10.29




















693デフォルトの名無しさん:2012/10/11(木) 23:15:19.53
久々にExcelでVBAしてたら
懐かしいダイアログが出て笑った
VBA、.netにならんのかなぁ
694デフォルトの名無しさん:2012/10/11(木) 23:48:02.56
Excelが.NET Framework製になったらありうるんじゃね
695デフォルトの名無しさん:2012/10/12(金) 00:20:27.83
うぇ…Excelがきちんと印刷できるようになるのと
どっちが早いかなぁ…orz
696デフォルトの名無しさん:2012/10/12(金) 00:31:54.59
そうなるとリバースエンジニアリングされやすそうだよな
697デフォルトの名無しさん:2012/10/12(金) 15:33:00.61
ソース編集して集中してくると何故か勃起してきて
ソース見ながらシコってしまう
そんな域に俺は到達している
698デフォルトの名無しさん:2012/10/12(金) 18:49:19.90
>>697
これが変態の領域というやつか
699デフォルトの名無しさん:2012/10/12(金) 20:01:09.70
FormのBorderStyleを0(なし)にして、
ウインドウのタイトルバーも枠もなしにしたのだけど
メニューエディタからポップアップ用のメニューを追加したら
ウインドウのタイトルバーが表示されてしまいます
BorderStyleの設定が無視されます
これはVBのバグ?
700デフォルトの名無しさん:2012/10/12(金) 20:13:09.88
そのポップアップ用のメニューの表示のチェックを外せ
701デフォルトの名無しさん:2012/10/12(金) 20:17:50.61
そんでフォームのcaptionを空にしてcontrolboxやminbuttonやMaxbuttonもfalseにしろ
702デフォルトの名無しさん:2012/10/12(金) 20:49:16.87
>>700-701
そんなのとっくにやってるよ






と思ったら、Captionをブランクにしたらできたー
なんだこれー
ありがと!!
703デフォルトの名無しさん:2012/10/12(金) 20:54:06.67
素直な奴。このおちゃらけぶりの血液型はB型である確率98%だわw
704デフォルトの名無しさん:2012/10/12(金) 20:57:55.24
血液型と性格の関係性は98%無いらしいぜ
705デフォルトの名無しさん:2012/10/12(金) 21:08:03.17
>>704
釣りなのかもしれんが一応マジレスすると
別にフォームを作ってそのフォームにポップアップ用のメニューを作るのが一般的

VB6 form borderstyle ポップアップメニュー でググればやり方出てくるよ
706デフォルトの名無しさん:2012/10/12(金) 21:09:08.16
安価ミスった
>>705>>702へのレスね
707デフォルトの名無しさん:2012/10/12(金) 21:16:40.66
>>706
このおっちょこちょいぶりは間違いなくO型。99%確定!
708デフォルトの名無しさん:2012/10/12(金) 21:45:21.78
http://toro.open2ch.net/tech/
みんなこっち行こうず
IDあるほうがまだマシ
709デフォルトの名無しさん:2012/10/12(金) 22:17:11.20
>>708
そこ人いないんだよなぁ
規制になったら行くよ
でもそこができた途端に2chの規制がなくなったという有難いサイト
710デフォルトの名無しさん:2012/10/13(土) 02:32:10.41
>>705
ポップアップメニューごときでフォームを追加するのは気が引けるなぁ
かと言って>>700-701でできたと思ったら、よく見ると
ウインドウに1ピクセルの黒枠が付いてる
ここらへんの作りがやっぱ変だわ
711デフォルトの名無しさん:2012/10/13(土) 02:49:09.74
非難癖の付いた人間は
そこで立止ることが自分に不利益となることを知らないのかね ?
状況・現象等が明らかなのだから回避して
さっさと先に進めば良いじゃないか
712デフォルトの名無しさん:2012/10/13(土) 09:57:21.01
>>710
APIでメニュー作れよ。MFCを使わんC++プログラマの俺に不可能はない。
713デフォルトの名無しさん:2012/10/13(土) 11:03:31.23
>>712
MFC バージョンで辛酸でもなめたの ?w
714デフォルトの名無しさん:2012/10/13(土) 11:51:50.92
>>713
いや、ランタイム一切なしでビジュアルプログラムを作るのが俺の醍醐味。
715デフォルトの名無しさん:2012/10/13(土) 15:40:07.61
若い時の苦労は買ってでもせよって言うしね
APIでの実装もいいかもね
716デフォルトの名無しさん:2012/10/13(土) 17:04:19.44
別に苦労じゃないし。クラスを色々作っていくと結構高度な事も短時間に出来る。
さすがにVB6の即席プログラミングにはかなわないが。
BASICのくせに作りようによってはC++とそう変わらん実行性能を発揮できるしな。
まあ腕がない奴はどの言語を使ってもダメってこと。
へぼな奴が作るC++ソースのプログラムなら、スクリプト言語で勝てる場合がある。
717デフォルトの名無しさん:2012/10/13(土) 23:28:25.85
自分の作ったプログラム、他人と比較する機会ってないなぁ
718デフォルトの名無しさん:2012/10/14(日) 00:11:56.55
>>716
> 腕がない奴はどの言語を使ってもダメってこと
五寸釘打ちこむなよ、一発で貫通するだろw
719デフォルトの名無しさん:2012/10/14(日) 00:28:38.80
一発で貫通させた方が、本人のためだろ。







苦しまずに済む。
720デフォルトの名無しさん:2012/10/14(日) 03:06:09.08
つまりのところ
ジョブズが馬鹿へ下した鉄槌が iPad 等のタブレットだな
とりようによっては酷い製品だよ
721デフォルトの名無しさん:2012/10/14(日) 03:48:13.57
> 腕がない奴はどの言語を使ってもダメってこと
VBなら動くからな、CやC++なら確実に止まるんだが
722デフォルトの名無しさん:2012/10/14(日) 04:00:00.03
推測でもうしわけないが
それは、Basic言語やC言語の特性上、なんらかの処理に対する
アルゴリズムが通用しないような話ではなく
VB という固有のコンパイラが、ある種独特な処理を行っているので
許容されて動いていたプログラミング技法が、他で通用しないって
話ではなかろうか
723デフォルトの名無しさん:2012/10/14(日) 04:10:05.04
>>722
プログラミングについて知らないなら語るなw
初心者か、パソコンに詳しい記者レベルの発言で笑ったぞ。
724デフォルトの名無しさん:2012/10/14(日) 04:28:39.99
そういうお前は、VB に精通しまくったあげく
VB 以外でプログラム不能となった奴なんだろ
725デフォルトの名無しさん:2012/10/14(日) 14:50:23.66
昔から、VBって入門者向けの環境って言われてたのに何でVBからvc++へ移行せずに使い続けたの?
技術者として同情する余地がないクズだよ
726デフォルトの名無しさん:2012/10/14(日) 14:53:18.51
うん。で?
727デフォルトの名無しさん:2012/10/14(日) 14:53:58.73
だいたい、VBって環境じゃyaccみたいなツール群が作られないじゃないか
ポトペタのGUIだけなんてVBプログラマだとhtmlのコーダー以下の老害だよね
728デフォルトの名無しさん:2012/10/14(日) 15:31:47.00
>>725
核となる部分を C++ 等で DLL や EXE として作成し
FrontEnd 等、操作、表示に関する部分を VB でちゃっちゃと済ませる
そんなやり方はダメなのか ?

VB は初心者向け、上級者気取りたいやつなら C++
VB 使うなら VB だけ、旧VC の GUI 作成がかったるいなんて言うのは
お前が馬鹿なだけ。
そういう話なの ?
729デフォルトの名無しさん:2012/10/14(日) 15:37:57.64
C++ できる俺スゲーって言いたいお年頃なんだろ。

優しくスルーするか、よしよしって言って慰めてやりなよ。
730デフォルトの名無しさん:2012/10/14(日) 19:05:13.35
言語習得に時間を割ける末端の土方プログラマーならC++でも何でも習得したら良い
本業でない人も趣味の人もいるんだよ
731デフォルトの名無しさん:2012/10/14(日) 20:19:52.69
>>728
VB側でDLLの関数をDeclareさせたり、String * Nの定義をさせるCプログラマーは糞。
732デフォルトの名無しさん:2012/10/15(月) 14:00:22.74
質問/~~~
海=%E6%B5%B7
右のこういうコードって、何て呼ぶの?
733デフォルトの名無しさん:2012/10/15(月) 14:06:42.61
真面目に質問したら答えます
734デフォルトの名無しさん:2012/10/15(月) 14:07:37.95
URLエンコード?
http://o2soft.jp/tool/urlencode/
735デフォルトの名無しさん:2012/10/15(月) 14:15:25.75
>>734 <(__)>
736デフォルトの名無しさん:2012/10/15(月) 23:17:50.18
巷で噂のタイマーソフト、どんなのか知らないけど
ボタンを押したら計測を開始するプログラムを作って、2つ起動したとします
で、同時にスタートボタンを押したい
・つまり、片方から他方に「自分でボタン押せ」と連絡したい
・100msec程度なら遅れてもいい
・でもメールボックスとかじゃなくてイベントで受けたい
・でもサブクラスとか難しいのは嫌
そんな方法はありますか?
737デフォルトの名無しさん:2012/10/15(月) 23:27:48.63
自首しろよ
738デフォルトの名無しさん:2012/10/16(火) 00:19:52.24
App.PrevInstanceプロパティを使って
1つ目を起動したときShellメソッドで2つ目を起動し
(App.PrevInstanceプロパティで1つ目2つ目かを分かるように表示変更し)
1つ目のほうの開始ボタンを押したら
AppActivateメソッドとSendKeysメソッドで2つ目のほうに開始の合図を送ればいいんじゃね

とプログラミング初心者の私は考えた
試してないから知らんけど
739デフォルトの名無しさん:2012/10/16(火) 01:07:13.34
>>738
起動は別アプリからなのでSetForegroundしてからSendKeysして、
受け側はForm_KeyDownイベントですか
う〜ん、自分で考えた方法よりいいかも

自分で考えたのはFormのWidthを例えば500ピクセルにしておいて
他方からSetWindowPosで501にする。
Form_Resizeイベントで受け取ってMe.Widthが501になってたら500に戻して
Command1.Value=True
ま、趣味のプログラムだわな
人のプログラムがこんなことしてたら激怒しちゃう
SendMessageでWM_Lボタンダウンが正しいのだろうけどちょっと大変
740デフォルトの名無しさん:2012/10/16(火) 04:41:22.01
>>736
あたりまえのことで指摘します。
MS は各機能の利用方法を推奨、限定、指示等していませんが
本来、人間が指示をあたえるためにあるような部分を
あえてコンピュータに制御させるようなプログラム技法は
なにやら悪意を感じ、犯罪の臭いが漂ってます。
741デフォルトの名無しさん:2012/10/16(火) 13:22:41.76
>>740
悪意はないのです
タイマーソフトを例にしましたが、実際は自作の動画再生ソフトです
画質が違うけど内容が同じビデオを同じコマで止めておいて
同時に再生開始して見比べたいだけなんですお
742デフォルトの名無しさん:2012/10/16(火) 18:49:17.50
743デフォルトの名無しさん:2012/10/16(火) 19:50:25.27
それって再生開始位置を細かくしていできる適当な動画再生ソフト使って
APIのGetCursorPos,SetCursorPos,mouse_eventで
再生ボタンの位置を同時にクリックすればいいだけじゃね

前にこのAPIをもぐらたたきゲームに使ってハイスコア出したことある
744デフォルトの名無しさん:2012/10/16(火) 19:54:35.59
>>743
ハイスコア表示させるパッチ (ry
745デフォルトの名無しさん:2012/10/16(火) 20:03:54.13
>>742
WinSockがプロセス間通信にも使えるんだ
746デフォルトの名無しさん:2012/10/17(水) 16:09:46.68
>>744
だな
スコア表示部のハンドルを取得して
キャプションをSetWindowTextあたりで書き換えれば良さそうだ
747デフォルトの名無しさん:2012/10/17(水) 19:07:21.89
ハイスコアの表示を書き換えるとかイミフ
748デフォルトの名無しさん:2012/10/17(水) 19:31:40.41
プレイが問題ではなく、ハイスコアなんだろ
意味は十分あるじゃないか、なにも問題はない
そういうのはね、言いがかりっていうんだよ
749デフォルトの名無しさん:2012/10/17(水) 19:46:23.07
記録を残すという目的じゃなく表示だけ変えたいというなら
もぐら叩きのアプリごとにハイスコアを書き換えるソフト作ることが妥当だね
750デフォルトの名無しさん:2012/10/18(木) 19:59:09.29
メールスロットはコードは簡単だよね
ネットワーク設定さえしておけば
あとサービスもいったかな
751デフォルトの名無しさん:2012/10/18(木) 20:54:46.43
プロセス間通信
http://msdn.microsoft.com/ja-jp/library/cc392662.aspx

どれも難易度高そう
752デフォルトの名無しさん:2012/10/18(木) 21:55:08.62
アトムとかメールスロットとか何なのか書いてないのな
753デフォルトの名無しさん:2012/10/18(木) 22:21:52.27
for i = 1 to 10
 for j = 1 to 10
  for k = 1 to 10
   (i, j, kに関する処理)
  next k
 next j
next i

というループ処理なんですが、3つぐらいだとまだいいんですけど、
添え字i, j, k ,,,,,が100個となると面倒です。
どのように書くとよいでしょうか
754デフォルトの名無しさん:2012/10/18(木) 22:23:09.80
気もい死ね
755デフォルトの名無しさん:2012/10/18(木) 22:39:47.20
>>753
iを配列にしなさい
756デフォルトの名無しさん:2012/10/18(木) 22:39:47.95
>>753
残念ながらお手上げです
100個を地道に書き上げてください
757デフォルトの名無しさん:2012/10/18(木) 22:42:05.70
添え字100個全部使う処理をするだろ?面倒臭がらずにfor文も100個書けや
758デフォルトの名無しさん:2012/10/18(木) 22:45:20.42
アルファベットは100個ないのにどうやって実現する気なんだろう
759デフォルトの名無しさん:2012/10/18(木) 22:46:22.21
>>730
いやいや趣味でも移行しろよ。他人が書いたコード読めないだろ。
以降するにしても、jsとhtml5な時代。
760デフォルトの名無しさん:2012/10/18(木) 22:52:06.42
多言語のコード読むのってそんなに難しくないと思うけど
細かい文法とか覚えてないから使うことはできなくても
読むだけならだいたいどの言語でも大差ないっしょ
761デフォルトの名無しさん:2012/10/18(木) 23:01:31.60
同意。けれど、多言語のコードを読んでおきながら趣味でVBはないわー
762デフォルトの名無しさん:2012/10/18(木) 23:10:41.27
覚える必要があるのは文法だけじゃないからね
IDEとかコンパイルの仕方とか色々あるから

新しい言語覚えるのは面倒
763デフォルトの名無しさん:2012/10/18(木) 23:17:00.01
多言語って何かと思ったら他言語の誤字か?
764デフォルトの名無しさん:2012/10/18(木) 23:26:28.06
>>753は何か勘違いしてる
100次元配列なんて存在はこの世にありえない
765デフォルトの名無しさん:2012/10/18(木) 23:39:20.19
>>763
複数の、多数のって意味じゃないかな
766デフォルトの名無しさん:2012/10/19(金) 00:15:57.30
Dim a(3,3,3,3,3,3,3,3,3,3,3)

さあ実行してみよう
767デフォルトの名無しさん:2012/10/19(金) 00:19:37.27
ど、どうなっちゃうの?
768デフォルトの名無しさん:2012/10/19(金) 00:26:46.47
CPUが火を噴く
769デフォルトの名無しさん:2012/10/19(金) 00:32:47.99
メモリが爆発する
770デフォルトの名無しさん:2012/10/19(金) 01:42:22.39
原子物理の先生が10次元(ちょっとうろ覚え)配列の計算してるとか自慢してた
現実的には多くてもせいぜい4、5次元どまりでしょ
771デフォルトの名無しさん:2012/10/19(金) 01:59:33.79
大学ならスパコン使えるかもだし
772デフォルトの名無しさん:2012/10/19(金) 02:42:38.84
CやJavaやPascalやJavascriptやActionScriptやPHPならかろうじて読めるけど
FORTRANやHSPやPerlやPythonやRubyとかは読めない無理
773デフォルトの名無しさん:2012/10/19(金) 05:31:22.59
次元が異なる馬鹿の多さに驚いた
774デフォルトの名無しさん:2012/10/19(金) 08:25:15.49
>>753
何のプログラム作ろうとしてんの?そんな実装が必要になる時点で頭おかしいだろ、壁に1万回頭突きして考え直せ
775デフォルトの名無しさん:2012/10/19(金) 11:41:29.46
>>774
1から10まで書かれた紙を袋に入れて100回引く実験をする。
そうすると、その足し算は100から10000までの値になるんだけど、
100になるのは1通り、101になるのは100通り、、、10000になるのは1通り、という
計算をプログラムにさせようと思いまして。組み合わせ爆発起こしてみるという。。。

100回じゃなくて10回でもいいんですけど、n回引いたときにそれぞれ何通りかを
表示するプログラムの書き方がわからなくて困りました。
776デフォルトの名無しさん:2012/10/19(金) 12:42:19.86
>>775
再帰つかうべきだろ。
って言ってみたかっただけ。
777デフォルトの名無しさん:2012/10/19(金) 12:44:01.38
778デフォルトの名無しさん:2012/10/19(金) 13:01:04.01
>>753の時点で1000回ループしてるのだが
779デフォルトの名無しさん:2012/10/19(金) 13:10:08.67
10^100通りのパターンを出したいってことでしょ?
780デフォルトの名無しさん:2012/10/19(金) 13:12:41.92
10^n通り
781デフォルトの名無しさん:2012/10/19(金) 13:15:31.36
全パターン出すのに有限の時間で終わるの・・?
782デフォルトの名無しさん:2012/10/19(金) 13:19:30.36
再帰じゃなくて数学でどうにかならないの?
783デフォルトの名無しさん:2012/10/19(金) 13:21:51.29
10^100通りパターン出すならこのお姉さんと同じ展開に・・・


『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう! - YouTube
http://www.youtube.com/watch?v=Q4gTV4r0zRs&feature=youtu.be
784デフォルトの名無しさん:2012/10/19(金) 13:28:33.56
数学的に解くかアルゴリズムで何とかするしかないな
785デフォルトの名無しさん:2012/10/19(金) 13:42:45.66
やってみたけど10^10ですでにヤバい

Dim Result() As Long

Sub Saiki(Value As Long, Deep As Long)
If Deep = 0& Then
Result(Value) = Result(Value) + 1&
Else
Dim i As Long
For i = 1& To 10&
Call Saiki(i + Value, Deep - 1&)
Next i
End If
End Sub

Sub Bakuhatsu(Number As Long)
Dim MaxValue As Long
MaxValue = 10& * Number
ReDim Result(MaxValue)
Call Saiki(0&, Number)
Dim i As Long
For i = Number To MaxValue
Debug.Print i, "...", Result(i)
Next i
Erase Result
End Sub

Private Sub Command1_Click()
Call Bakuhatsu(CLng(Text1.Text))
End Sub
786デフォルトの名無しさん:2012/10/19(金) 13:48:57.98
そういうときはスーパーコンピューターがあるわよ
787デフォルトの名無しさん:2012/10/19(金) 13:53:59.42
>>785
時間やばい?メモリやばい?
788デフォルトの名無しさん:2012/10/19(金) 13:54:30.44
>>785
時間やばい?メモリやばい?
789デフォルトの名無しさん:2012/10/19(金) 13:58:00.43
どう見てもメモリはヤバくないだろう
n=100でも古いPCでも問題ない(メモリ的には)
790デフォルトの名無しさん:2012/10/19(金) 14:00:09.37
64KBという制約以内に収まる
791デフォルトの名無しさん:2012/10/19(金) 14:00:59.08
n=10で3時間かかる
792デフォルトの名無しさん:2012/10/19(金) 14:02:22.63
お姉さん状態
793デフォルトの名無しさん:2012/10/19(金) 14:47:43.93
不可思議って10^64だから、10^100=不可思議*10^36
794デフォルトの名無しさん:2012/10/19(金) 14:49:38.60
ちなみに、一万不可思議=一無量大数だって (Wikipediaより)
795デフォルトの名無しさん:2012/10/19(金) 14:50:23.96
何故日本人はそんな膨大な単位まで用意したのだろうか。昔から天文学でも盛んだったのか
796デフォルトの名無しさん:2012/10/19(金) 18:58:38.64
>>775の件だけど再帰使わないで途中経過を利用すれば早くなりそう。
n=10なら
n=1の結果二つ→n=2の結果
n=2の結果二つ→n=4の結果
n=4の結果とn=1の結果→n=5の結果
n=5の結果二つ→n=10の結果

結果の持ち方や→の演算をちゃんと考えないといけないけどね。
797デフォルトの名無しさん:2012/10/19(金) 19:04:59.26
>>795
仏教のせいじゃなかろか
798デフォルトの名無しさん:2012/10/19(金) 19:06:40.64
>>775





10 を 100 回引いても 10000 にはならない





799デフォルトの名無しさん:2012/10/19(金) 19:11:18.05
配列の要素としては、並びとパターンの2つしかない
つまり用意する配列は2次元では?
800デフォルトの名無しさん:2012/10/19(金) 23:40:05.24
IIFって知ってた?
intNumber = IIf(intNumber <> 0, 0, 1)
801デフォルトの名無しさん:2012/10/20(土) 00:31:44.48
知ってるよ
ときどき使う
802デフォルトの名無しさん:2012/10/20(土) 00:32:20.11
intNumber = (intNumber != 0 ? 0 : 1);
803デフォルトの名無しさん:2012/10/20(土) 04:45:12.07
これ知ってた?シリーズやってよ
804デフォルトの名無しさん:2012/10/20(土) 09:18:54.61
Sub Test(ByRef a)
    a(0) = 4
End Sub

Sub Main()
    a = Array(1)
    Test(a)
    Debug.Print a(0) = 1
End Sub

引数が参照渡しなのに配列が値渡しされる、これ知ってた?
805デフォルトの名無しさん:2012/10/20(土) 09:58:57.15
===== 変数のメモリ・アドレス(下位)を取得

VarPtr
VarPrtArray
VarPtrStringArray
ObjPtr
StrPtr

===== 関数のアドレス(ポインタ)を取得

Public Function LngPrcPtr (ByVal AddressofProcedure As Long) As Long
LngPrcPtr = AddressofProcedure
End Function
806805:2012/10/20(土) 10:06:27.91
VB5 で使っていたが VB6 でも有効かは知らん
807デフォルトの名無しさん:2012/10/20(土) 10:55:51.93
VarPtrは使うなというけど、使わなければならないAPIとかあるもんね
808デフォルトの名無しさん:2012/10/20(土) 11:14:20.47
世間のお役には立てないがこれ知ってた?ネタ。
↓はコンパイルが通りませんでした。

Option Explicit
Sub Main()
  Dim i(2) As Integer
  For i(2) = 1 To 10
    For i(1) = 1 To 10
      'コンパイルがぁぁ
    Next
  Next
End Sub
809デフォルトの名無しさん:2012/10/20(土) 15:03:07.36
おちんちんをぱみゅぱみゅすると白いオシッコが出るの知ってた?
810デフォルトの名無しさん:2012/10/20(土) 15:14:56.43
VB6にはもう小ネタしかのこってないのか。 VB6にはもう厭きた
ヒマなのでVB6と同等なことができるのならjsとhtml5でもやろうかと
811デフォルトの名無しさん:2012/10/20(土) 17:48:31.09
何年前から時間とまってんだよwww
812デフォルトの名無しさん:2012/10/20(土) 20:46:26.88
>>810
言語を習得した、そこまでは情報処理屋として準備ができたという地点。
だが、処理対象となるものを理解、整理、モデル化し、
何がしかのことをコンピュータ化するという本来の目標に踏込むことなしに…
終わったという事だな。
そんなのは、免許は取得したが臨床経験が無い医者と一緒だよ。
813デフォルトの名無しさん:2012/10/20(土) 22:12:24.22
>>808
知らなかったー
Forで指定された変数は既に使用されています
814デフォルトの名無しさん:2012/10/20(土) 22:42:15.29
>>808
そういう使い方したいって時あるのか
815デフォルトの名無しさん:2012/10/20(土) 22:43:30.48
つかMSDNのFor文の項目に配列を指定すんなって書いてあるけど

counter 必ず指定します。カウンタに使う数値変数を指定します。配列変数およびブール型 (Boolean) に含まれる変数は指定できません。
816デフォルトの名無しさん:2012/10/20(土) 22:45:12.35
>>805
使ったことないけど
オブジェクトブラウザの非表示のメンバを表示ってすると VBA._HiddenModule のメンバとして出てくるよね
817デフォルトの名無しさん:2012/10/20(土) 22:47:01.02
>>815
そう書いてある割には二重でなければOKなのが不思議
818デフォルトの名無しさん:2012/10/20(土) 23:01:49.47
どうして成立してるのか内部が分からないのに
そんな危険なコード書けません
819デフォルトの名無しさん:2012/10/20(土) 23:28:20.22
これ知ってた?ネタ(初心者編

For i=1 to 10
  If なんたら Then Exit For
  処理
Next
If i=11 Then 10回処理されてる
820デフォルトの名無しさん:2012/10/21(日) 00:04:59.99
>>819
意味わかんないんですけど
821デフォルトの名無しさん:2012/10/21(日) 00:06:57.99
For i=1 To 10
 If i > 100 Then Exit For
 Debug.Print i
Next
If i = 11 Then MsgBox "10回処理されてる"


でいいの?
822デフォルトの名無しさん:2012/10/21(日) 00:09:48.74
まさか最後のループの後にカウンタが1カウント増えてるって話?それってどの言語でも同じじゃね
823デフォルトの名無しさん:2012/10/21(日) 01:46:42.95
int i;
for(i = 0; i < 10; i++) {
 if(条件) break
}
if(i == 10) {
 ループは途中で中断しなかった
}

こんなコードよく書くよね。
824デフォルトの名無しさん:2012/10/21(日) 01:54:54.31
どの言語ってBASICと同じタイプのforループはFORTRANぐらいだと思うけどねw

>>821
言うまでもないと思うが、ループのカウンタ用の変数をループの外で使うのは
普通は良い作法とは言えない。
825デフォルトの名無しさん:2012/10/21(日) 02:11:19.97
>>823
ループ中に異常が発生して抜けてしまうような場合に
ループ処理を正常に全部処理したか判定が必要なことって良くあるんだよね

で、異常が発生した時にフラグをセットして、それを後で参照するより
カウンタが全部回ったか見た方がフラグ変数を用意するよりスマート
826デフォルトの名無しさん:2012/10/21(日) 02:22:51.79
if broke then
のほうがスマートじゃね?
ループ終端回数に意味があるように思えてしまうから
827デフォルトの名無しさん:2012/10/21(日) 02:28:24.97
>>824
使うよ、ふつうに使うよ。
828デフォルトの名無しさん:2012/10/21(日) 02:32:18.95
Delphiなんかだと、ループ外でループ制御変数を使うと警告が出るね。
829デフォルトの名無しさん:2012/10/21(日) 02:47:00.84
>>826
慣用句みたいなものだろ。
ループの外で、ループ変数を参照してるのを見ると
それだけで中断判定ってわかるよ。
830デフォルトの名無しさん:2012/10/21(日) 09:53:45.41
ループの外でその変数みるようなコード書くやつは、その変数にループ外の値を代入してるかもしれん

VBのスコープでは保障されないが
ループ変数と言うからにはループの中で完結してるべき
831デフォルトの名無しさん:2012/10/21(日) 10:35:45.85
・自分ルールでは禁止事項

自分(人間)が最適化のようなことをしている。
変数を多目的に使用している。

・個人の趣味

FOR は制御条件が回数、と狭いのであまり使わない。

832デフォルトの名無しさん:2012/10/21(日) 10:38:47.11
>>823
俺は書かない、理由は >>818

>>824
> どの言語ってBASICと同じタイプのforループはFORTRANぐらいだと思うけどねw

偉そうにレスするなら PL/I とか Pascal ぐらいは知っとこうよ。
833デフォルトの名無しさん:2012/10/21(日) 11:14:10.11
>>832
> 偉そうにレスするなら PL/I とか Pascal ぐらいは知っとこうよ
偉そうなレスしたいのであれば…

PL/I、Pascal 等の○○系言語、のようなことを書きたいのか
明瞭な文章を書いてくれよ。
多分、上記の記述だと、プログラムもさぞかし難解な記述に
なっていそうだね。
834デフォルトの名無しさん:2012/10/21(日) 11:16:23.50
引数がByrefでも
Call Test((value))
Test (value)
こうすると値渡し。
835デフォルトの名無しさん:2012/10/21(日) 11:26:49.41
>>833
○○系言語?
何を言いたいのかさっぱりわからん。
明瞭になったのは、君が悔しがってると言うことだけだな、チーン (w
836デフォルトの名無しさん:2012/10/21(日) 13:05:50.89
VB6スレで言うのもなんだけど
最近のVBだとFor i As Integer = 0 To 10とか書けるからそうしてる
837デフォルトの名無しさん:2012/10/21(日) 13:07:02.67
>>832
お前さん、PL/Iで仕事したことあるんかいw
838デフォルトの名無しさん:2012/10/21(日) 13:51:45.70
>>834
それ値渡しじゃなくて、値のコピーの参照渡しだった気が
Callの引数にByVal付けるのが正解じゃなかったか
839デフォルトの名無しさん:2012/10/21(日) 13:52:55.95
>>837
> お前さん、PL/I で仕事したことあるんかいw

ごめんねぇ、これがあるんだな。
汎用機を設備の制御に使うという、かなり特殊なことしてたからね (w
ちなみに、汎用機のアセンブラも経験あったりするし。
840デフォルトの名無しさん:2012/10/21(日) 13:56:47.52
特殊を馬鹿と置き換えたら、すんなり理解できた。
841デフォルトの名無しさん:2012/10/21(日) 14:51:49.97
今見たら馬鹿かもしれないけど、当時はそれしか方法なかったからねぇ。
まあ、君には想像できない世界だと思うが。
842デフォルトの名無しさん:2012/10/21(日) 15:07:46.14
>>839
って事は俺と似たような歳か
3000レベルのFORTRANだったら俺も使ってたw
843デフォルトの名無しさん:2012/10/21(日) 15:15:00.07
>>841
だろうな (何がだろうだかわからんが)
自分は Intel MDS だけだったから汎用なんぞ知らんわw
844デフォルトの名無しさん:2012/10/21(日) 15:57:30.77
>>832
>>823のようなコードを書くときどう書くの?
フラグでも用意するつもり?それってダサいよ。
845デフォルトの名無しさん:2012/10/21(日) 16:02:54.63
>>842
水準 3000 をリアルに使ってたなら、>>842 さんの方がかなり年上ですよ。
私が学生の時ですら FORTRAN 77 になってましたから。

>>843
まあ、汎用機のアセンブラを書いたことある奴はかなり少ないはず。
汎用機を製造しているような会社関連か研究室とかでないと、経験できないと思うし。
あまり書くと特定されそうだから、 ここら辺でやめとくけど。

> 自分は Intel MDS だけだったから汎用なんぞ知らんわw

6800 系の方に行ってたから、8080 は触ったことがないなぁ。
80系は Z80 からですね。
846デフォルトの名無しさん:2012/10/21(日) 16:04:00.30
南アフリカでは信号で止まったら強盗にあうから、日本でも信号では止まらない、
それがいい作法だと思っている取り返しのつかない老害がいるようだな。
847デフォルトの名無しさん:2012/10/21(日) 16:05:08.88
>>844
普通にフラグを用意する。
ダサいかどうかより、動くことが保証されていることの方が大事だから。
MS がきちんとドキュメントを出してくれればいいんだけどね。
848デフォルトの名無しさん:2012/10/21(日) 16:20:17.23
>>847
動かしてみれば動くことは確認できるだろ。
849デフォルトの名無しさん:2012/10/21(日) 16:21:35.88
>>832
MSDNのVBのループ構造の項でForの挙動が書かれてて>>823は仕様通りの動作だよ?

For ループの実行は、次のように行われます。

1. counter に start の値が設定されます。
2. counter と end の値が比較されます。counter の値が end より大きい場合は、ループ内の statements は実行されずに、ループが終了します。
  (increment が負の値の場合は、counter が end より小さいかどうかが判定されます。)
3. statements が実行されます。
4. counter に increment が加算されます。increment を指定しなかった場合は、1 が加算されます。
5. 手順 2 から 4 を繰り返します。
850デフォルトの名無しさん:2012/10/21(日) 16:30:06.86
>>847
動くことが保証されているよね。

お前の主張は崩壊したねw
851デフォルトの名無しさん:2012/10/21(日) 16:49:27.72
>>823はVBのコードではありません。Cのコードです。ちなみに>>823はCでも仕様どおりです。
852デフォルトの名無しさん:2012/10/21(日) 16:50:14.76
>>823じゃなくて>>819,821への安価ミスだよねえ
853デフォルトの名無しさん:2012/10/21(日) 17:01:03.89
そこに気づくとは…やはり天才か
854デフォルトの名無しさん:2012/10/21(日) 17:05:48.38
巷で話題のウイルス、VisualStudio2010で作成したプロの仕業ってスレで
VS製品のIDがEXEに埋め込まれるってレスがあったのだけど
別にいいのだけど、予備知識として知りたいので
会社にもVB6ある人、EXEをバイナリコンペアしてみませんか
855デフォルトの名無しさん:2012/10/21(日) 17:08:51.12
>>851
そんなことは誰だってわかってるよバカかよ
856デフォルトの名無しさん:2012/10/21(日) 17:23:17.31
バカでーす(^ω^)
857デフォルトの名無しさん:2012/10/21(日) 17:31:33.19
>>849
俺は>>847ではないが、そのドキュメントの出自を明示してくれないか
昔の日本語ヘルプは、For-Nextは最低1回はループ回るように書いてあったはず
実際にはそのドキュメントは間違ってるんだが、どっかで改訂されたのか
その記載があるせいで要らんコード書かされたなぁ
858デフォルトの名無しさん:2012/10/21(日) 17:35:57.04
>>857

VB6と一緒にインストールされたMSDN ライブラリ Visual Studio 6.0だからVB6持ってるなら自分で確認してくれ

MSDN ライブラリVisual Sutudio 6.0
 Visual Basic ドキュメント
  Visual Basic の使用方法
   プログラミング ガイド
    Visual Basic の基本
     プログラミングの基礎
      制御構造
       ループ構造

mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbcon98.chm::/Html/vbconloopstructures.htm
859デフォルトの名無しさん:2012/10/21(日) 17:39:23.27
ちなみに

MSDN ライブラリVisual Sutudio 6.0
 Visual Basic ドキュメント
  Visual Basic の使用方法
   プログラミング ガイド
    Visual Basic の基本
     プログラミングの基礎
      制御構造
       制御構造の使用方法
mk:@MSITStore:C:\Program%20Files\Microsoft%20Visual%20Studio\MSDN98\98VS\1041\vbcon98.chm::/Html/vbconworkingwithcontrolstructures.htm

ここには以下の記載があってループ終了後のカウンタの内容は保障されてる

制御構造の終了
・ループを完全に終了した場合は、カウンタ変数 (counter) の値は上限 (end) にステップ数 (increment) を加えたものになります。
・ループの途中で終了した場合は、カウンタ変数 (counter) の値は適用範囲の通常の規則に従った値となります。
・コレクションの最後まで繰り返した場合は、カウンタ変数 (counter) の値は、値がオブジェクト型 (Object) の場合には Nothing に、バリアント型 (Variant) の場合は Empty になります。
860デフォルトの名無しさん:2012/10/21(日) 17:55:11.22
>>854
> 会社にもVB6ある人、EXEをバイナリコンペアしてみませんか

いいですよ?
あなたの持ってるEXEください。
861デフォルトの名無しさん:2012/10/21(日) 18:00:35.86
>>847
フラグも五十歩百歩だね。
ダメな奴はすぐフラグを使う傾向にある

それならループを抜ける時にgotoを使う方がだいぶまし。
あるいはCなら終了条件をループの中に書く手もある。

>>857
普通に考えて君が思ってるような仕様はあり得ない。
前置のwhileと後置のwihleのどちらが仕様頻度が高いか考えればそれは自明だと思うけど
862デフォルトの名無しさん:2012/10/21(日) 18:01:34.69
>>857
もういいかげん水に流してやれよw
今の自動翻訳のMSDNよりはマシじゃないか
863デフォルトの名無しさん:2012/10/21(日) 18:30:00.94
同じソースをコンパイルしてハッシュとって異なっていたら環境毎に変化があるってことだろうか
864デフォルトの名無しさん:2012/10/21(日) 18:41:19.98
>>860
同じソースを別のVSでコンパイルして、
その2つの生成されたEXEをコンペアという意味です
コンペアエラーが発生したなら、そこにVSのIDが埋め込まれているのではないかと
865デフォルトの名無しさん:2012/10/21(日) 18:41:56.81
バイナリにバイナリ生成日時とか埋め込まれてるんだろ。
866デフォルトの名無しさん:2012/10/21(日) 18:52:18.65
>>858-859
ありがと。VB6環境はディスククラッシュで吹っ飛んだままだったんだよ
とりあえずCD探しまくって確認した

ちなみに

MSDN ライブラリVisual Sutudio 6.0
 Visual Basic ドキュメント
  リファレンス
   ランゲージ リファレンス
    ステートメント
     A-H
      For...Next ステートメント

にはこのような記述が

ループ内の一連のステートメントがすべて実行されると、引数 step の値が引数 counter に加算されます。
この時点で、終了条件が満たされていない場合にはループ内のステートメントが再び実行され、それ以外は、
ループから抜け出して Next ステートメントの次のステートメントに制御が移ります。

間違ってるよなぁ、この記載
俺の記憶がたしかならVB2.0からこの記載のまま。単なる翻訳間違いだとは思えんけど

>>861
実際にどういう動作かではなく、ドキュメントの記載の問題
0回で抜けるという仕様だと解っていても、それが明示されていなければ、そう扱えない時もあるんだよ
趣味のプログラムなら好きにしろって話だけどな
867デフォルトの名無しさん:2012/10/21(日) 19:04:31.48
>>866
趣味じゃないのなら
なおさら自分で正しい情報を調べろよ
868デフォルトの名無しさん:2012/10/21(日) 19:19:58.53
>>861
負け惜しみを言っているようにしか聞こえない。
869デフォルトの名無しさん:2012/10/21(日) 19:23:42.37
さらに言えば、こんな基本的な仕様も知らない人間が何を言ってるんだとしか言いようがない。
870デフォルトの名無しさん:2012/10/21(日) 19:26:19.06
>>868
耳鼻科行け、あと脳外科
871デフォルトの名無しさん:2012/10/21(日) 19:34:44.11
え、何?
美人化に農芸化?
872デフォルトの名無しさん:2012/10/21(日) 19:37:33.74
恥ずかしい馬鹿だな。
例えば後置のwhileより前置のwhileの方が圧倒的に使われる理由のひとつは、
場合によってはループ内の処理を一度も実行したくない時がしばしばあるから。

これはwhileに限らずforでも同じこと。
要するに件の人(>>857?)はその必要性を感じたことがない程プログラミングの経験が浅いか、
または低レベルで間抜けなコードしか書いてないということを語るに落ちてる。

そもそもforループみたいな基本中の基本の制御構造の仕様なんか普通は真っ先に
把握するものだと思うが。
873デフォルトの名無しさん:2012/10/21(日) 20:02:43.94
>>872
ドキュメントの記載の問題だって書いてあるのが理解できんのか?
874デフォルトの名無しさん:2012/10/21(日) 20:07:37.46
>>858-859
>MSDN ライブラリVisual Sutudio 6.0

ワロタ
875デフォルトの名無しさん:2012/10/21(日) 20:08:19.66
なんでワロタかというとな、

うっさいハゲ!
876デフォルトの名無しさん:2012/10/21(日) 20:08:52.19
そういうのを負け惜しみって言うんだよ。
自分の問題をドキュメントの問題とやらに転嫁してるだけじゃないか。

いい歳こいてるだろうに馬鹿か。
877デフォルトの名無しさん:2012/10/21(日) 20:19:02.69
>>866
そのページ見てみたけど

>指定した回数だけ、一連のステートメントを繰り返すフロー制御ステートメントです。

と書いてあるし

>値          実行条件
>正の数または 0  counter <= end
>負の数       counter >= end

と書いてあるわけだから条件みたさなけりゃ実行しないともとれるんじゃねの

てめえの言うような”必ず1回実行する”という記述は見当たらないのだが
878デフォルトの名無しさん:2012/10/21(日) 21:11:24.82
MSDNのFor文の解説より

プログラムの実行がループに移り、ループ内の一連のステートメントがすべて実行されると、step の値が counter に加算されます。
この時点で終了条件が満たされていない場合は、ループ内のステートメントが再び実行されます。
終了条件が満たされている場合は、ループから抜け出して Next ステートメントの次のステートメントに制御が移ります。

↑この日本語だと
ループ内の一連のステートメントの実行の方が終了条件判定よりも先に行われる(=必ず1回実行する)って解釈しちゃうよな。


879デフォルトの名無しさん:2012/10/21(日) 21:12:59.74
ああ、でもそのまえにループの実行条件が記述されてるか(汗)
880デフォルトの名無しさん:2012/10/21(日) 21:15:02.14
>>878
そんな解釈しないよ。
881デフォルトの名無しさん:2012/10/21(日) 21:37:43.92
For文の説明にあるカウンタとして配列変数は使うなと書いてあるのに配列使って動いたっていう安全が分からない実行が怖いって話題じゃなかったの?
882デフォルトの名無しさん:2012/10/21(日) 21:40:26.57
それは>>818で終了。以後>>819からの話となってますm(_ _)m
883デフォルトの名無しさん:2012/10/21(日) 21:40:58.98
>>821の書き方をしないやつはダサいって話だろ。
884デフォルトの名無しさん:2012/10/21(日) 22:12:13.73
Forループを途中で抜け出そうなんてのは早めに始末しちまおうぜ
885デフォルトの名無しさん:2012/10/21(日) 22:45:27.44
>>775
> 1から10まで書かれた紙を袋に入れて100回引く実験をする。
> そうすると、その足し算は100から10000までの値になるんだけど

>>821
> For i=1 To 10
> If i > 100 Then Exit For

10 x 100 で 10,000 になったり
1 から 10 でのループで 100 より大きいを判断したり

なんなのだ、このスレは
886デフォルトの名無しさん:2012/10/21(日) 23:19:01.30
775はタイプミスの可能性もある
821は819の言いたいことを実現できりゃいいわけだからループ途中抜けしない条件式ならなんでもいいのだろう
887デフォルトの名無しさん:2012/10/21(日) 23:21:38.34
2度も10000って書いてタイプミスはねえよw と言いたいところだが最近のMS IMEさんは予測変換機能もあるからなあ・・・誤変換増えそう
888デフォルトの名無しさん:2012/10/21(日) 23:54:54.11
819だけど何か知らんが俺が悪かったよ、次行ってちょうだい
889デフォルトの名無しさん:2012/10/22(月) 01:19:16.93
VB6しかできないバカは死ぬべき
890デフォルトの名無しさん:2012/10/22(月) 01:48:39.33
>>888
なんか知らんがって
まだわかってないの?
891デフォルトの名無しさん:2012/10/22(月) 03:10:18.10
>>885
揚げ足取ってるだけじゃん、くだらない
892デフォルトの名無しさん:2012/10/22(月) 03:30:03.90
かなり昔の話、Fortran の Do もそうだったと思うんだけど、
Basic の For 文って、1回はかならず実行してたんだよね。
たしか N-Basic と N88-Basic で違ってたような記憶がある。

それからこんな使い方
n = 10
For i = 1 To n
 n = 1
Next

今は 10回ループするけど、昔の Basic では 1回しかループしなかった。
こういう仕様変更を経験した身としては、ループに使った変数をループの外で
使うのは抵抗があるかなあ
893デフォルトの名無しさん:2012/10/22(月) 03:54:41.72
>>892
お前さ、昔そうだったから、今もそうするという
生き方をするならさ、

昔バグがあったから今もそのバグに対応する
書き方をするという生き方をするの?

昔そんな命令がなかったから
今もそんな命令使わないって生き方するの?

昔不便だったから、今も不便なやり方をするの?
何のために、世の中進化してると思ってるの?

無駄じゃない?馬鹿じゃない?
894デフォルトの名無しさん:2012/10/22(月) 04:05:49.54
>>892
ループに関わる変数をいじるほうが抵抗があるのだが・・・
895デフォルトの名無しさん:2012/10/22(月) 04:16:25.71
自分の考えを通したいだけのやつとは話すだけ無駄だぞー

未だにVB6使ってて今も昔もねえわ
896デフォルトの名無しさん:2012/10/22(月) 05:26:56.09
経験の少ないやつは考え方に深みがないなぁ〜 思想の浅さっていうか。
897デフォルトの名無しさん:2012/10/22(月) 06:52:07.82
確かにループ変数をループ外で使ったりループ中で変更するのは好ましくないけど
それは場合によってはアリで、頑なに否定する人はその知識や発想がなかったのに
知ってるふりしつつ反対してるように見える
898デフォルトの名無しさん:2012/10/22(月) 09:02:07.95
>>891
お前はデバッグ時に、「揚げ足とりやがって」 とボヤクんだなw
899デフォルトの名無しさん:2012/10/22(月) 09:48:46.24
>>898
ん? デバッグはしてないよ? は?
揚げ足取ってるやつに対して揚げ足取ってるって言った
900デフォルトの名無しさん:2012/10/22(月) 11:04:32.35
Forごときでここまでモメられるって人生楽しいよな。
901デフォルトの名無しさん:2012/10/22(月) 13:55:28.40
>>900
…ごとき
概ね、そういったことで、「何故だか解りません」 のドツボに
はまるのではないのかね ?
902デフォルトの名無しさん:2012/10/22(月) 16:08:33.82
For i = 1 To 10
Next i

i = 1
While i <= 10

i = i + 1
WEnd

i = 1
Do While i <= 10

i = i + 1
Loop


やはりForは時代遅れだ
903デフォルトの名無しさん:2012/10/22(月) 16:11:34.75
>>902
その比較で時代遅れという結論になる理由をkwsk
904デフォルトの名無しさん:2012/10/22(月) 16:12:37.51
Do Until
Loop
を使ってる奴を見たことがない件
905デフォルトの名無しさん:2012/10/22(月) 16:14:39.74
テキストファイルをOPENで開いてるときにDo Until よくお世話になってるよ。
906デフォルトの名無しさん:2012/10/22(月) 16:15:26.71
i = i + 1
これがダサいな
907デフォルトの名無しさん:2012/10/22(月) 16:15:32.08
DoステートメントでWhileとUntilの使い分けってしてるの?どういう基準?
908桃白白:2012/10/22(月) 16:16:05.85
>>904
使ってるよ?桃白白が使ってるよ?
909デフォルトの名無しさん:2012/10/22(月) 16:16:32.90
While-Wendを使う奴なんかおらんやろ
910桃白白:2012/10/22(月) 16:16:42.47
>>907
Notを記述したくない心境にあるかどうか、それが基準
911デフォルトの名無しさん:2012/10/22(月) 16:19:44.14
MSDNのランゲージリファレンスのDo Loopの項ではWhileとUntilの違いについて触れてないのな
プログラミングガイドのプログラミングの基礎のループ構造の項ではWhileとUntilの違いが書いてあるけど
ランゲージリファレンスってなんか不十分だよな
912デフォルトの名無しさん:2012/10/22(月) 16:19:57.92
>>906
せめて++と+=はサポートしてほしい。
913デフォルトの名無しさん:2012/10/22(月) 16:23:46.91
VB6.1で期待しようか
914デフォルトの名無しさん:2012/10/22(月) 16:27:08.65
Windows8でもVB6使えるん?
915デフォルトの名無しさん:2012/10/22(月) 16:32:46.96
Windows8 VB6
でググるといろいろでてくると思いますが、
残念ながらWindows8でVB6はつかえますん
916デフォルトの名無しさん:2012/10/22(月) 16:38:45.98
そうか使えちゃうのんか・・・
917デフォルトの名無しさん:2012/10/22(月) 17:06:38.16
LinuxやMacでVB6使えるん?
918デフォルトの名無しさん:2012/10/22(月) 17:19:10.16
REALbasic
919デフォルトの名無しさん:2012/10/22(月) 17:21:09.82
REALbasic - Wikipedia
http://ja.wikipedia.org/wiki/REALbasic

MacでもLinuxでもWindowsでも使える

VBから乗り換えるならコレ
920デフォルトの名無しさん:2012/10/22(月) 17:29:39.58
ステマ
921デフォルトの名無しさん:2012/10/22(月) 17:40:13.81
Rbいまさら覚えるくらいならMonoやるわ
922デフォルトの名無しさん:2012/10/22(月) 19:43:51.86
>>919
懐かしいなおい
まだあるんだ
923デフォルトの名無しさん:2012/10/22(月) 20:45:34.92
>>902
i = i + 1ってダサいよね
せめてInc i が欲しいところ
924デフォルトの名無しさん:2012/10/22(月) 20:55:59.92
Function Inc(n)
Inc = n + 1
End Function
925デフォルトの名無しさん:2012/10/22(月) 20:57:41.06
VB使いの程度が知れるな
926デフォルトの名無しさん:2012/10/22(月) 21:01:13.56
そう捨て台詞をはいて逃げて行きました
927デフォルトの名無しさん:2012/10/23(火) 00:45:08.73
WinHTTP使ってVB6で2chブラウザ作ろうと思った際に2chブラウザのガイドライン(モナジラ?)でgzip形式可でリクエストしろってあるけど、VB6ってgzip形式のファイルはどう扱うのがスマート?
928デフォルトの名無しさん:2012/10/23(火) 00:47:00.39
VB6でx86エミュを作りたい
929デフォルトの名無しさん:2012/10/23(火) 00:48:33.44
VB6で次世代ブラウザを作ってIEやFireFoxやオペラを下してやる
930デフォルトの名無しさん:2012/10/23(火) 00:51:41.17
ユーザーによる拡張性の高いアプリケーションを作りたい
プラグイン形式もいいけど、そんな難しいものじゃなくてVBSファイルやJSファイルからアプリを操作できるようにしたい
つまりVB6で機能的にはシンプルなそういうアプリケーションにしたいんだ
931デフォルトの名無しさん:2012/10/23(火) 00:53:36.90
はい次の質問どうぞ
932デフォルトの名無しさん:2012/10/23(火) 02:09:40.68
>>893 なんだか話が飛躍してるな。

C ならこう書くね
for(int i = 0; i < 10; i++)
これだとループが終了したら i >=10 になっているのが明確になっている。

だけど VB は
For i = 0 To 9 Step 1
と書くから、ループが終了した後の i がどうなっているかは、コンパイラの
実装者まかせになってるんだよ。

その部分にたよったコーディングをした結果は >>892 になるわけさ。
933デフォルトの名無しさん:2012/10/23(火) 02:12:05.35
VBはMSDNに仕様書かれてんだから問題ないだろ
934デフォルトの名無しさん:2012/10/23(火) 03:42:25.97
>>932
それC++だからiはループ後はスコープ外でそもそも参照できない
JavaScriptだとでその形式で書いてもループ後も残るね

スコープは狭くしましょうとか
目的外使用(カウンタ)はやめしょうとかは
スタイルとかの話だからどっちかにはまとまらんね

システム内の全変数をグローバル変数(標準モジュール)で宣言するとか
いわゆるサブルーチン内で使う変数は全て引数にしてByRefで用意とか
関数台帳を用意してサブルーチンが必要なったら申請書を書いて
FUNC_AABB002XH5みたいなのを申請順に割り当てられるとか
VB6の場合は謎ルールは場所により色々あったなあ。
935デフォルトの名無しさん:2012/10/23(火) 03:45:03.08
> それC++だからiはループ後はスコープ外でそもそも参照できない
int i;
for(i = 0; i < 10; i++)

こう書けばいいだけ。

936デフォルトの名無しさん:2012/10/23(火) 05:16:47.21
Debug.Clsを実行したい
937デフォルトの名無しさん:2012/10/23(火) 16:03:38.80
>>934

>システム内の全変数をグローバル変数(標準モジュール)で宣言するとか
(略っとな)
>FUNC_AABB002XH5みたいなのを申請順に割り当てられるとか

こういうのを求める管理者は開発言語に関係なく存在するだろう
938デフォルトの名無しさん:2012/10/23(火) 19:11:15.31
>>934
それでも時流ってもんはある
構造化言語が主力になる以前はそれが普通だった時代もあったりするわけだよ

今時の言語でこんなこと言い出すやつとは仕事したくないぜ
939デフォルトの名無しさん:2012/10/23(火) 19:26:10.79
杏子の牌譜が全部あればWindows版や天鳳ブラウザの解析スクリプトで特上だけでの成績とか表示できたのだが
940デフォルトの名無しさん:2012/10/23(火) 19:29:03.86
誤爆ごめん
941デフォルトの名無しさん:2012/10/23(火) 22:54:50.57
はたと膝を手で打つような或いは目からウロコなコードを見せてくれろよ
942デフォルトの名無しさん:2012/10/23(火) 22:58:21.95
それってトリッキーなコードってことかいな?
943デフォルトの名無しさん:2012/10/24(水) 10:50:27.37
トリッキーにも程があるけど、
こんなことできるんだーというご自慢のコードがあれば

最近良く使い出したのは、ループじゃない処理でDo-Loopを使う
Loopの前行には必ずExit Doを入れるんだけどね
そのDo-Loopの中にFor-NextがいくらネスティングしてようがどこでもExit Do一発で抜けられる
944デフォルトの名無しさん:2012/10/24(水) 11:05:33.45
>>943のFor-Nextを一発で抜けるというより、
何かの手順をたくさん重ねてようやく何かに辿り着けるような処理で
その手順ごとに例外が発生するような、例えば
ハンドル取得して、オープンして、回線接続して・・・
と、それぞれが成功しないと次に進めない場合に
その処理全体をDo-Loopで囲ってしまうと都合が良い
945デフォルトの名無しさん:2012/10/24(水) 11:34:38.89
>>943
それは何十年も前から有るテクニック。

関数に括り出せといわれる。

関連する変数が多すぎて引数に書けないという。

凝集度を高めろといわれる。

まぁ、こんなかんじ。
946デフォルトの名無しさん:2012/10/24(水) 12:36:21.34
そんな無駄なことするなら、もうgotoでいいじゃねえか・・・
947デフォルトの名無しさん:2012/10/24(水) 13:45:24.72
>>945
関数に括り出せといわれる。

関連する変数が多すぎて引数に書けなくなったりしないの?

全部グローバルにしちゃえよ

やったね♪
948デフォルトの名無しさん:2012/10/24(水) 19:29:27.18
グローバル変数は増やしたくない
でも前回値は欲しい
そんな時はStatic。
でもそれを外部から初期化したいケースがでてくる
どうする?
949デフォルトの名無しさん:2012/10/24(水) 19:44:52.89
Singletonクラス作れば?
950デフォルトの名無しさん:2012/10/25(木) 07:26:22.19
>>946
趣味のレベルで個人のみの使用だったら問題ないけど、仕事で自分以外に人間が
触るコードだとスパゲティコードの始まりになるよ。
特に初心者がやりそうで怖い。
951デフォルトの名無しさん:2012/10/25(木) 07:33:02.56
>>945,947
関連する変数が多すぎなんていう関数の設計(関数の構成含む)自体まずいだろ。
グローバル変数にするなんてもってのほかだしw

まともな関数を設計しろと言われているのと同じだな。
952デフォルトの名無しさん:2012/10/25(木) 08:58:02.82
>>951
とはいえ、グローバル変数は必要だよ。
953デフォルトの名無しさん:2012/10/25(木) 11:53:17.24
俺は変数名にこだわる
良い変数名が思いつくまでじーっと考え込むこともある
和英辞書をひくこともあれば、思い切って漢字の変数名を使うことも辞さない
そこまでしてはじめて良いプログラムが出来るのだといえよう
954デフォルトの名無しさん:2012/10/25(木) 12:00:35.19
全面否定はしない
だが
良い変数名と、それを考え込むは無関係。
考え込んだものは、以後を考慮すれば
また考え込むことが懸念される。
回避しようとすればコメント等が発生する。
時間を費やすのも、良い事ではない。
素晴しい物でも出来上がりが百年後では
話にならない。
955デフォルトの名無しさん:2012/10/25(木) 12:20:37.75
What_Time_Is_It_Now( )

956デフォルトの名無しさん:2012/10/25(木) 12:27:31.88
Dim This_Value_Is_Set_In_True_When_The_Integer_I_Has_A_Value_Grater_Than_MAXCOUNT As Boolean
957デフォルトの名無しさん:2012/10/25(木) 13:09:08.38
長い変数名は適度に省略しないとだめだお。
958デフォルトの名無しさん:2012/10/25(木) 13:29:09.02
>>948
こ、こういうのを求めてるってこと?

Sub Hoge( _
Optional Initial As Boolean = False, _
Optional InitialValue As Integer)

  Static Fuga As Integer
  If Initial Then
    Fuga = InitialValue
  End If
  Debug.Print Fuga
End Sub
959デフォルトの名無しさん:2012/10/25(木) 14:13:17.86
>>952
ん?そこまで言い切れる理由は?
>>945の関数に括り出す状況が分からないから何ともいえないけど
どうしてもグローバル変数にしなければいけない理由があるのかな?
ってかさ、他人から関数に括り出せと言われるレベルの人間が
グローバル変数が必要とまともに判断できるとは思えないんだけど。

それとも一般的な話でグローバル変数は必要と言ってるだけ?
960945:2012/10/25(木) 15:12:41.37
>>959
なにか勘違いしてるかもしれないけど、「関数内に繰り返さない繰り返しブロックを作れば、途中脱出楽勝だぜ」という
テクニックは昔からあって、そして大抵「そんなことしたければ関数に括り出せ」っていわれてきたって事だよ。

で、「そのブロックは関数内の他の部分と結合度が高くて、関数に括り出すなんてできないんだ」と言い出す奴多数ってこと。
961959:2012/10/25(木) 16:10:18.91
>>945
そういうことか。
繰り返しブロックにできるのであれば関数にできそうなんだけど。
そもそも結合度が高いって単に処理が入り乱れてるだけのようにも思える。

例えば、一つの関数に複数の機能を持たせてるとか、
単純な処理の組み合わせでいいのに、一気に処理をやろうとしてるとか。

結局のところ結合度が高くて関数にくくり出すことができないこと自体、
関数の設計に問題あると思う。
962デフォルトの名無しさん:2012/10/25(木) 18:36:41.08
>>948
Staticがダメならフィールド値にするだろ。
963デフォルトの名無しさん:2012/10/25(木) 18:37:14.64
>>949
可能な限りシングルトンは使いたくない。
964デフォルトの名無しさん:2012/10/25(木) 18:38:21.55
>>952
グローバル定数はよくても、変数はいらない。無くてもできる。
965デフォルトの名無しさん:2012/10/25(木) 18:39:19.64
>>956
camel式にするんなら _ はいらないだろ
966デフォルトの名無しさん:2012/10/25(木) 18:46:22.27
>>961
一つの関数に複数の機能を持たせてるってのは、
古いシステムじゃよくある事だね。

COBOLとかFORTRANの時代はそうだ。
かつてFORTRANのシステムをCに置き換える案件があったけど、
解析だけで地獄のようだった。

一つの関数に複数の機能、なんてのは普通で、構造化できるのにやってない。
一つの関数が2000とか3000ステップあるのは普通。
グローバル変数使いまくり。
関数の途中でファイル書き込みある。
グローバル変数もファイルも、他のタスクから利用されてて、テスト結果に
再現性が無いとか。

まあシステムが作られた当時は、関心の分離だとか、結合度を下げるだとか
あまり知られてなかったみたいだけど。
967959:2012/10/25(木) 19:10:16.36
>>966
>>945,>>960の書き込みだと既存のコードの修正の話とは全く思えないんだけど。
話が変わってきてるしスレ違いの話題だからこの件ではもう書き込まない。
968デフォルトの名無しさん:2012/10/25(木) 20:20:52.24
>>964
なくてもできるが、使った方がスマートなコードになる場合もあるし
頭の固い奴が作ったプログラムは保守メンゴだぜ?
969デフォルトの名無しさん:2012/10/25(木) 20:52:12.21
>>968
頭が硬いのはお前じゃね?
グローバル変数がどうしても必要だと思ってるんでしょ?
970デフォルトの名無しさん:2012/10/25(木) 22:19:48.34
>>969
ファビョるほどの事でもないだろ?どうしたん?
971デフォルトの名無しさん:2012/10/25(木) 22:44:29.57
頭が固いのではなく硬いと言ってるから、きっと石頭なんだろ?
デコッパチってしってるか?
972デフォルトの名無しさん:2012/10/25(木) 22:48:45.95
他人に説明させる前にデコッパチについて
自分の解説をしてくれ
973デフォルトの名無しさん:2012/10/25(木) 22:50:58.83
ヒント: もーれつア太郎
974デフォルトの名無しさん:2012/10/25(木) 22:54:49.05
そんなの知ってる歳のオッサンが「ヒント」なんてガキみたいなことやってるなよ。
よくそれで自分が情けないと思わないもんだなマジで。
975デフォルトの名無しさん:2012/10/25(木) 22:57:37.46
>>974
えーん!おっさん泣くぜよ?
976デフォルトの名無しさん:2012/10/25(木) 22:58:04.38
定年後でヒマなんだろう
977デフォルトの名無しさん:2012/10/25(木) 22:58:21.58
そんなの知ってる歳だってよくわかったおっさんも褒めてやれよ。
978デフォルトの名無しさん:2012/10/25(木) 22:59:17.36
俺はぐぐったが・・・
979デフォルトの名無しさん:2012/10/25(木) 22:59:27.88
ゴレンジャー知ってたらオッサンン認定でつか?
980デフォルトの名無しさん:2012/10/25(木) 22:59:59.85
>>979
レインボーマンを知らなければセーフ。
981デフォルトの名無しさん:2012/10/25(木) 23:00:56.03
アニメのほうなら見た
982デフォルトの名無しさん:2012/10/25(木) 23:01:07.24
印度の山奥で修行しなおせ
983デフォルトの名無しさん:2012/10/25(木) 23:03:37.37
アノクタラサンビャクサンボダイ・・・

オンタタギャトウドハンパヤソワカ・・・

子供の頃は気付かなかったが、今思うと般若心経と儒教がごっちゃまぜだったんだな。

984デフォルトの名無しさん:2012/10/25(木) 23:04:44.39
ヒント: ヨガの眠り

985デフォルトの名無しさん:2012/10/25(木) 23:05:34.76
>>981
逆にアニメの方を知らんw
986デフォルトの名無しさん:2012/10/25(木) 23:16:00.14
なんだ、爺だらけじゃねぇか
987デフォルトの名無しさん:2012/10/25(木) 23:32:51.59
987なら民主党の朝鮮人議員死滅
988デフォルトの名無しさん:2012/10/26(金) 00:03:51.46
ところで、グローバルグローバルって言ってるけど、

VB6的には、標準モジュールに持たせたPublicなメンバ変数って事でいいか?

989デフォルトの名無しさん:2012/10/26(金) 08:00:55.54
最終回でキレンジャーが爆発するのが悲しい。
レインボーマンは「1ドル360円」という台詞が時代を物語ってる。
990デフォルトの名無しさん:2012/10/26(金) 08:55:10.61
>>988
いや、Formのグローバル変数も使っちゃイカンのだとか。
991デフォルトの名無しさん:2012/10/26(金) 09:08:19.35
>>989
俺は1ドル365円世代
992945:2012/10/26(金) 10:26:25.45
>>967
> >>945,>>960の書き込みだと既存のコードの修正の話とは全く思えないんだけど。
??
既存のコードの修正の話はしてないんだが…
なぜ俺にレスする。
993デフォルトの名無しさん:2012/10/26(金) 12:47:38.33
>>990
それはクラスのメンバ変数だろうw

>>988
自分で定義したものだけじゃなくて、
暗黙に定義されるForm1, App, Screenも忘れないであげてください。
994デフォルトの名無しさん:2012/10/26(金) 13:13:52.90
Fromの変数もグローバルスコープだから、グローバル変数ダメよというならそれも使用禁止にしないとだね
995デフォルトの名無しさん:2012/10/26(金) 13:23:07.08
>Syntax Error
>_
996デフォルトの名無しさん:2012/10/26(金) 13:51:38.87
Leftと違ってrightのrが大文字にならないの
997デフォルトの名無しさん:2012/10/26(金) 13:52:22.22
Me.Right
998デフォルトの名無しさん:2012/10/27(土) 00:53:56.69
Formのメンバ変数、各種コントロールはどうもpublicになってるけど、
(Form外から直接アクセスできるでしょ)

クラスやFormのメンバ変数ならPrivate にしてたらグローバルじゃないだろ。

標準モジュールならシングルトンのように扱えてしかもpubicなメンバ変数なら
それはグローバル変数。
999デフォルトの名無しさん:2012/10/27(土) 00:56:02.37
グローバル乞食はうるさいな
1000デフォルトの名無しさん:2012/10/27(土) 01:00:57.72
せん
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。