VBプログラマ質問スレ(Ver.6.0 まで) part61
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2013/02/01(金) 21:20:49.96/ \
/ ⌒ ⌒ \ 論破くん↓必死だなー
/ (●) (●) \
| 、" ゙)(__人__)" ) ___________
\ 。` ⌒゚:j´ ,/ j゙~~| | | |
__/ \ |__| | | |
| | / , \n|| | | |
| | / / r. ( こ) | | |
| | | ⌒ ーnnn |\ (⊆ソ .|_|___________|
 ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
構造化例外処理ならこうだろ。 AがFinally、BがCatch、Cが処理
Sub A()
Dim objConnection As ADODB.connection
Set objConnection = New ADODB.connection
Call B(objConnection)
If objConnection.State <> adStateClosed Then
Call objConnection.Close
End If
End Sub
Sub B(ByVal objConnection As ADODB.connection)
On Error Resume Next
Call C(objConnection)
If Err.Number <> 0 Then
Debug.Print Err.Description
End If
End Sub
Sub C(ByVal objConnection As ADODB.connection)
Call objConnection.Open
End Sub
前スレ VBプログラマ質問スレ(Ver.6.0 まで) part60
http://toro.2ch.net/test/read.cgi/tech/1351327234/
0002デフォルトの名無しさん
2013/02/01(金) 21:40:00.69質問者は使用している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
http://www.google.co.jp/
※「まず自分で調べる」クセを身につけよう。
0003デフォルトの名無しさん
2013/02/01(金) 21:40:49.42Part 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
0004デフォルトの名無しさん
2013/02/01(金) 21:43:09.80Part31 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/
Part59 http://toro.2ch.net/test/read.cgi/tech/1344325875/
0005デフォルトの名無しさん
2013/02/01(金) 21:46:48.93スレ立てこんなんじゃ全然ダメw
構造化例外処理をなんで>>1書くかな。
普通、テンプレだろ。
0006デフォルトの名無しさん
2013/02/01(金) 21:53:24.44もう終わった言語で
これだけ伸びてるんだ。
論破くんはいいおもちゃじゃないか。
このスレまるまる晒しあげして遊ぼうよw
0007デフォルトの名無しさん
2013/02/01(金) 22:05:32.91目くそ鼻くその言い合いは見苦しい。
スレ立てもまともにできないんじゃ、コードもまともに書けないだろ。
ま、力抜けってことだ。
0008デフォルトの名無しさん
2013/02/01(金) 22:08:29.13>>5
模範となるものだからに決まってるだろ。前スレの>>792は手本として
掲載されるだけの価値があるものだという結論が前スレで出たに近いだろ。
大勢の技術者が議論して>>792は構造化プログラミングの王道を行くもので
構造化プログラミングの真髄を示す優れたコードだと結論付けられたような
ものだったろ。忘れたのか?思い出せ。
0010デフォルトの名無しさん
2013/02/01(金) 22:14:09.08VB6のランタイムがサポートされなくなることは、マイクロソフティーの間では周知の事実になっている。
そんな将来の無い、今年で終わりを告げる言語のスレで、論破を連呼するロンパールーム世代のIT土方構成員。
ドナドナドナ〜♪ 論破の雄叫びも、IT土方再下層の最悪の労働環境からの叫びにしか聞こえない。
0011デフォルトの名無しさん
2013/02/01(金) 22:16:03.74. ,r'";; ;; ;;\,,.....,
,,r'";; ;; ;,,, ;;; , ;;; ;;;,`'::,、 .................
,:r';;; ;; ,;;; ;; ;; ;; ;;; ,;; `':,、 ........::::::;;;;;;;;;;;;;;;:::::::.........
,r'";;;,, ,,;; ,,;;;, ,,,, ; ;; ;; ,, ;;, ;;`';;、_:::::::::::::::;;:'' ''';;;:::::::::::::::
;;; ,,,;;; ;,,,;;; ;; ;,,, - '''' ''';‐-,, ,, ,,、,,, ;;`';;、_:::;;;'' '';;- ''""
, ,,,,,,;;;;; ...,, -‐- ,... ...--‐‐''''"
( ´-`) ある晴れた 昼さがり
| つつ /l/l
______ヽ ヽ\\__ 〆 ´`\
|――――――|匚JJヽ>ー|-|--‐メ、゚_゚)
|――――――|ロ匚ニニニニコ .〈コ
| / ニヽ―/ =ヽ 〉// ̄`ー、ヽヽ
ヽ゚ノ  ̄ ヽ ゚ノ 〈/ ヽ〉 〈/.ヽ〉
荷馬車が ゴトゴト
,〜〜 、,,
_ ー!⌒ー / ____/ ヽ
ゝ -ノっ  ̄ ̄ヽ / ̄^ヽっ /,, , '| ___ ▲
_| ` ;;__ヽ__/_ > | ||| | /J ____ |_┌┐,,|___
| (oo丿 , |―――――| | || ――ー-' _ _ _ - -
|―ヽヽ /__.|―――――|ニニニ」ヽ/ヽヽ/ ー ー ―
_ .|― し' J |/ ニヽ―/ =ヽ |ゝ ∩ 7ゝ ―‐− ー−
 ̄ヽニ ̄ ̄ヽヽ゚ノ ̄ヽ ゚ ノ ,,,,,,,,,, , ,,,, ,,, ,,,, ール''
,, ,,,,, ,, ̄  ̄ ,,,77''''''7'''''''
0012デフォルトの名無しさん
2013/02/01(金) 22:16:35.27/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0013デフォルトの名無しさん
2013/02/01(金) 22:27:28.10http://www.youtube.com/watch?feature=player_embedded&v=IhiyCsZegLU
悲し過ぎる・・・。
0014デフォルトの名無しさん
2013/02/01(金) 22:31:36.980015デフォルトの名無しさん
2013/02/01(金) 23:11:02.12前スレでJava 7のtryステートメントが出てたけどあれをVBでやるならこうだからな。
Sub Try(ByVal objCloseable)
Call Process(objCloseable)
Call objCloseable.Close()
End Sub
Sub Process(ByVal objCloseable)
On Error Resume Next
Call objCloseable.Process()
If Err.Number <> 0 Then
End If
End Sub
Class Closeable
Public Sub Process()
End Sub
Public Sub Close()
End Sub
End Class
Sub Main()
Call Try(New Closeable)
End Sub
0016デフォルトの名無しさん
2013/02/02(土) 00:04:26.07だっせw
0017デフォルトの名無しさん
2013/02/02(土) 00:24:58.01お前はそれよりスマートなコード書けんの?無理だろ。
なぜなら>>15はこれ以上ないほどに洗練されてるから。
俺ははからずもVBの限界を示したといっても過言ではない。
>>15はVBの限界。はい論破。
0018デフォルトの名無しさん
2013/02/02(土) 00:53:31.88どんな機能なのか>>17に説明してもらう。
2.その上で、>>15はそれを満たしているのかい?と質問する。
これだけで>>17は自滅すると思う。
じゃ後はよろしく。
0019デフォルトの名無しさん
2013/02/02(土) 00:56:27.81お前は論破されるのがこわいからできないってわけ。その時点で論破されてるな。はい論破。
0020デフォルトの名無しさん
2013/02/02(土) 00:58:34.83はい論破とは、相手を論破した際に使用する言葉である。
概要
しかし、実際は論破できておらず単に屁理屈を述べているだけのことが多い。
掲示板等でマジになったときに使うとむしろ醜態をさらしてしまうため、決して顔真っ赤な状態で書き込んではならない。
0021デフォルトの名無しさん
2013/02/02(土) 06:08:46.88VBスレでJavaの話はナンセンス。
0022デフォルトの名無しさん
2013/02/02(土) 06:15:19.29申し訳ないが死ぬまでROMってろください。
0023デフォルトの名無しさん
2013/02/02(土) 09:15:07.33Classを使っているのに、InitializeもTerminateも無い時点で(プログラマとして)終了してる
0024デフォルトの名無しさん
2013/02/02(土) 10:04:00.40/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0025デフォルトの名無しさん
2013/02/02(土) 10:43:23.77>>23
必要なら作ればいいだけであり必要ないからないわけであり、必要ないものであるにもかかわらず
それがないことを気にするお前は凝り固まった既成概念にとらわれたステレオタイプの石頭。
VBではコンストラクタが引数をとることができないからClass_InitializeもClass_Terminateも
実装しないのが常識。はい論破。
0026デフォルトの名無しさん
2013/02/02(土) 10:45:42.79ことができないな。大勝利すぎてうれしいです。はい論破。
0027デフォルトの名無しさん
2013/02/02(土) 10:53:43.59/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0028デフォルトの名無しさん
2013/02/02(土) 11:03:57.35どんな立派な言い訳をしても、>>15のコードにデストラクタが無いのは致命的
0029デフォルトの名無しさん
2013/02/02(土) 11:07:30.19デストラクタはJavaにもない。Java 7のすぐれたtryステートメント
を模倣した>>15にデストラクタがないのはきわめて自然なことであり、
>>15はデストラクタが必要ないことを示す有益なコードでもある。致命的なのはお前の頭。はい論破。
0030デフォルトの名無しさん
2013/02/02(土) 11:14:13.60/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0031デフォルトの名無しさん
2013/02/02(土) 11:28:11.07「デストラクタと言う機構はJavaには無い」の間違い
>>15のコードの駄目なところ
まず、Closeメソッドは必要ない
次に、オブジェクトをByValで渡してはならない
0032デフォルトの名無しさん
2013/02/02(土) 11:32:32.21だな
0033デフォルトの名無しさん
2013/02/02(土) 11:35:22.73CloseがなければCloseableにならない。CloseableはCloseを
呼ぶからこそCloseableなのであり、それこそがJava 7のtryステートメント
の本質。アリクイがアリを食わなかったらアリクイじゃないだろ。アリクイは
アリを食うからアリクイなんだ。
馬鹿かお前。アリクイさんに耳から下を挿入されて頭の中身ぺろぺろされでもしたのか?
ByValでオブジェクトを渡してはいけないなんてそんなものはない。まったくない。アリクイさんに誓ってない。はい論破。
0034デフォルトの名無しさん
2013/02/02(土) 11:45:34.19Closeを明示的に呼び出す必要は無い、VBにはCloseを明示的に呼び出さなくても良い仕組みがある
ByValで渡す物が何であるかを考えれば、ByValでオブジェクトを渡してはいけない事は自明
0035デフォルトの名無しさん
2013/02/02(土) 11:50:52.36Closeはtry関数によって完全に隠蔽されているわけであり、
Closeが隠蔽されたところで呼ばれるということにtryステートメントの本質がある。
お前はアリクイに対してモグラを食べればいいじゃないといっているようなもので
物事の本質を理解していない。アリクイがモグラを食べたらアリクイじゃなくなる。
Closeを呼ばなくなった時点でCloseableじゃないしJavaのベストプラクティスから逸脱した
ワーストプラクティスに成り下がる。ByValが否定される要素などいっさいないがそれを
自明と言いきったお前の頭がイカれていることが自明。はい論破。
0036デフォルトの名無しさん
2013/02/02(土) 11:56:49.49はい論破とは、相手を論破した際に使用する言葉である。
概要
しかし、実際は論破できておらず単に屁理屈を述べているだけのことが多い。
掲示板等でマジになったときに使うとむしろ醜態をさらしてしまうため、決して顔真っ赤な状態で書き込んではならない。
0037デフォルトの名無しさん
2013/02/02(土) 11:57:10.44/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0038デフォルトの名無しさん
2013/02/02(土) 12:02:55.53まあ、リアルに会って話すと相手の目を見て話さないタイプだとは思うがw
0039デフォルトの名無しさん
2013/02/02(土) 12:04:04.46オブジェクトの場合、ByValで渡そうが、ByRefで渡そうが、結果は同じだが...
>>15のコードで、Closeすることに疑問を持たないのは...
0040デフォルトの名無しさん
2013/02/02(土) 12:06:48.80ちょっと違う
0041デフォルトの名無しさん
2013/02/02(土) 12:09:01.560042デフォルトの名無しさん
2013/02/02(土) 12:09:37.97もうそろそろヒントあげようか?
インターフェース
0043デフォルトの名無しさん
2013/02/02(土) 12:10:44.33へ?賛同してくれてんの?結果は同じだがテンテンテンの意味がわかんない。
俺はByValでオブジェクトを渡してはいけないということを否定する立場だから
同じ意見なんだろうけど、結果が同じだからByRefでもいいというのなら
お前はアリクイさんに蹴られてしかるべきだ。VBではByValが基本だ。
必要なときのみByRefにするべきであってByValが基本だ。
Closeすることに疑問をもってどうすんだよ。アリクイがアリを食べてることに
疑問をもてといってるようなものだろうが。アリクイの生態を調べる生態学者
ならそれでもいいだろうが、俺はプログラマだ。はい論破。
0044デフォルトの名無しさん
2013/02/02(土) 12:12:08.54知ってるよお前より存分に存じ上げている。もしJavaがアリクイだったとしたら
Javaもお前より俺になつくだろうな。はい論破。
0045デフォルトの名無しさん
2013/02/02(土) 12:12:14.50/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0046デフォルトの名無しさん
2013/02/02(土) 12:12:40.88お前が知ってる言葉を言っただけだろ。ふーん。はい論破。
0047デフォルトの名無しさん
2013/02/02(土) 12:14:24.80これ、逆だよね?基本ならデフォにするはずだし。意外とバカかもw
0048デフォルトの名無しさん
2013/02/02(土) 12:15:43.190049デフォルトの名無しさん
2013/02/02(土) 12:16:03.52Sub Test1
Dim a As Integer, b As Class1
a = 1
Set b = New Class1
Call Test1a(a, b)
Debug.Print a, obj Is Nothing
Call Test1b(a, b)
Debug.Print a, obj Is Nothing
Test1c(obj)
Debug.Print obj Is Nothing
Test1c obj
Debug.Print obj Is Nothing
End Sub
Sub Test1a(ByVal n As Integer, ByVal obj As Class1)
n = 0
Set obj = New Class1
End Sub
Sub Test1b(ByRef n As Integer, ByRef obj As Class1)
n = 0
Set obj = New Class1
End Sub
Sub Test1c(ByRef obj As Class1)
Set obj = new Class1
End Sub
0050デフォルトの名無しさん
2013/02/02(土) 12:17:40.27デフォじゃないから基本じゃないとでも思ってんの?俺はプログラマが実装する上での
基本を述べたわけであり、なんの考えも持たず言語仕様的な事柄を述べることしか
できないお前のようなすっからかんとはわけが違う。バカはお前。はい論破。
0051デフォルトの名無しさん
2013/02/02(土) 12:18:02.18/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0052デフォルトの名無しさん
2013/02/02(土) 12:18:57.12それってプログラマじゃなくてお前の独断と偏見ってやつじゃん
0053デフォルトの名無しさん
2013/02/02(土) 12:19:51.31何が?え?何がアウト?プログラマならプログラムを実装する上でやるべき
好ましい事柄くらい把握しておくべきでありそれを基本と述べた俺をお前のような
でくのぼうは目標にするべきだ。はい論破。
0054デフォルトの名無しさん
2013/02/02(土) 12:20:41.68論破できていない事を論破と言い切るアフォの言う事を基本と考えるか
自ずと答えは出ている罠(笑)
0055デフォルトの名無しさん
2013/02/02(土) 12:20:45.560056デフォルトの名無しさん
2013/02/02(土) 12:23:17.07お前のがらんどうの頭で考えた考えなしの考えだったらそれはお前の偏見でしかないが
俺の優れて明晰な頭脳によって導き出され、しかもそれが一般的であり良識であると
十分に推量されるわけであるから、俺の考えはプログラマの一般常識であり、良識である。はい論破。
0057デフォルトの名無しさん
2013/02/02(土) 12:24:25.81ヲイヲイ、話が逆になってないかい?
冷静になれよリアル貧乏君
0058デフォルトの名無しさん
2013/02/02(土) 12:25:42.52俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
俺の考えはプログラマの一般常識であり、良識である。
単に病気であることが判明wwww
0059デフォルトの名無しさん
2013/02/02(土) 12:25:55.80お前は基本の言葉の意味を取り違えているだけ。流れを読んで基本というのは
どういう意味での基本なのかなと前提の方を定義し直すようにしないとわざとかどうかは
知らないけどお前のように物事を曲解することになる。普通の人は大学や会社で
議論の場というのを経験するから問題ないのだけれど、お前のような低学歴は苦労するだろうな。はい論破。
0060デフォルトの名無しさん
2013/02/02(土) 12:26:33.910061デフォルトの名無しさん
2013/02/02(土) 12:28:03.03>>58
お前らのようにコード示せない分際で人格攻撃しかできないやつって情けないと思う。俺はそんなお前らをみてせつなくなる。お前らの親がな。はい論破。
0062デフォルトの名無しさん
2013/02/02(土) 12:29:07.17えー?どこがー?具体的に言ってー?そんな印象的なことしか言えないんだったら、はい論破。
0063デフォルトの名無しさん
2013/02/02(土) 12:36:48.57それって結局さお前が俺に論破されたからそれへの反発で
オレオレというレッテルを貼って拒絶してるだけで、俺の考えが
一般的であり良識的であることはわかってるだろ。そういう態度ってとても恥ずかしいことだと思います。はい論破。
0064デフォルトの名無しさん
2013/02/02(土) 12:46:39.01単に互換性のためだよ。
古いBASICでは関数はなかったサブルーチンだった。
変数はグローバル変数だった。
だから関数の呼び出し先で変更した値は
当然戻ってからも変わっていた。
0065デフォルトの名無しさん
2013/02/02(土) 12:47:11.790066デフォルトの名無しさん
2013/02/02(土) 12:47:28.19これほどまでにコミュニケーション能力に欠ける論破君はあまり見ない
論破の文字が色あせるのはそのせい?
0067デフォルトの名無しさん
2013/02/02(土) 12:48:05.940068デフォルトの名無しさん
2013/02/02(土) 12:48:45.470069デフォルトの名無しさん
2013/02/02(土) 12:48:56.25論破くん以前に人間としてな
0070デフォルトの名無しさん
2013/02/02(土) 12:52:45.34/ ___ | __ ヾ /' ,,ヘ |
/ ...:::´::::::::::`:::::ゝ:::/ / ヽ ヾ /' //⌒ ヾ::::|
ど ∠_____ /\::::::::::::::ヽi~ヾ/ '⌒\\ // ヾ/~i
/ / ~ヽ_::::::::::::ヽ _\\ / ノ / _ /
/ / ⌒ ヽ ~~‐-、::::::ヽ ヽ (´ 。`iヽ/lllヾノi´。 `) / /\
/ / _/^`ヽ ゝ:::::::| | `  ̄´ /`^ \ `  ̄ ´ | ノ ` ̄`ヽ
∠ / /⌒ i i\_ ,、/:::::::::ヽ i ,,.__,.,.-' ヾ /' `-,.,.__,,, ノ /
ど ∠__ / ノ´ ミ i i" ⌒ヽ::::::::::::::ヽ\ /(` ´)ヽ / /
/ / /ミ / i i |:::::::::::::::::ゝ |ヽ /|||ヽ_/||||ヽ ノ |ノi /"
/ / ( ヽ | i´ `i | ヾi:::::::::::::::::::::::| /|||/゛゛,゛゙'ヾ|||ヽ |:::::ゝ /
< | ゝ ヽ(´⌒` ) ,、 ノゝ,_::::::::::::::::::| |||/`'´ ̄`´ヽ||| |::ノ /
\ | (´ \ ヽ,_,ノ( (/ i::::/~‐-_| | ||^i,⌒Y⌒'i^i||| | |⌒
ん \ | \ ヽ,,_,,ノ / ̄ ヽ( || || ,i | i, i|| | |
\ \ ヽ,,__ノ / | ゝヽヽ、,_,、/^/,,ノ |
___\ ヽ、 ___,,/ ヽ'' \ _,,_ノ ノ
\  ̄ ヽ \  ̄`` /
ぱ __\ \ \ `ヾ、 /
0071デフォルトの名無しさん
2013/02/02(土) 12:53:02.81何も間違ってないにのに間違いを認めろというお前の頭が間違っている。はい論破。
0072デフォルトの名無しさん
2013/02/02(土) 12:58:42.05へーへーへー。
わかったかお前ら。ByRefは互換性のためにあるんだ。
現代的VBプログラマーの心得としてはByValが基本だ。
100ぺん復唱しろ。はい論破。
0073デフォルトの名無しさん
2013/02/02(土) 13:02:02.72駄目だな...お前センス無いよ...
値渡しと参照渡しの区別すら付いてないようだな...
VB6系では、オブジェクトの値渡しは出来ないんだよ
0074デフォルトの名無しさん
2013/02/02(土) 13:03:13.65試してみた?できただろ。じゃあお前が間違ってるんだ。はい論破。
0075デフォルトの名無しさん
2013/02/02(土) 13:04:57.51だから、VB6系では、オブジェクトの値渡しは出来ないんだよ
値渡しが出来ているなら、>>15のコードは動かないんだよ...残念ながらね...
0076デフォルトの名無しさん
2013/02/02(土) 13:05:26.050077デフォルトの名無しさん
2013/02/02(土) 13:09:31.32意味がわからないんだけど、
VB6はオブジェクトの値渡しができない。
値渡しができるなら>>15のコードは動かない。
>>15のコードはVB6。値渡しができない。
ゆえに>>15のコードは動く?そういうこと?
0078デフォルトの名無しさん
2013/02/02(土) 13:11:30.240079デフォルトの名無しさん
2013/02/02(土) 13:12:28.80「>>15のコードは、VB6だから、意図通りに動作する」が正しい
値渡しが出来るなら「>>15のコードは、絶対に意図通りには動作しない」
0080デフォルトの名無しさん
2013/02/02(土) 13:17:01.75ByValは値渡しではないと思ってるわけ?
どういうのが値渡しだと思ってるわけ?そこんとこ教えてよ。はい論破。
0081デフォルトの名無しさん
2013/02/02(土) 13:17:06.800082デフォルトの名無しさん
2013/02/02(土) 13:19:17.79ByValは値渡しだが
オブジェクトに関して言えば、値渡しにはなっていない
それが理解できないというのは、プログラマとしてのセンスが無い
0083デフォルトの名無しさん
2013/02/02(土) 13:19:56.14さて論破くんがこの矛盾の理由を理解できるのはいつになるでしょうか?
0084デフォルトの名無しさん
2013/02/02(土) 13:21:06.630085デフォルトの名無しさん
2013/02/02(土) 13:22:20.22どういうのが値渡しだと思ってんの?はい論破。
>>83
参照型だからだろ。俺が聞いてんのはどういうのが値渡しだと思ってるのかってこと。はい論破。
0086デフォルトの名無しさん
2013/02/02(土) 13:23:43.27>>85
> 値渡しが出来ているなら、>>15のコードは動かないんだよ...残念ながらね...
どうです? この意味、理解出来ましたか?
0087デフォルトの名無しさん
2013/02/02(土) 13:25:34.80あのまだ答えてもらってないんだけど、どういうのが値渡しだと思ってんの?
俺はByValが値渡しだと思ってる。お前は何が値渡しだと思ってんの?
0088デフォルトの名無しさん
2013/02/02(土) 13:43:00.94リアルじゃ友だちの一人もいないそうだから
じっくり構ってやれよおまいらwww
0089デフォルトの名無しさん
2013/02/02(土) 13:48:29.16http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12100210832
ww
0090デフォルトの名無しさん
2013/02/02(土) 13:49:04.08答えも何も、お前俺に質問してないじゃないか。
文句言う相手間違ってるぞ。はい論破w
0091デフォルトの名無しさん
2013/02/02(土) 13:49:47.83値渡しってのは、値のコピーを渡す事だろ、世間一般普通に考えて
そして、VB6系のオブジェクトは値渡しは出来ない
オブジェクト型は全て参照型だから、値渡しは参照のコピーを渡すので云々と言うのであれば、プログラマとしてのセンスがまるで無い
0092デフォルトの名無しさん
2013/02/02(土) 13:51:55.93> >>80
> ByValは値渡しだが
> オブジェクトに関して言えば、値渡しにはなっていない
>
> それが理解できないというのは、プログラマとしてのセンスが無い
参照型だから値渡しじゃないとでも思ってたのかな。痛いやつがいたもんだな。インドリみたいだ。
インドリと名付けることにしよう。
0093デフォルトの名無しさん
2013/02/02(土) 13:53:50.93値渡しと参照渡しの中間だよ
0094デフォルトの名無しさん
2013/02/02(土) 13:58:01.42アドレスの値渡しな。中間じゃなくて明確に値渡しだ。はい論破。
0095デフォルトの名無しさん
2013/02/02(土) 13:58:44.34書いてあるんだが?
それを見落とした論破くんがおかしい。
0096デフォルトの名無しさん
2013/02/02(土) 13:59:44.33黙れインドリ、はい論破。
0097デフォルトの名無しさん
2013/02/02(土) 14:00:38.77オブジェクトの参照渡しだよ
0098デフォルトの名無しさん
2013/02/02(土) 14:00:46.240099デフォルトの名無しさん
2013/02/02(土) 14:01:21.45言語センスそのものが、まるで無いな...
0100デフォルトの名無しさん
2013/02/02(土) 14:05:26.66どっちの意味の言語だ?w はい論破。
0101デフォルトの名無しさん
2013/02/02(土) 14:09:29.22参照型の値渡しを参照渡しと呼んだら
参照型の値渡しと参照型の参照渡しの区別ができない。
ByValは値渡し、ByRefは参照渡しで区別するべきだ。
>>49はそのことを明確に示してるわけ。お前の目は肛門か?はい論破。
0102デフォルトの名無しさん
2013/02/02(土) 14:10:30.15そこに気付かない時点でオワットル
0103デフォルトの名無しさん
2013/02/02(土) 14:11:03.02肛門が目の人間はいない。はい論破返し
0104デフォルトの名無しさん
2013/02/02(土) 14:11:45.510105デフォルトの名無しさん
2013/02/02(土) 14:13:15.22どっちの意味って?
さすが、言語センスが無いだけあるな...
0106デフォルトの名無しさん
2013/02/02(土) 14:14:18.43* *
く
O
こんなイメージで書いたのだと思う。はい論破擁護。
0107デフォルトの名無しさん
2013/02/02(土) 14:18:46.42どういう言い方をするのがいいと思う?
Variable Referenceで参照変数といってしまったら
参照(型の)変数と読めてしまうから、俺は参照渡しを変数の参照と呼ぶべきだと思う。
値渡しはふつうに変数でいいだろ。たいして違いないから。どうよ?いいだろ?はい論破。
0108デフォルトの名無しさん
2013/02/02(土) 14:19:14.170109デフォルトの名無しさん
2013/02/02(土) 14:20:05.87特に用語を使わないのが良い
誤解を含む用語を使う方が混乱するわ
0110デフォルトの名無しさん
2013/02/02(土) 14:20:45.040111デフォルトの名無しさん
2013/02/02(土) 14:25:11.46それもありだな。うん、その考えはわかる。はい論破。
0112デフォルトの名無しさん
2013/02/02(土) 14:25:43.410113デフォルトの名無しさん
2013/02/02(土) 14:25:56.030114デフォルトの名無しさん
2013/02/02(土) 14:27:06.68そもそも、「オブジェクトの値」なぞもってない
値渡しか参照渡しかは変数がもっているものをどう渡すか
持ってないものは渡せない
はい論破
>>91にプログラムのセンスがないことは論をまたない
0115デフォルトの名無しさん
2013/02/02(土) 14:33:39.74>>15を見るに...
Sub Main()
Call Try(New Closeable)
End Sub
オブジェクトへの参照ねぇ...
0116デフォルトの名無しさん
2013/02/02(土) 14:34:22.42プログラムには特徴こそあれセンスはない
まずは国語からお勉強してね
0117デフォルトの名無しさん
2013/02/02(土) 14:34:47.990118デフォルトの名無しさん
2013/02/02(土) 14:41:50.26たぶん学生さんだと思うけどね
就職浪人?
0119デフォルトの名無しさん
2013/02/02(土) 15:52:53.83動物の保護について熱く語り合っているって感じかな?
0120デフォルトの名無しさん
2013/02/02(土) 16:04:50.74いまだに開発案件はあるから、死んではないよ。
採用してること自体あれだけどw
0121デフォルトの名無しさん
2013/02/02(土) 16:08:18.790122デフォルトの名無しさん
2013/02/02(土) 16:09:25.35VB6を使わざるを得ない事があるからなあ
0123デフォルトの名無しさん
2013/02/02(土) 16:11:41.50論破くんと同じで見苦しい。
0124デフォルトの名無しさん
2013/02/02(土) 16:31:47.000125デフォルトの名無しさん
2013/02/02(土) 16:36:12.570126デフォルトの名無しさん
2013/02/02(土) 16:42:32.45俺が、むしろOn Error Gotoを使うスパゲティーコードよりOn Error Resume Nextを使った方が
今時の構造化例外構文に近い書き方ができるんだって言ったのが事の始まり。
俺は今はVB6全然使ってないし、議論が荒れてきたので途中からまったくフォローしてないが。
0127デフォルトの名無しさん
2013/02/02(土) 16:54:06.56お前は関係ない。On Error Gotoでスパゲティになると思いこんでるそんな
低レベルな話とはもはや次元が違う。俺がVBの例外処理のベストプラクティスを
示したことにお前の力は一切借りていないし、お前はナポリタンがどうして
赤いのか沈思黙考してればいい。お前レベルのやつがフォローできると思ったら大間違いだ。はい論破。
0128デフォルトの名無しさん
2013/02/02(土) 16:56:01.44/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0129デフォルトの名無しさん
2013/02/02(土) 16:58:33.92* *
く
o
0130デフォルトの名無しさん
2013/02/02(土) 17:05:01.05VBの限界を示した>>15がリミットオブVBということでいいな。はい論破。
0131デフォルトの名無しさん
2013/02/02(土) 17:06:45.100132デフォルトの名無しさん
2013/02/02(土) 17:08:08.960133デフォルトの名無しさん
2013/02/02(土) 17:10:10.58は?何いってんだお前。Java 7のThe try-with-resources StatementをVBで
実装してみせたんだからリソース管理に決まってんだろ、それくらいわかれよイワシ頭。はい論破。
0134デフォルトの名無しさん
2013/02/02(土) 17:10:42.53* *
く
o
0135デフォルトの名無しさん
2013/02/02(土) 17:11:22.560136デフォルトの名無しさん
2013/02/02(土) 17:13:46.06思ってたインドリ野郎しかいねえ。はい論破。
0137デフォルトの名無しさん
2013/02/02(土) 17:22:26.33C#な
0138デフォルトの名無しさん
2013/02/02(土) 17:25:36.270139デフォルトの名無しさん
2013/02/02(土) 17:27:43.35他の言語なら新人さんかな?なんて思いながら見てるけどここVB6じゃん?
彼の将来がちょっと心配だわ
0140デフォルトの名無しさん
2013/02/02(土) 17:29:22.83お前もかw
0141デフォルトの名無しさん
2013/02/02(土) 17:34:39.39値渡しなんだから値渡しだ。当たりきシャリキ、ケツの穴ブリキのトートロジー。
CもJavaも値渡ししかできない。はい論破。
0142デフォルトの名無しさん
2013/02/02(土) 17:35:02.72/.:;;;;;;;;;;;;;;;;;;;;;::.\ ^^
/ .::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::..ヽ ドナドナドーナードーナー
__AーA 論破論破論破〜♪
_,ィ´▼⊂ ・ ・⊃
.... .. .. ' {●.▲ヽ(_⌒) .. ... ........ ... .. .... ..
:::: :: .,' i――――――i ':, :: :::: :::: :::::::: ::::
;; ;; :," |______| `:, :;;; ;;;;;; ;;; ;;;;
w ,.' i,,i ;;;;;;;;;;;;;;;;;;;; i,,i;;:.. ゙v w゙゙w゙w゙゙w
",i ,;'' :::::::::::::::::::::::';,::::::... ヾ、 w vw w
./ ,;;:´ :::::::::::::::::::::':;;,::::::::.. i,'、 ww w
0143デフォルトの名無しさん
2013/02/02(土) 17:52:34.970144デフォルトの名無しさん
2013/02/02(土) 17:55:15.830145デフォルトの名無しさん
2013/02/02(土) 18:03:10.71さすがに馬鹿だろお前
0146デフォルトの名無しさん
2013/02/02(土) 19:09:13.69風邪で寝込んでるんだよ。はい論破
0147デフォルトの名無しさん
2013/02/02(土) 19:10:23.29じゃあVB6のユーザ定義型は値渡しか参照渡しか答えなさい。はい論破
0148デフォルトの名無しさん
2013/02/02(土) 19:32:38.480149デフォルトの名無しさん
2013/02/02(土) 19:33:45.38お前は語尾に論破が付いてないから根付いていない。はい論破
0150デフォルトの名無しさん
2013/02/02(土) 19:44:38.020151デフォルトの名無しさん
2013/02/02(土) 19:52:41.400152デフォルトの名無しさん
2013/02/02(土) 21:48:29.780153デフォルトの名無しさん
2013/02/02(土) 21:53:28.04ByValが値渡しでByRefが参照渡し。
VB6のユーザ定義型といったらTypeだろ。
クラスもユーザが定義するんだからTypeだけをユーザ定義型と
いうのもどうかと思うけど、Typeは値型。
ByValだったら値型の値渡し。
ByRefだったら値型の参照渡し。
0154デフォルトの名無しさん
2013/02/02(土) 22:00:17.58サンンプルコードかけば一発で判るんだけど、そんなこともやってないのか?
何か残念だな。
0155デフォルトの名無しさん
2013/02/02(土) 22:06:41.840156デフォルトの名無しさん
2013/02/02(土) 22:07:07.22やってないしやる意味もないしお前の頭が残念。何がわかるんだ?はい論破。
0157デフォルトの名無しさん
2013/02/02(土) 22:10:13.300158デフォルトの名無しさん
2013/02/02(土) 22:22:18.69話がかみ合ってない理由がよくわかったw
>>147はユーザー定義型は値渡しか参照渡しか聞いてるのに
何故かお前はByRef、ByValの解説してるし。
あさっての話しちゃまずいだろw
0159デフォルトの名無しさん
2013/02/02(土) 22:23:12.23はいクッパ
0160デフォルトの名無しさん
2013/02/02(土) 22:36:35.93俺はユーザ定義型が値渡しか参照渡しかを聞くことが間違ってるって思ってる。
だから俺がどう考えてるのかを示した。お前は正座してそれを100ぺん独唱すればいいと俺は思ってる。
ちょっと下品かもしれないけど股間の話をしてる人に対してそれは果物か野菜かと問うことは
愚の骨頂だろ。俺の股間は花鳥風月を愛でる日本の伝統文化の結晶和菓子と呼ばれてしかるべきだ。はい論破。
0161デフォルトの名無しさん
2013/02/02(土) 22:36:50.38お前の話がかみ合わないのは
値型と参照型の区別がつかない
値渡しと参照渡しの区別がついてない
型の区別と引数の渡し方の区別がついてない
かみ合わないんじゃなくて、正しくはお前が理解してないだけ
0162デフォルトの名無しさん
2013/02/02(土) 22:44:52.71これだからVBerって馬鹿にされるんだろうな
0163デフォルトの名無しさん
2013/02/02(土) 22:49:22.040164デフォルトの名無しさん
2013/02/02(土) 22:53:27.17見えない敵と必死で戦ってご苦労さんって感じなんだがw
VBのスレなんだからVBの仕様をきちんと理解してから書き込もうね。
人の話をきちんと聞かないようだから、こんなこと言っても無駄か。
0165デフォルトの名無しさん
2013/02/02(土) 22:54:37.820166デフォルトの名無しさん
2013/02/02(土) 22:59:38.36VBの仕様を否定した覚えはないから、お前が言ったことはたぶん無駄だね。
お前は和菓子をかじりながら俺の股間の話を思い出してればいい。はい論破。
0167デフォルトの名無しさん
2013/02/02(土) 23:04:40.180168デフォルトの名無しさん
2013/02/02(土) 23:07:59.00>ByValだったら値型の値渡し。
>ByRefだったら値型の参照渡し。
0点wwwwwwwwwwwwww
ユーザー定義型をByValにすると実行時エラーになる。
0169デフォルトの名無しさん
2013/02/02(土) 23:36:39.60半分合ってるので50点。はい論破。
0170デフォルトの名無しさん
2013/02/02(土) 23:47:39.16ってかさVBのコード書いたことがないのがモロバレじゃん。
根っこの考え方が間違ってるわけだから0点wwww
0171デフォルトの名無しさん
2013/02/02(土) 23:53:02.44Class Closeable
Public Sub Process()
End Sub
Public Sub Close()
End Sub
End Class
はい論破
0172デフォルトの名無しさん
2013/02/03(日) 00:18:15.76そういうことを言ってるわけじゃない。
そんなので話をすり替えるな。
ユーザー定義型を引数で渡すコードなんて基本中の基本。
そんなことさえも分からず能書きたれるんじゃない。
因みに>>171のコードってVB6で動くとは到底思えないんだけど。
VB6のクラスを全く理解してないようだし。
バージョン間違えてましたとか、スレタイちゃんと見てなかったっていう言い訳は無しね。
0173デフォルトの名無しさん
2013/02/03(日) 01:51:20.41根っこの考え方?
ただの制約事項だろ、どんな根っこの考え方からユーザー定義型の値渡しが制限される訳?
どう考えても根っこなのは
ByValは変数のコピーが渡されると言う事
その結果として
値型ならデータそのものがコピーされ
参照型ならデータを指し示すアドレスがコピーされると言う事
参照型の参照渡しをする奴はバカだと言う事
それにな
俺>>153じゃないんだわ
はい、論破。
0174デフォルトの名無しさん
2013/02/03(日) 02:01:20.88> 参照型の参照渡しをする奴はバカだと言う事
呼び出し先で参照先を変更してもらうこともあるだろ。
応用力ないんか?
0175デフォルトの名無しさん
2013/02/03(日) 02:08:30.98悪いけどそれはないよ。
普通のプログラマは言語仕様出来てもそんなコードは書かない。
C#みたいに呼び出し元にも明示的にoutを付けないとだめな仕様なら場合によっては
許されるかも知れないがVB(VB.NET以降も含む)の仕様では、少なくとも俺は
そんなコードは書きたくないね
0176デフォルトの名無しさん
2013/02/03(日) 02:19:53.44VB.NETはByRefて書かないと参照渡しにならないっすよ。
なのであーこれ参照渡しだなーとわかる点はC#と変わんない。
木構造書くときなんかは参照渡し使えると便利なんだけどね。
まあ値をreturnするってのがわかりやすいよな。
0177デフォルトの名無しさん
2013/02/03(日) 02:23:55.24いや、だから「君の意見」なんてどうでもいいぞ。
0178デフォルトの名無しさん
2013/02/03(日) 02:25:59.79バカってのは
「引数の値を変えたい場合、参照渡しを使います」
研修を教わったコレをなんの疑問も持たずに使い続けてる奴
あ、でもStringは例外だかんな
0179デフォルトの名無しさん
2013/02/03(日) 02:28:47.95そんなこといったらお前の意見もどうでもいいわけで
みんなが意見を出しあってあーでもないこーでもないというのが
コミュニティというものだろうが、はい論破。
0180デフォルトの名無しさん
2013/02/03(日) 02:29:11.36>>175にも書いた通り、C#では呼び出し元にもoutを書く必要があるし、
outとVBのByRefはまったく意味が違う。
0181デフォルトの名無しさん
2013/02/03(日) 02:31:18.41ああそういうことね。意味的にはrefが同じだろうな。
0182デフォルトの名無しさん
2013/02/03(日) 02:39:33.37ByRefを使う理由は引数で戻り値を返したい場合の他に
ユーザー定義型や文字列みたいなデータがでかいものを
引数として渡すときに発生するデータのコピーのコストを
下げるためってのがあるんだよ。
0183デフォルトの名無しさん
2013/02/03(日) 02:41:25.32それは否定しないよ。否定した覚えもないよ。バカはお前だよ。はい論破だよ。
0184デフォルトの名無しさん
2013/02/03(日) 02:43:30.75>>183
誰もお前にレスしてるんじゃねーよ。勝手に枕詞にレスすんな
0185デフォルトの名無しさん
2013/02/03(日) 02:46:14.28182 名前:デフォルトの名無しさん[sage] 投稿日:2013/02/03(日) 02:39:33.37
は?論破くんって馬鹿なの?
183 名前:デフォルトの名無しさん[sage] 投稿日:2013/02/03(日) 02:41:25.32
>>182
それは否定しないよ。否定した覚えもないよ。バカはお前だよ。はい論破だよ。
0186デフォルトの名無しさん
2013/02/03(日) 02:53:53.72そういうことじゃなくて、ByRefを使う理由について述べただろ、俺はそれを否定しないってこと。はい論破。
0187デフォルトの名無しさん
2013/02/03(日) 02:55:28.32それじゃつまらない。はい論破
0188デフォルトの名無しさん
2013/02/03(日) 02:56:23.61参照型の値渡しは値渡し
オブジェクトの状態を変更出来るがだからって参照渡しとは呼ばない
それでいいな!
0189デフォルトの名無しさん
2013/02/03(日) 02:57:38.70いいよ。はい論破。
0190デフォルトの名無しさん
2013/02/03(日) 03:09:05.62それの対象が異なっていることはわかるわけで、いかにも低学歴なやつがやりそうなことだな。
曲解の典型例であり低学歴の典型例をお前は示した。心からお悔やみ申し上げるとともに
一日も早くご逝去されますことをお祈り申し上げる。はい論破。
0191デフォルトの名無しさん
2013/02/03(日) 03:34:54.41お前の願いは叶わなかった。はい論破w
0192デフォルトの名無しさん
2013/02/03(日) 05:50:55.860193デフォルトの名無しさん
2013/02/03(日) 08:36:00.120194デフォルトの名無しさん
2013/02/03(日) 09:25:33.89> 「引数の値を変えたい場合、参照渡しを使います」
じゃなく
「引数の値を変えたくない場合、値渡しを使います」
だぜ
VB6系の仕様的にそうなってるだろ
0195デフォルトの名無しさん
2013/02/03(日) 10:55:45.04値渡し、参照渡しなんて誤解を招く表現を使わず
ByVal、ByRef って言えばいいだろアホかおまえら
0196デフォルトの名無しさん
2013/02/03(日) 17:06:20.22C#も頑張ってはいるんだけど、オブジェクト指向の言語としては
VBとの間はまだいちにちのおさがある。VBの方が洗練されている。
C#の魅力としては.NETの標準ライブラリが充実していることだが、それだけだ。
そのライブラリの品質もそれほど高いものでもない。いうなればまだVBに論破されてる状態だな。
0197デフォルトの名無しさん
2013/02/03(日) 17:07:18.040198デフォルトの名無しさん
2013/02/04(月) 06:34:38.60へ、VB6ってなんちゃってオブジェクトだと思ってたんんだけど。
もしかして>>171のコードがVB6に通用するなんて思ってないよねw
0199デフォルトの名無しさん
2013/02/04(月) 06:36:19.32×オブジェクト
〇オブジェクト指向
0200デフォルトの名無しさん
2013/02/04(月) 12:36:02.22もしかしちゃったりするんだなこれが。
俺はオブジェクト指向の話をしたかったんだけど、お前が言ってるのは>>171の
コードがVB6で通用するかどうかという話な。>>171は俺じゃないけど、>>171の
コードを書いたのは俺だから俺はお前の質問に答えようと思う。
俺は>>171のコードがVB6で通用すると思ってる。そこには疑問をさしはさむ余地は
微塵もないし>>171のコードがVB6で動作することは俺の確信ということをはるかに
超越してこの世の真理といってもいいものだ。はい論破。
0201デフォルトの名無しさん
2013/02/04(月) 12:38:50.850202デフォルトの名無しさん
2013/02/04(月) 12:46:52.08おいやめろ、まるでお前は俺がここにいることが迷惑だといわんばかりの
いいぐさじゃないか。心にもないことをいうな。はい論破。
0203デフォルトの名無しさん
2013/02/04(月) 13:15:58.990204デフォルトの名無しさん
2013/02/04(月) 13:20:59.89まるでも何も、迷惑なんですが。
ageるし。
0205デフォルトの名無しさん
2013/02/04(月) 13:41:33.760206デフォルトの名無しさん
2013/02/04(月) 14:00:07.04〈 〉,,..,,〈 〉
/(・) _ (・)\
/三 `' 三\ >>204のバカ、もう知らない
/ ィ― ̄ ̄ ̄―、 \
/ / ヘ ヘ ヘ ヽ ヽ
0207前スレ何番か
2013/02/04(月) 14:53:41.30クライアントコードからの入り口をGetUsers()だとしたい場合は、関数名も含めてこうなる。
Sub GetUsers() As ADODB.Recordset
Dim objConnection As ADODB.connection
Set objConnection = New ADODB.connection
Set GetUsers = B(objConnection)
If objConnection.State <> adStateClosed Then
Call objConnection.Close
End If
End Sub
Private Function B(ByVal objConnection As ADODB.connection) As ADODB.Recordset
On Error Resume Next
Set B = A(objConnection)
If Err.Number <> 0 Then
Debug.Print Err.Description
End If
End Sub
Private Function C(ByVal objConnection As ADODB.connection) As ADODB.Recordset
Call objConnection.Open
' usersを検索してRecordsetを戻す
End Sub
Private Sub Command1_Click()
Dim rs As ADODB.Recordset
Set rs = GetUsers()
'rsの内容を画面表示
End Sub
GetSections()を作ってCommand1_Click()から呼びたい場合、同じようなコードセットを書く必要がある。
0208前スレ何番か
2013/02/04(月) 14:53:58.64InsertFoo()
InsertBar()
を呼ばなければならないとする。
さて、A(), B(), C()方式だと
・トランザクションの開始はどこで行うのか
・Commitはどこで行うのか
・エラーが発生した場合、Rollbackはどこで行うのか
という問題が発生する。
ちなみに俺はA(), B(), C()という構造そのものは否定しない。
データベースを使用するアプリケーションでは無い何かのドメインでは、
A(), B(), C()という構造が有効なのかもしれない。
もし、そのような場合があるのであれば、是非教えて欲しい。
0209前スレ何番か
2013/02/04(月) 14:55:28.23正:Public Function GetUsers() As ADODB.Recordset
0210デフォルトの名無しさん
2013/02/04(月) 14:56:20.860211デフォルトの名無しさん
2013/02/04(月) 14:57:15.090212デフォルトの名無しさん
2013/02/04(月) 14:58:04.52関数ではなくクラスにすれば
スッキリと実装できる。
やってみな。
0213デフォルトの名無しさん
2013/02/04(月) 15:04:19.73お前と同じようなことを言った人間は何人もいた。しかし、ABC構造を
超える優れたコードを示すことができた人間は結局一人もいなかった。
そうであるがゆえに俺が示したABC構造はVBにおける例外処理の
ベストプラクティスとしてこのスレに掲載されるにいたった。
お前は悪口をいっちょまえにいえるだけの半人前以下の4半人前。はい論破。
0214デフォルトの名無しさん
2013/02/04(月) 15:17:51.60> 超える優れたコードを示すことができた人間は結局一人もいなかった。
お前が優れていると認識できないだけじゃないのか?
優れている=シンプル。
なのでクラスとInitializeとTerminateを使ってシンプルに
実装した例があったが、それをお前が優れていると認識できてないだけだろ?
0215デフォルトの名無しさん
2013/02/04(月) 15:18:42.72馬鹿にされてるじゃん。>>1は晒し上げだろw
0216デフォルトの名無しさん
2013/02/04(月) 15:25:01.76データベースの処理は検索、挿入、削除くらいなんだから
同じようなコードを書くといってもせいぜい3つだろ。
あとは細かい部分を専用オブジェクトを作るなりして処理すればいいだろ。
こんなんで余裕だろ。はい論破。
Function GetUsers()
Dim u
Set u = New Usersholder
Call A(u)
Set GetUsers = u.Users
End Function
Class Usersholder
Public Users As ADODB.Recordset
Public Sub C(objConnection)
End Sub
End Class
Sub B(ByVal objConnection As ADODB.connection)
On Error Resume Next
Call objProcessor.C(objConnection)
If Err.Number <> 0 Then
Debug.Print Err.Description
End If
End Sub
0217デフォルトの名無しさん
2013/02/04(月) 15:28:51.88隠蔽してはいきれいとのたまってるやつはいたが、だったらAとBを
隠蔽すればいいわけで、例外処理の美しさでABC論理を超えるものではなかった。
だからこそそのコードではなくて俺のコードがこのスレに掲載されるにいたった。はい論破。
0218前スレ何番か
2013/02/04(月) 15:30:24.54前スレでも指摘したが、最も問題なのはOpenをC()で行っていることで、そのコードでは何も解決になっていない。
コードを省略せずにFooテーブルとBarテーブルにレコードをトランザクションでInsertする処理を考えれば、
何故ダメなのかがより明確になる。
0219デフォルトの名無しさん
2013/02/04(月) 15:30:26.08おいおい、やるに事欠いて、ClassにRecordsetを保持するのかよ...馬鹿じゃないの...
0220デフォルトの名無しさん
2013/02/04(月) 15:31:27.34A
Exit Sub
TRY_B:
On Error Goto TRY_C
B
Exit Sub
TRY_C:
C
と書くと、Bでエラーになったときに、
Cに飛ばずにエラー中断してしまいます。
Aを試みてエラーならB試みる。
Bを試みてエラーならCを・・・
とするには、どのように書けば良いですか?
0221デフォルトの名無しさん
2013/02/04(月) 15:32:15.65Debug.Print Err.Description
End If
これが最悪だよな。
エラーをどこに表示するかはライブラリのユーザー側が決めることで
内部で出しちゃいかんよ。ちゃんとErr.Raiseしろ
0222デフォルトの名無しさん
2013/02/04(月) 15:32:47.29それVB6のコードじゃないよ。
0223デフォルトの名無しさん
2013/02/04(月) 15:33:11.66馬鹿にするやつは前のスレに何人かいたが結局そいつらはことごとく
虫けらのごとく俺に論破されたわけで、だからこそ俺の例外処理が
ベストプラクティスであるとスレの総意に近いものが得られるにいたったわけであり、
このスレに掲載されるにいたったわけ。そ・う・い・う・こ・と・な・わ・け。はい論破。
0224前スレ何番か
2013/02/04(月) 15:33:35.14> 隠蔽してはいきれいとのたまってるやつはいたが、だったらAとBを
> 隠蔽すればいいわけで
だとするなら、そのAとBを隠蔽する場合のコードを提示してくれ。
現状では、A, B, Cで意味的にPublicにできるのは、Aだけだ。
0225デフォルトの名無しさん
2013/02/04(月) 15:35:54.46OpenステートメントやTextStream関連読んでもunicodeかASCIIの二通りの読み込み方しか書いてないのに
0226デフォルトの名無しさん
2013/02/04(月) 15:36:01.59CでOpenしてなにが悪いのよ。OpenとCloseの階層が異なっていることは
前スレで完全に論破しただろ。はい論破。
0227デフォルトの名無しさん
2013/02/04(月) 15:36:21.32頼むからVB6のコードで示してくれ。
こっちが恥ずかしくて見てられないよw
0228前スレ何番か
2013/02/04(月) 15:38:14.56「オープンして」「検索する」関数は、凝集度が低い。
異なるレイヤーの処理をひとまとめにしてしまうと、それだけで使い勝手が悪くなる。
Cでオープンするのが何故ダメのかは、
コードを省略せずにFooテーブルとBarテーブルにレコードをトランザクションでInsertする処理を考えれば、
何故ダメなのかがより明確になる。
0229デフォルトの名無しさん
2013/02/04(月) 15:38:30.67いいコーディングの話しようぜw
0230デフォルトの名無しさん
2013/02/04(月) 15:39:05.42こんなんでいいだろ、外からはHiderしか見れません。はいきれい。はい論破。
Class Hider
Public Sub A()
End Sub
Public Sub B()
End Sub
End Class
0231前スレ何番か
2013/02/04(月) 15:42:26.46なぁ、そもそも「データベースのオープンに代表される、リソース管理にまつわる
エラーハンドリングとしてのA, B, Cという構造の提示」じゃなかったのか?
Cを省略して考えても意味が無い。
クライアントコードに公開する関数/メソッドと、リソースを保持する変数(例えばデータベースコネクション)、
そして返すべき戻り値を含めて具体的にコードを考えないと意味が無い。
0232デフォルトの名無しさん
2013/02/04(月) 15:43:09.97賛成
トランザクションの話をしよう。
「データベースを使った処理」と
「トランザクション」は分離していないといけない。
つまり、
データベースを使った処理開始
トランザクション開始
処理
トランザクション終了
終了
この形は良くない。なぜなら、データベースを使った処理
複数個を一つのトランザクションにまとめられないから。
だから「データベースを使った処理」の中にトランザクション処理は含めるべきではない。
0233デフォルトの名無しさん
2013/02/04(月) 15:43:35.21なぜダメなのか明確になるけどお前は考えてないからそれを明確に示すことは
できないのね。じゃあダメであることは不明確なままであり、現時点で俺のABC理論が
ベストプラクティスであることに変わりはない。はい論破。
0235デフォルトの名無しさん
2013/02/04(月) 15:45:02.45なぜなら、処理自体は同じでも別のデータベースに対して行うかもしれないから。
処理とコネクションが一体化されてしまうと柔軟性がなくなってしまう。
0236デフォルトの名無しさん
2013/02/04(月) 15:47:20.600237デフォルトの名無しさん
2013/02/04(月) 15:48:45.22戻り値をエラーに値として使ってはいけない。
これらのことを合わせると以下の様な構造になる。
Sub main
On Error Goto ErrHandler
コネクション作成
トランザクション開始
データベース処理
コミット
Exit Sub
ErrHandler:
エラー処理(ロールバック)
End Sub
0238前スレ何番か
2013/02/04(月) 15:50:29.48VB6では内部コードとしてUnicodeを使ってるから。
『転ばぬ先の文字コード入門(第4回)』
http://itpro.nikkeibp.co.jp/members/ITPro/ITBASIC/20010620/4/
0239デフォルトの名無しさん
2013/02/04(月) 15:51:12.78そうすることでいちいち引数でコネクション渡す必要はなくなるし、
それでいて複数のコネクションに対応できる。
Sub main
On Error Goto ErrHandler
コネクション作成
トランザクション開始
Set DB処理インスタンス1 = new クラス名(コネクション)
コミット
Exit Sub
ErrHandler:
エラー処理(ロールバック)
End Sub
0240デフォルトの名無しさん
2013/02/04(月) 15:51:58.53お前がAとBを隠蔽する場合のコードを提示してくれと言ったから
俺はAとBを隠蔽するコードを示してお前と同じようにはいきれいといって見せたわけであり、
お前がAとBを隠蔽するコードを要求したから俺がそれを示したわけであり、
Cが省略されているから意味がないというのはこれはひどいいいがかり。
>>234
うん、お前は目も当てられないほど見苦しいわ。俺が徳川八代将軍吉宗であったらいさぎよく
腹を切れと喝破して、峰打ちと称して心臓を一突きにしてやってるとこだわ。はい論破。
0242デフォルトの名無しさん
2013/02/04(月) 15:52:57.600243前スレ何番か
2013/02/04(月) 15:54:33.75これで君にするレスは最後ね。
前スレでA, B, Cという構造を見たとき、正直衝撃を受けたよ。
今まで考えたこともなかった構造だったから。
俺は、他の人と違ってばっさり切り捨てることはしない。
今後も折に触れて、ABC構造が適合するような場面があるのかないのか、個人的に考えていくよ。
じゃね。
0244デフォルトの名無しさん
2013/02/04(月) 15:55:29.31君のコードが根本的にダメなのは、コードのそのままぺたっと書こうとしている所
> Aを試みてエラーならB試みる。
> Bを試みてエラーならCを・・・
とやりたいことを書いているだろう?
そのとおり書けばいい。
A()
正常なら終了
B()
正常なら終了
C()
正常なら終了
0245デフォルトの名無しさん
2013/02/04(月) 15:58:40.30これならOn Error Resume Nextが便利
Sub Func
On Error Resume Next
Call A
If Err.Number = 0 Then Exit Sub
Call B
If Err.Number = 0 Then Exit Sub
Call C
If Err.Number = 0 Then Exit Sub
End Sub
AとBとCの内容は好きに書けばいい。
ただしエラーの時はErr.Raiseすること。
0246デフォルトの名無しさん
2013/02/04(月) 16:00:27.92その記事だとShift_JISが主流とか書いてあるけど日本国内PCって意味だよね?諸外国でもShift_JISが標準だったの?
0247デフォルトの名無しさん
2013/02/04(月) 16:05:04.56VBでは実装しにくいから関数オブジェクトにして
nantoka(new A(), new B(), new C())
A、B、Cはそれぞれrun(名前はなんでもいいけど)メソッドという
インターフェースを持ったクラス。
nantokaって関数は、エラーであれば次の引数のrunを呼ぶみたいな
コードを書けばいい。
A、B、Cそれぞれのクラスができるからちょっと面倒。
CallByName当たりを使えば一つのクラスで実装できるだろう。
0249デフォルトの名無しさん
2013/02/04(月) 16:07:35.26そこに肉付けしていくのではなく、
やりたいことを書いて、それだけで動くように
するにはどうするか?って考えるのがいい。
コードをシンプルに保つ秘訣だ。
0250デフォルトの名無しさん
2013/02/04(月) 16:15:52.60お前もVB6じゃないコードだって指摘できないから同罪。
0251デフォルトの名無しさん
2013/02/04(月) 16:26:47.05クラスでRecordsetを保持したらダメだと思ってんの?馬鹿はお前のほうだ。お前は疑いようのない馬鹿だ。はい論破。
0252デフォルトの名無しさん
2013/02/04(月) 16:48:24.53ABC理論だとこんなに簡潔にできる。敗北を知りたい。はい論破。
Sub A()
Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
Call B(objConnection)
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
End Sub
Sub B(ByVal objConnection As ADODB.Connection)
On Error Resume Next
Call C(objConnection)
If Err.Number <> 0 Then
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
End If
End Sub
Sub C(ByVal objConnection As ADODB.Connection)
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
End Sub
0253220
2013/02/04(月) 17:11:29.13なるほど、On Error Resume NextにしてErr.Numberを調べれば良いのですね。
try{
A();
}catch(...){
try{
B();
}catch(...){
C();
}
}
のように書こうとして、ずっと悩んでおりました。
ありがとうございました。
0254デフォルトの名無しさん
2013/02/04(月) 17:12:09.88Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
On Error Resume Next
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
If Err.Number <> 0 Then
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
End If
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
0255デフォルトの名無しさん
2013/02/04(月) 17:21:26.08try-catchのネストはやめたほうがいい
やりたくなったら構造が間違っていると考えたほうがいい。
ほんとうに必要な場合ってのは殆ど無いはずだ。
0256デフォルトの名無しさん
2013/02/04(月) 17:25:01.80それはやっちゃいけないパターンだ。
Resume NextだからOpenで例外が投げられたとしても
処理が継続されてBeginTransが実行されて例外が投げられて
Openの例外が消失してCommitTransが実行されてBeginTransの例外が
消失する。最低のパターン。ワーストケース。お前のおつむの程度が知れるな。はい論破。
0257デフォルトの名無しさん
2013/02/04(月) 17:28:14.19Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
If Err.Number <> 0 Then
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
End If
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
0258デフォルトの名無しさん
2013/02/04(月) 17:28:43.98コネクションが閉じられたら、レコードセットが無効になるよ
0259デフォルトの名無しさん
2013/02/04(月) 17:30:12.07え、そうなの?じゃあコネクション閉じられないな。はい論破。
0260デフォルトの名無しさん
2013/02/04(月) 17:30:39.13そりゃそうだろw
0261デフォルトの名無しさん
2013/02/04(月) 17:34:08.32お前はバカすぎる。例外が発生した時点で処理が中断されるん
だからErr.NumberのチェックもConnection.Stateのチェックも
意味がなくなる。お前だけレベルが低すぎる。インターネットを
利用しちゃいけないレベル。回線切ってゴマでもすりつぶしてろ。はい論破。
0262デフォルトの名無しさん
2013/02/04(月) 17:34:11.21Sub foo()
On Error Goto ErrHandler
Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
Exit Sub
ErrHandler:
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
End Sub
0263デフォルトの名無しさん
2013/02/04(月) 17:34:48.510264デフォルトの名無しさん
2013/02/04(月) 17:36:37.42さすがだ。たった3秒でそのレスをするとはな。
0265デフォルトの名無しさん
2013/02/04(月) 17:38:03.82いいわけあるか、例外が発生したときにErrHandlerに飛ばされるが、
Connection.Closeは例外が発生しなくても呼ばれなくてはいけない。
お前のようなさんしたは下手にアレンジしようとせずに俺が示したとおりに
記述するのがベストだ。なぜなら俺がベストを示したからだ。はい論破。
0267デフォルトの名無しさん
2013/02/04(月) 17:38:43.53Sub foo()
On Error Goto ErrHandler
Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
ErrHandler:
If objConnection Is Nothing Then Exit Sub
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
End Sub
0268前スレ何番か
2013/02/04(月) 17:39:44.83catch内でリソースの解放が必要になるときに、その処理自体が例外を発生する可能性がある場合って
良くあることだと思うけど、俺だけなのか?
0269デフォルトの名無しさん
2013/02/04(月) 17:40:02.39完成されたコードになるのだろう。
黙ってみてよw
0270デフォルトの名無しさん
2013/02/04(月) 17:40:23.43閉じない様に気をつけるのか...頑張ってね...
0271デフォルトの名無しさん
2013/02/04(月) 17:42:25.99つまりこうしろってことですね?
Sub foo()
On Error Goto ErrHandler
Dim objConnection As ADODB.Connection
Set objConnection = New ADODB.Connection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
ErrHandler:
If objConnection Is Nothing Then Exit Sub
If Err.Number <> 0 Then
If objConnection.State = ADODB.adStateClosed Then
Call objConnection.RollbackTrans
End If
End If
If objConnection.State <> ADODB.adStateClosed Then
Call objConnection.Close
End If
End Sub
0272デフォルトの名無しさん
2013/02/04(月) 17:42:59.490273デフォルトの名無しさん
2013/02/04(月) 17:47:16.87こういうのは共通クラスにまとめよう。
Sub foo()
On Error Goto ErrHandler
Dim objConnection As MyConnection
Set objConnection = New MyConnection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
ErrHandler:
If Not objConnection Is Nothing Then
Call objConnection.CleanUp
End If
End Sub
0274デフォルトの名無しさん
2013/02/04(月) 17:48:02.36は? なに言ってんの? バーカ。はい論破。
>>267
正常時の処理と異常時の処理がごちゃまぜにされた劣化コードだな。
お前にはそれが限界だろうな。俺レベルになると構造化プログラミングの
真髄を示すことができるけどな。それが>>252。はい論破。
>>268
お前だけだろ。お前だけ。お・ま・え・だ・け。はい論破。
0275デフォルトの名無しさん
2013/02/04(月) 17:49:34.00Sub Foo()
On Error Goto ErrHandler
Dim objConnection As MyConnection
Set objConnection = New MyConnection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
Exit Sub
ErrHandler:
ErrorLog(Err)
End Sub
0276デフォルトの名無しさん
2013/02/04(月) 17:50:20.41うわっ神。超シンプル。
感動した。
0277デフォルトの名無しさん
2013/02/04(月) 17:54:17.89それは臭いものにふたをするだけの詭弁コードだな。そんなことが許される
のであれば俺はこれでできることになる。はい論破。
Sub C(ByVal objConnection As ADODB.Connection)
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
End Sub
0278デフォルトの名無しさん
2013/02/04(月) 17:55:13.03コード減ってる。Newする所も書かないとダメだろう?
0279デフォルトの名無しさん
2013/02/04(月) 17:56:41.980280デフォルトの名無しさん
2013/02/04(月) 17:57:36.73Sub C()
On Error Goto ErrHandler
Dim objConnection As MyConnection
Set objConnection = New MyConnection
Call objConnection.Open
Call objConnection.BeginTrans
Call objConnection.CommitTrans
Exit Sub
ErrHandler:
ErrorLog(Err)
End Sub
よし。これでOKだ
0281デフォルトの名無しさん
2013/02/04(月) 17:58:18.88俺はMyConnectionの実装を示さないお前と同じことをやってみせただけのことだ。
お前は都合の悪いところは隠せばいいという隠蔽体質を恥じらいもなく見せた
厚顔無恥であることを自覚しろ。正々堂々と勝負している俺の敵ではない。はい論破。
0282デフォルトの名無しさん
2013/02/04(月) 18:11:37.17MyConnectionにはすくなくともOpen、BeginTrans、CommitTransのメソッドを
用意しなければならず、それは内部のConnectionオブジェクトに処理を委譲する
だけのだっさい実装になってる。お前はコードを書きまくってそれを表に出さず、
きれいになりましたといってる恥知らず。厚顔無恥どころかその汚れまくった精神構造は
睾丸無知と呼ばれるにふさわしい。もうただのキンタマ。はい論破。
0283デフォルトの名無しさん
2013/02/04(月) 18:25:23.37キンタマコードが示されただけだった。
それもそのはずでベストプラクティスは俺の手によってすでに
示されているわけ。俺への不合理な反発、心理的リアクタンスから
俺のABC理論に逆らっているだけだったから結末は目に見えていた。
もっとこう合理的にこれがいいと示すことができる骨のあるやつはいないのか。
ここはいつからこんなにレベルの低い連中のたまり場になったんだ。はい論破。
0284デフォルトの名無しさん
2013/02/04(月) 20:17:24.900285デフォルトの名無しさん
2013/02/04(月) 20:20:16.870286デフォルトの名無しさん
2013/02/04(月) 20:22:12.53ぐぬぬ・・・となってるだけだろ。はい論破。
0287デフォルトの名無しさん
2013/02/04(月) 21:47:44.16Sub F1(ByVal inValue, ByRef outValue)
とか?
プリフィックス付けなかったらメンバー変数とか関数とかと
被ったりしてなんかいやだろ。どうしてる?
0288デフォルトの名無しさん
2013/02/04(月) 21:54:57.440289デフォルトの名無しさん
2013/02/04(月) 22:10:34.76何でググってみないの?バカなの?死ぬの?
0290デフォルトの名無しさん
2013/02/04(月) 22:22:56.39メンバ変数にプリフィクス付けてるから
引数はあまり気にしない
小文字で始めれば関数との被りは気にしなくて良い
0291デフォルトの名無しさん
2013/02/04(月) 22:31:12.58関数と被るときあるじゃん。メンバー変数にプリフィックスつけたら外部から
呼び出すときなんか嫌じゃない?
0292デフォルトの名無しさん
2013/02/04(月) 22:34:50.12> 小文字で始めれば関数との被りは気にしなくて良い
関数の名前に名詞を使ってるの?
それとも変数に動詞を使ってるの?
0293デフォルトの名無しさん
2013/02/04(月) 22:34:58.30モジュール内変数 m
引数 a
0294デフォルトの名無しさん
2013/02/04(月) 22:54:33.83メンバー変数なんて全てプライベートだから、外部から直接呼び出したりしない
そもそも、なんのための「Property」やねんと...
0295デフォルトの名無しさん
2013/02/04(月) 23:04:28.69外部から変更可能なものならプロパティにする意味ないじゃん。
プロパティにしてもプリフィックスつけなきゃ被ることになるじゃん。
0296デフォルトの名無しさん
2013/02/04(月) 23:07:12.60被りは気にしなくて良い
0297デフォルトの名無しさん
2013/02/04(月) 23:09:49.46名詞が変数
なのでかぶることはない。
それにかぶったとしても
たいして問題にならない。
関数か変数かなんて大した問題ではない。
0298デフォルトの名無しさん
2013/02/04(月) 23:11:36.880299デフォルトの名無しさん
2013/02/04(月) 23:13:35.62えーそれありえなーい。コンパイラは大文字小文字を区別しないし、
If Value < value Then
比較するときこんなことになるよ。大文字小文字で見分けてたら見にくくない?
ミスを誘発するために地雷埋めてるようなもんじゃん。それって嫌じゃない?
0300デフォルトの名無しさん
2013/02/04(月) 23:14:28.91大丈夫だ、問題ない。
0301デフォルトの名無しさん
2013/02/04(月) 23:15:10.840302デフォルトの名無しさん
2013/02/04(月) 23:21:00.19「Property」には、「Get」「Let」「Set」の三種類があり、それぞれ名前を重複させる事ができるから、基本的に被る心配なんてない
0303デフォルトの名無しさん
2013/02/04(月) 23:24:53.22引数と被ることあるじゃん。
Sub Func(ByVal value As String)
'なんかこれ嫌じゃない?
End Sub
Property Get Value() As String
End Property
0304デフォルトの名無しさん
2013/02/04(月) 23:25:57.670305デフォルトの名無しさん
2013/02/04(月) 23:31:12.50引数にもっと適切な名前をつけましょう。
0306デフォルトの名無しさん
2013/02/04(月) 23:31:58.81何が嫌なの?
Funcから、PropertyのValueにアクセスしたければ、Me.Valueでアクセスできるだろ?
0307デフォルトの名無しさん
2013/02/04(月) 23:33:32.04この安価の付け合いのレス合戦は台本通りの自作自演か?
0308デフォルトの名無しさん
2013/02/04(月) 23:34:33.08だからさ、みんな引数のプリフィックスどうしてるのかなーと思って。
>>306
う、うん、そりゃできるけどさ。Me付けるタイプ?ふーん。
0309デフォルトの名無しさん
2013/02/04(月) 23:35:46.10レスどれよ?まともなこと書いてないんだろ。
0310デフォルトの名無しさん
2013/02/04(月) 23:38:54.53プリフィックスなんか付けない。
適切な変数名をつけていればかぶらない。
0311デフォルトの名無しさん
2013/02/04(月) 23:42:18.63Meを付けなければならない時は付けるし、付ける必要が無いときは付けない
ただ、それだけ
そもそも、メソッドにPublicなSubが必要なのか?
Propertyに押し込めるんじゃないのか?
0312デフォルトの名無しさん
2013/02/04(月) 23:42:39.59じゃあたとえば二分木のNodeクラスのValueに適切な
引数名てどういうの?
0313デフォルトの名無しさん
2013/02/04(月) 23:57:43.230314デフォルトの名無しさん
2013/02/04(月) 23:59:15.57それプリフィックスじゃん。
0315デフォルトの名無しさん
2013/02/05(火) 00:00:06.54は? 単語を二つくっつけただけだろ
0316デフォルトの名無しさん
2013/02/05(火) 00:01:53.10クラス名を変数の前に付けるんでしょ。単語を二つくっつけることと
プリフィックスは同時に成立することだよ。クラス名を付けるってことね。
0317デフォルトの名無しさん
2013/02/05(火) 00:29:28.80Value そのものか、あるいはメンバである事を表すプリフィクスを付けただけのものが
最も分かりやすい
それ以外の変数名は逆にややこしい
クラス名はプリフィクスとしてはあり得ない部類
クラスが違えばプリフィクスも変わるとか保守し辛い
0318デフォルトの名無しさん
2013/02/05(火) 00:30:50.70ここはVBスレだからvalueでもダメだったわ
VBならプリフィクス一択だな
0319デフォルトの名無しさん
2013/02/05(火) 09:41:06.10フォームAからvbModalでフォームBをShowさせたとき、blnIsEntをTrueに設定しアンロードした。
再度フォームAからvbModalでフォームBをShowさせたとき、なぜかblnIsEntがTrueになったままになっている。
まるでフォームBがアンロードされていないかのようにふるまう。
そこで、フォームAのvbModalでフォームBをShowさせる次のコードに Set frmB = Nothing を記述すると
再度フォームAからvbModalでフォームBをShowさせたとき、blnIsEntがFalseになった。
これはVB6.0の仕様なのか、俺が何かフォームBをアンロードできないような事をしてしまったのだろうか?
0320デフォルトの名無しさん
2013/02/05(火) 09:49:52.510321デフォルトの名無しさん
2013/02/05(火) 10:23:50.49Terminateイベントを早期に発生させる目的でオブジェクトの使用終了時にNothingを代入するプログラマーは多いですよ?
0322デフォルトの名無しさん
2013/02/05(火) 11:29:48.67> クラス名を変数の前に付けるんでしょ。単語を二つくっつけることと
クラス名を全部につけたら結局一緒だろw
そもそもnodeという単語であってNodeとくクラス名じゃないし
お前馬鹿なんじゃないの?
0323デフォルトの名無しさん
2013/02/05(火) 11:54:36.24> まるでフォームBがアンロードされていないかのようにふるまう。
アンロードされた=メモリ上から破棄された
というのが勘違い
0324デフォルトの名無しさん
2013/02/05(火) 12:21:21.17ガーページコレクションなんたらかんたらでNothingせずともメモリー上から破棄されるって言い切ってたような気が汁
素人論破集団怖すぎw
0325デフォルトの名無しさん
2013/02/05(火) 12:42:28.78その他オブジェクトは、Nothingの代入はいらないよ
0326デフォルトの名無しさん
2013/02/05(火) 12:46:21.94間違いではない。スコープから抜けて参照がどこからもなくなれば、とメモリから破壊される。
だがフォームの場合は「参照がどこからもなくなれば」という条件が
ややこしいのだ。Unloadは参照がどこからの亡くなるための条件の一つだが
それだけではない。
0327デフォルトの名無しさん
2013/02/05(火) 12:50:29.88実際のコードを見ないとなんとも言えない。
そのフォームAとかBというのがどういうフォーム名で
どのような変数名で呼び出して、どのような使い方をしているのか
書かないとわからない。
一般的にフォームのアンロードは、フォームをなくすための条件の一つであるが
アンロードされているだけで、フォームは消えない。
そもそもアンロードは、フォームを消す命令ではないからだ。
0328デフォルトの名無しさん
2013/02/05(火) 12:51:48.87単にStatic変数がメモリ上に保持されているというだけ。
フォームそのものはアンロードされている。
0329デフォルトの名無しさん
2013/02/05(火) 12:52:02.39> VB6ではNothingの代入は不要だって論破自慢してた人がいたが、実際には明らかに挙動が異なる局面があるじゃんw
それはインスタンスを削除するのにNothingは不要ってことでしょ?
代入してもしなくても挙動が全く同じなんて誰も言ってないですよ。
0330デフォルトの名無しさん
2013/02/05(火) 12:54:23.29> ガーページコレクションなんたらかんたらでNothingせずともメモリー上から破棄されるって言い切ってたような気が汁
うん、そうだね。
今は、アンロードの話をしている。
アンロードとNothingは別のものだ。Unload、Nothing 単語違うだろ?
0331デフォルトの名無しさん
2013/02/05(火) 12:55:48.98> 静的変数はプロシージャの終了後も存在し続け、最後に設定された値を保持します。
> 次回、コードからそのプロシージャを呼び出したとき、変数は初期化し直されることなく、
> 最後に割り当てられた値をそのまま保持します。
0332デフォルトの名無しさん
2013/02/05(火) 12:57:08.55ですがフォームはグローバル変数になっていることがあります。
ローカル変数ではないのでこの二つをごっちゃにしないようにしましょう。
0333デフォルトの名無しさん
2013/02/05(火) 12:58:33.55当然クラスがなくなったら
初期化されるよ。
常識だけどね。
0334デフォルトの名無しさん
2013/02/05(火) 13:02:06.19フォームアンロードの変数の値保持について 2000-09-18(月) 19:28
http://www.gizcollabo.jp/vbtomo/log/archive/vbqanda_30162_0.html
0335デフォルトの名無しさん
2013/02/05(火) 13:02:43.41それ違うだろ?
つまりNothingの代入が不要だと言い切って論破したのだから
Nothing代入以外でメモリーからフォームを消してみせる必要があるんじゃないの?
0336デフォルトの名無しさん
2013/02/05(火) 13:05:18.16> Nothing代入以外でメモリーからフォームを消してみせる
はいUnloadすることでメモリからフォームを消してみせましたよ。
0337デフォルトの名無しさん
2013/02/05(火) 13:12:11.77Forms コレクションから削除されていながら同名のフォーム指定で変数ごと蘇るとか
なんか悍ましい仕様だなVB6は
0338デフォルトの名無しさん
2013/02/05(火) 13:12:15.72参照カウンタ方式でメモリ上から破棄されるものに関しては、Nothing代入不要
Formはグローバル変数にアンロード後も保持されるので、本当に破棄したいならNothingの代入が必要
はい論破
0339デフォルトの名無しさん
2013/02/05(火) 13:13:07.88消えるのはコレクションの登録でメモリーからは消えないんだとよ。VB初心者さんw
0340デフォルトの名無しさん
2013/02/05(火) 13:14:20.48その「グローバル変数」って何の事を指して言っているのやら・・・。
0341デフォルトの名無しさん
2013/02/05(火) 13:14:26.00> 同名のフォーム指定で変数ごと蘇るとか
いや今さらそんなこと言われましても。
フォームにかぎらず、
Dim obj As new Class1
って宣言していれば、
objがNothingの時に自動的にnewされますよ。
0342デフォルトの名無しさん
2013/02/05(火) 13:15:16.53いや、だからコレクションの登録から消えることで
どこからも参照されなくなった時点で
自動的に消えるんだよ。
理解できるよね?
0343デフォルトの名無しさん
2013/02/05(火) 13:15:52.77バカラだか理解出来ませねん。
屁理屈ですか?それ屁理屈ですかwww
0344デフォルトの名無しさん
2013/02/05(火) 13:16:55.47Unloadしてからしばらくたつとメモリーからきれいさっぱり消えている事がある。この曖昧さが問題。
ある一定時間変数にアクセスが無いと用済みと勝手に判断して自浄するのだろうかねぇ?
0345デフォルトの名無しさん
2013/02/05(火) 13:18:15.38曖昧なのは、お前がちゃんと理解してないからだよ。
全て説明してやるから、お前が理解できない
(ちゃんと動く)コードを書いてみ。
0346デフォルトの名無しさん
2013/02/05(火) 13:19:05.34それって前に使ったのと同じオブジェクトがNewされるわけじゃないだろ?
Formは同じもんが使われるところが悍ましいって事だろうに?
国語力大丈夫か?はい論破。
0347デフォルトの名無しさん
2013/02/05(火) 13:20:50.75>どこからも参照されなくなった時点で
>自動的に消えるんだよ。
アンロード後にどこからも参照されてないフォームが消えない理由は?
0348デフォルトの名無しさん
2013/02/05(火) 13:22:43.260349デフォルトの名無しさん
2013/02/05(火) 13:32:19.44どこからも参照されないという証拠は?
お前がどこからも参照されていないと勘違いしているだけで
俺なら、どこから参照しているか言えるだろうね。
0350デフォルトの名無しさん
2013/02/05(火) 13:33:54.29> それって前に使ったのと同じオブジェクトがNewされるわけじゃないだろ?
フォームも同じですよ?
前に使っていたのと同じオブジェクトがnewされることはありません。
その証拠に変数が初期化されます。
0351デフォルトの名無しさん
2013/02/05(火) 13:35:49.75別の単語だって気づいてないよ。
どうせUnloadしたのに同じオブジェクトが使われる!
Unload=NothingだからNothingしたはずなのに
同じオブジェクトが使われるおかしい!とか思ってるんだぜ。
0352デフォルトの名無しさん
2013/02/05(火) 14:18:57.100353デフォルトの名無しさん
2013/02/05(火) 15:25:17.43>その証拠に変数が初期化されます。
初期化されないというのが今の論点だろうに?
アタマ大丈夫か?
0354デフォルトの名無しさん
2013/02/05(火) 15:26:18.66Unloadされても同じオブジェクトを使用されるが、Nothingで違うオブジェクトが使用されたって言ってるんじゃないのけ?
0355デフォルトの名無しさん
2013/02/05(火) 15:27:14.910356デフォルトの名無しさん
2013/02/05(火) 15:32:45.82Nothing代入はこのように必要不可欠な局面もあるということを再認識せよ。
これが結論でいいんじゃね?
0357デフォルトの名無しさん
2013/02/05(火) 15:33:38.380358デフォルトの名無しさん
2013/02/05(火) 16:15:45.39ByValは関数で定義されるものだからparameter、
ByRefは変数のエイリアスだからargumentと区別するのはどうだろうか。
ByVal paramValue, ByRef argValue
たとえば羊の皮を被った狼さんがいたとしてその事実を知っているにもかかわらず
その動物を羊さんとして扱ってしまったらパックリやられちゃうだろ。たとえ羊さんの皮を
被っていようと狼さんであると認識できる場合にはそれを狼さんとして扱うべきだ。
ウルフゴート理論と名づけよう。
0359デフォルトの名無しさん
2013/02/05(火) 16:16:19.390360デフォルトの名無しさん
2013/02/05(火) 16:23:45.46Form1.Show
Set Form1 = Nothing
Next
0361デフォルトの名無しさん
2013/02/05(火) 16:48:15.77なんでこういうアホな俺解釈を垂れ流すのかね
0362デフォルトの名無しさん
2013/02/05(火) 17:03:49.120363デフォルトの名無しさん
2013/02/05(火) 17:38:18.86それだけでもない
0364デフォルトの名無しさん
2013/02/05(火) 17:39:07.630365デフォルトの名無しさん
2013/02/05(火) 17:40:03.930366デフォルトの名無しさん
2013/02/05(火) 17:40:56.78グローバルに存在するということだけで、参照カウント+1
0367デフォルトの名無しさん
2013/02/05(火) 17:46:31.20それが隠れたグローバルって奴かな?フォームには次の4つの状態がある。
[1] 作成されているが、ロードされていない。
[2] ロードされているが、表示されていない。
[3] 表示されている。
[4] メモリ上に作成されていない。(解放状態)
例えばロード前にグローバル変数にアクセスされた[1] の段階のフォームは
すでに参照カウントが1ということかな?
0368デフォルトの名無しさん
2013/02/05(火) 17:48:39.80逆に言うとUnloadしてもNothingと何の関係もない。
これが模範解答かな?
0369デフォルトの名無しさん
2013/02/05(火) 17:52:44.350370デフォルトの名無しさん
2013/02/05(火) 18:08:53.150371デフォルトの名無しさん
2013/02/05(火) 18:15:30.90確かにフォームの挙動はわかりにくいよな。
Loadしなくてもフォームのグローバル変数にアクセスすればFormsコレクションに登録される。
しかしこの時ロードはされない。つまり[1]の状態
Loadしなくてもフォームのプロパティやコントロールにアクセスすれば自動的にロードされる。
つまり[2]の状態。
一度もShowしなくてもどちらもメモリー上には存在する。前者の場合はNothingの代入で
参照カウントがデクリメントされ、結果メモリーから消える。
後者の場合はUnloadをして[1]の状態となり、Nothingの代入で参照カウントがデクリメントされ、
結果メモリーから消える。
0372デフォルトの名無しさん
2013/02/05(火) 18:16:43.160373デフォルトの名無しさん
2013/02/05(火) 18:17:01.23単語を知ってる云々ではなく、インスタンス化がわかりにくいのがフォームだって事でしょ
おしゃべりさん
0374デフォルトの名無しさん
2013/02/05(火) 18:19:34.51しかし、インスタンス化したフォームは神経質にメモリから消さないと
二度目に開いたフォームのActivateイベント内でStatic変数がTrueになっていて
一回しか行われない様に意図した初期化ルーティンが走らないとかいうバグにつながるから要注意だな
0375デフォルトの名無しさん
2013/02/05(火) 18:23:45.560376デフォルトの名無しさん
2013/02/05(火) 18:25:05.56Formを閉じたら初期化されて欲しい変数なら、Staticにする必要無いじゃん
アホす
0377デフォルトの名無しさん
2013/02/05(火) 18:28:27.03Activateイベントへの再入を禁止するのが目的だろ?
なるべくグローバル変数を使わないようにする指針は間違ってないだろう。
0378デフォルトの名無しさん
2013/02/05(火) 18:29:29.58アホ返しは糞の味w
0379デフォルトの名無しさん
2013/02/05(火) 18:30:17.32一回しか実行したくないんならForm_Loadに書け
0380デフォルトの名無しさん
2013/02/05(火) 18:32:08.490381デフォルトの名無しさん
2013/02/05(火) 18:32:11.18Form_Loadに書けない事情があったんだろうよ?
Activate使うときはそんな時くらいだろ。
そんなことも推測できないとか
アホ通り越して経験浅杉だろ?
0382デフォルトの名無しさん
2013/02/05(火) 18:32:59.670383デフォルトの名無しさん
2013/02/05(火) 18:33:09.44それこそ何の意味もないような気が汁www
0384デフォルトの名無しさん
2013/02/05(火) 18:34:31.33そんなこともないだろ。再入はどうか知らんが上級者のコードでもActivateを使ったコードはよく見るよ。
0385デフォルトの名無しさん
2013/02/05(火) 19:26:14.82Activateに再入禁止処理書くような奴は上級者じゃねえよ
0386デフォルトの名無しさん
2013/02/05(火) 19:32:06.27ロードってOS上にウィンドウを作成してFormインスタンスとリンクさせる事だろ?
VBは初心者向けと言う事で必要な時に自動でやってくれる
ただそれだけ
全然良く分からなくないよ
0387デフォルトの名無しさん
2013/02/05(火) 19:44:44.24なぜなら、それをする奴は、たいてい既定のインスタンスが
何かをわかってないからだ。
0388デフォルトの名無しさん
2013/02/05(火) 19:59:59.48何をもって上級者と言っているか知らんが、キミは上級者ではなさそうだね。
0389デフォルトの名無しさん
2013/02/05(火) 20:01:26.21かなり違っているがまあ意味は通るから良しと汁。
0390デフォルトの名無しさん
2013/02/05(火) 20:02:53.50いつまで入門者用言語使ってるんだい?せめてC#くらいやれよな
0391デフォルトの名無しさん
2013/02/05(火) 20:13:36.81静的関数が使えればいんだけど、VBだとないじゃん。
インスタンスをグローバルに使いたいときグローバル変数
を用意するしかないじゃん。構造体とか使ってまとめてる?
どうやってる?どうやんの?よくわかんない。
0392デフォルトの名無しさん
2013/02/05(火) 20:17:52.780393デフォルトの名無しさん
2013/02/05(火) 20:17:58.89ファンロードに見えたしにたい
0394デフォルトの名無しさん
2013/02/05(火) 20:30:49.02日本語で(ry
エスパーすると標準モジュールで済むのでは?
0395デフォルトの名無しさん
2013/02/05(火) 20:36:56.340396デフォルトの名無しさん
2013/02/05(火) 20:38:48.58日本語だよ。エスパー能力にたよるんじゃなくて言語能力を駆使してちゃんと読んで。
ちゃんと書いたんだから。ちゃんと読んで。ちゃんと書いたんだから。
0397デフォルトの名無しさん
2013/02/05(火) 20:40:11.650398デフォルトの名無しさん
2013/02/05(火) 20:43:09.57先頭にPrivateと書いて関数を宣言すれば静的関数ですが何か?
0399デフォルトの名無しさん
2013/02/05(火) 20:43:41.12無茶じゃないよ。管理できるよ。どうやってんの?教えてよ。
0400デフォルトの名無しさん
2013/02/05(火) 20:52:46.110401デフォルトの名無しさん
2013/02/05(火) 20:56:12.29わけわかんないこといわないで、イカるよ?
/.⌒ヽ
/ .\
../ ヽ. \
(./ ヽ. )
/ l"
.ノ l
/ \,, ,,/ |
| (●) (●)||| |
| / ̄⌒ ̄ヽ U.|
| | .l~ ̄~ヽ | |
|U ヽ  ̄~ ̄ ノ |
|  ̄ ̄ ̄ |
0402デフォルトの名無しさん
2013/02/05(火) 20:57:29.10まあイカるなこのイカ臭い青二才がよwww
0403デフォルトの名無しさん
2013/02/05(火) 20:58:33.72▄▇▓::▃▃ ▃▃ ▓▇▄
▄█▓░◤ ◥ ◤ ◥ ░▓▇▄
▄█▓░ ◢ ◣ ◢ ◣░▓▇▄
▄█▓░ ▐ █▋▐ ▐ █▋ ▐ ░▓▇▄
▄█▓░: ◥ ◤ ◥ ◤ ░▓▇▄ なぜか無性にコピペしたくなる
█▓░▒ ◤▀▀◥ ▃ ▃ ◤▀▀◥▒:░▓█
█▓░ ::::▒░░::▊ ▲ ▐ :::░░▒::::░▓█ なのに初心者にはコピペできない
█▓░:: ◥▃▃▅██▅▃▃◤ ░▓█
▀█▓░ ███████ ░▓█▀
▀█▓░ ▐▓▓▓▓▓▓▌ ░▓█▀
▀█▓░ ▀▀▀▀▀▀ ░▓█▀
0404デフォルトの名無しさん
2013/02/05(火) 21:28:37.47▄▇▓::▃▃ ▃▃ ▓▇▄
▄█▓░◤ ◥ ◤ ◥ ░▓▇▄
▄█▓░ ◢ ◣ ◢ ◣░▓▇▄
▄█▓░ ▐ █▋▐ ▐ █▋ ▐ ░▓▇▄
▄█▓░: ◥ ◤ ◥ ◤ ░▓▇▄ なぜか無性にコピペしたくなる
█▓░▒ ◤▀▀◥ ▃ ▃ ◤▀▀◥▒:░▓█
█▓░ ::::▒░░::▊ ▲ ▐ :::░░▒::::░▓█ なのに初心者にはコピペできない
█▓░:: ◥▃▃▅██▅▃▃◤ ░▓█
▀█▓░ ███████ ░▓█▀
▀█▓░ ▐▓▓▓▓▓▓▌ ░▓█▀
▀█▓░ ▀▀▀▀▀▀ ░▓█▀
本当だ!
0405デフォルトの名無しさん
2013/02/05(火) 21:29:32.000406デフォルトの名無しさん
2013/02/05(火) 21:39:05.550407デフォルトの名無しさん
2013/02/05(火) 22:27:21.54えっとね、俺は>>394さんじゃないんだけど、
>>394さんの言いたい事はだいたいわかる。
あなたのいう
>インスタンスをグローバルに使いたいとき
って、まあ、オブジェクト指向的に言えば、シングルトンを用意すると
思いますねん。VB6で、お手軽にシングルトン実装したいなら、
標準モジュールという形になりますねん。
まあ俺は、標準モジュールと言えども、そこのフィールドに無制限に
アクセスできないようにPrivateにして、アクセッサ用意するけどね。
0408デフォルトの名無しさん
2013/02/05(火) 22:28:57.240409デフォルトの名無しさん
2013/02/05(火) 22:30:52.38つまり
「うふ〜ん、あは〜ん」
って事だな
0410デフォルトの名無しさん
2013/02/05(火) 22:57:57.43それはわかる。>>391を読んでそういう答えをしたのなら余裕で納得するけど、
日本語として意味がわからないけどエスパーでこうやればいいなんてそんなものは認めない。
俺はたとえ頑固じじいとののしられさげすまれようともそんなことは絶対に認めない。
>>394は俺が書いた文章をちゃんと読んで答えるべきだ。たとえば手塩にかけて育てた可愛い可愛い
娘がちゃらちゃらした彼氏を家に連れてきて、そのちゃら夫から
「娘さんと結婚する意味がよくわからないんだけど娘さんを僕にください」といわれて
もあげないだろ。あげないと即答するだろ。たとえそのちゃら夫が一流企業に勤めていて
イケメンだったとしてもあげないだろ。そのちゃら夫にほれてる娘をすこし可哀想に思う
気持ちはあれど、娘の幸せを思って心を鬼にしてそのちゃら夫を拒否するのが親としての責務だと心得るだろ。
ちゃら夫に我が最愛の娘をあげるわけにはいかないだろ。俺が言ってることわかるだろ。はい論破。
0411デフォルトの名無しさん
2013/02/05(火) 23:11:13.88静的関数といってんだからオブジェクトを作らずにアクセスすることができる
関数に決まってんだろ。お前と>>398のイカ野郎の頭にはぼかしでも
かけられてんのか?お前らの脳みそはわいせつ物みたいなものなのか?はい論破。
0412デフォルトの名無しさん
2013/02/05(火) 23:26:35.28publicにアクセスできるグローバル変数は使わない。
グローバル「 定数 」なら使う。
0413デフォルトの名無しさん
2013/02/05(火) 23:27:59.54決まってるのはお前の頭の世界というローカルなスコープの範囲だけであって
静的関数の解釈は処理系で全く異なるものになる。
井の中の蛙は去れ。はい論破。
0414デフォルトの名無しさん
2013/02/05(火) 23:29:07.190415デフォルトの名無しさん
2013/02/05(火) 23:41:15.480416デフォルトの名無しさん
2013/02/05(火) 23:41:37.85常識で考えればわかるだろ、VBのスレなんだから
VBで考えればおのずと明らかになるだろ。いろんな処理系を語れと
いうスレならまだしもここはVBのスレなんだからVBの処理で
考えるのが常識だろ。カレーの隠し味に何入れる?って話をしてるとき
あたしはアップルかなという話をしてるときに、「アップルってiPhone入れんの?
アップルって言ってもいろいろあるんだから」といってるようなものだろ。
最初にアップルといった人はけして井戸の中のカエルさんじゃないし、
アップルのiPhoneの話をした人はけして高みから広い視野で物事をみることが
できる鳥さんじゃない。ただのマカー。はい論破。
0417デフォルトの名無しさん
2013/02/05(火) 23:45:40.81変数は書き換えられるからね。うん、定数にできないのはプロパティでとかね。そういうことね。はい論破。
0418デフォルトの名無しさん
2013/02/06(水) 00:37:35.66「はい論破」だか何だかしらんけど幼稚臭い奴が多いな。
0419デフォルトの名無しさん
2013/02/06(水) 00:39:13.18VB6で静的関数っつったらStaticなSubかFunctionのことなんだが
一般的な静的関数はインスタンスメソッドじゃないクラスメソッドのこと
そういう意味でもVB6ではStaticが該当する
ただし、VB6では(俺の記憶では)インスタンスなしでクラスメソッド呼べないけどな
0420デフォルトの名無しさん
2013/02/06(水) 00:52:49.98そもそもVB6に静的なプロシージャなんて概念はありません。
.NETにはあるが、メソッドが静的であることを表すキーワードはSharedです。
0421デフォルトの名無しさん
2013/02/06(水) 00:58:52.34お前は俺がStaticの話をしてると思ってレスしてるわけね。よくわかった。解決した。どうもありがと。はい論破。
0422デフォルトの名無しさん
2013/02/06(水) 02:01:33.75じゃあVBでStaticなSubは何と言う概念なんだ?
0423デフォルトの名無しさん
2013/02/06(水) 07:21:20.62そんな臭いがプンプンw
0424デフォルトの名無しさん
2013/02/06(水) 07:40:07.78グローバルな定数にするくらいなら、その定数の値をファイルに書き出すなぁ。
結局グローバル変数使うことになるけど。
定数なんて後で変更したくなることもあるだろうし。
その場合、グローバル変数は初期処理で読み込む以外は参照のみというようにする。
それ以外のグルーバル変数は極力使わないようにするのはもちろんだけど。
0425デフォルトの名無しさん
2013/02/06(水) 08:51:22.91こいつ、仮面の忍者赤影だな?
0426デフォルトの名無しさん
2013/02/06(水) 11:17:57.64お前ら、なんだかんだ言って論破君が好きなんだな。
0427デフォルトの名無しさん
2013/02/06(水) 12:18:05.53そうやってなんでもかんでも釣りと認定してあたかも自分は全部わかってます
みたいな態度とるのってカッコ悪いよ。論破されたときにどうせ釣りだとわかって
たしとブロークンハートをリカバリーしようとしているのが見え見えでカッコ悪いよ。
露出の多い服着てカッコいいアピールしようとしたけど陰部まで透けていて
公然わいせつ罪で御用となるようなもんだよ。はたからみればただの露出狂でしかないよ。
露出狂も自分がカッコいいと思ってる一種の陶酔状態にあるのかもしれないな。
俺の臨床心理士としての直感がそう告げている。はい論破。
0428デフォルトの名無しさん
2013/02/06(水) 12:47:07.190429デフォルトの名無しさん
2013/02/06(水) 14:19:41.27そんなこと一昨日から分かっていたはずでは?
それを承知で構っていたのでは?
0430デフォルトの名無しさん
2013/02/06(水) 14:34:22.19VBのString型って速すぎじゃね。C#やJavaにはString型の
遅さを補うためにStringBuilderクラスが用意されているがVBには
そういうのがない。VBのString型がチートすぎるのがその理由
なんじゃないかと思うんだけどどう思う?大量の文字列を扱うために
専用のクラスとか別に作らないだろ?みんなその辺どう?
0431デフォルトの名無しさん
2013/02/06(水) 14:54:25.13midがあるから必要無い。
この話題終了。
0432デフォルトの名無しさん
2013/02/06(水) 14:59:47.820433デフォルトの名無しさん
2013/02/06(水) 15:10:07.04いやいやそれはおかしいでしょ。それをいったらJavaやC#の
StringクラスにはSubstringがあるからStringBuilderクラスは
必要ないということになるわけだけれどもそれはStringBuilderクラスが
存在することと矛盾するだろ。だからMidがあるから文字列を扱う
クラスが必要がないというお前はまともにものを考えてないかぼちゃ頭の万年ハロウィン野郎。はい論破。
0434デフォルトの名無しさん
2013/02/06(水) 15:27:57.16↓
文字列結合って遅いよね
↓
midを使えば速い
↓
終了
0435デフォルトの名無しさん
2013/02/06(水) 15:31:32.39Midって文字列を結合できるんだーへー。はい論破。
0436デフォルトの名無しさん
2013/02/06(水) 15:36:50.32↓
文字列結合って遅いよね
↓
midを使えば速い
↓
Midって文字列を結合できるんだーへー
↓
ググレカス
↓
終了
0437デフォルトの名無しさん
2013/02/06(水) 15:41:24.35だからお前の考えだとMidで文字列を結合できるんだろ、へー、はい論破。
0438デフォルトの名無しさん
2013/02/06(水) 15:53:33.05できるからググレカス
0439デフォルトの名無しさん
2013/02/06(水) 16:06:07.40http://talent.c.yimg.jp/images/talent/201301/large/w93/w93-0493-130116.jpg
0440デフォルトの名無しさん
2013/02/06(水) 16:45:28.96そんなものはとっくにググったよ。>>434を読んで即座にググった。
そしてすぐにMidで結合する方法を見つけた、秒殺だった。それを見たときに
Midで結合するなんてすげーイカしてんじゃん、なんてこったい万年ハロウィン野郎は
俺のほうじゃねえかという思いが俺の脳内を瞬時に駆け巡ったわけ。
へえという感動詞は感心することをあらわすだろ、俺のへーはそういう万感の思いが
こもったへーだということをお前は俺の立場に立って理解するべきだし、
へーの重みを知ったお前は俺にもっと優しくしろ。はい論破。
0441デフォルトの名無しさん
2013/02/06(水) 17:02:36.030442デフォルトの名無しさん
2013/02/06(水) 17:12:09.82VBでも文字列の結合は遅いからなるべくやるなって言われてた処理だぞ
それでも必要な場合があるからStringBuilderとか作ったわけで
0443デフォルトの名無しさん
2013/02/06(水) 17:15:12.13ググレカス
0444デフォルトの名無しさん
2013/02/06(水) 17:18:00.11文字列を高速に連結する(Midステートメント):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug
http://www.moug.net/tech/exvba/0140045.html
Midはえーわ。ドン引きするようなグラフになってるわ。
0445デフォルトの名無しさん
2013/02/06(水) 17:25:33.520446デフォルトの名無しさん
2013/02/06(水) 17:32:00.2810年前にこんな高度な議論が行われていたわけがないだろ。
現代に生きる俺が話題を提供したわけであり、現代の議論だ。はい論破。
0447デフォルトの名無しさん
2013/02/06(水) 17:59:28.28途中で連結してる文字列使いたいときに等価じゃない
MIDがやってるのは連結(=拡張)じゃなくて書き換えてるだけ
しかし早いな。MID直接メモリの文字列書き換えてるのか
MIDの処理結果で文字列拡張することになったらパフォーマンスでないだろ、これ
0448デフォルトの名無しさん
2013/02/06(水) 18:03:44.36お前は何を言ってるんだ?
0449デフォルトの名無しさん
2013/02/06(水) 18:13:01.80MIDで連結してない。連結回数を少なくしてる
MIDは書き換えてるだけ。書き換えは早い
MIDで連結したら遅い
あってるかどうか知らんがそういう主張だろ
0450デフォルトの名無しさん
2013/02/06(水) 18:15:52.95MIDで連結したら遅いってどういうこった?
0451デフォルトの名無しさん
2013/02/06(水) 18:20:23.740452デフォルトの名無しさん
2013/02/06(水) 18:20:41.060453デフォルトの名無しさん
2013/02/06(水) 18:23:23.29ファイルに書きだしてまとめる、というのも手だけど、
こういうファイルが増えてくると
ソースコード内に記述した方が手っ取り早く参照できる事に気づいた。
0454デフォルトの名無しさん
2013/02/06(水) 18:27:35.58ttp://hanatyan.sakura.ne.jp/patio/read.cgi?no=88
高速文字列連結
ttp://homepage1.nifty.com/MADIA/vb/vb_bbs/200408/200408_04080051.html
0455デフォルトの名無しさん
2013/02/06(水) 18:28:26.14http://support.microsoft.com/kb/170964/ja
0456デフォルトの名無しさん
2013/02/06(水) 18:29:58.77&で文字列結合していくと、すげ遅い事に気づいた。
んで、StringBuilderみたいなの無いかなと思ってぐぐって
ttp://d.hatena.ne.jp/tomorrowkey/20100203/1265200311
これを利用している。
どっか別サイトにも自作StringBuilderクラスがあったが、
中身を見ると&で結合してるだけだったので、そちらは却下。
0457デフォルトの名無しさん
2013/02/06(水) 18:32:19.68> 文字列連結のパフォーマンスを向上させる方法
> support.microsoft.com/kb/170964/ja - キャッシュ2001年1月31日 - キーワード: kbhowto
12年前
0458デフォルトの名無しさん
2013/02/06(水) 18:42:30.86そのテクニックは、正確には文字列連結(拡張)は1度ですませて、Midで中身を書き換えてるだけ
Midで高速に連結する、じゃなくて、Midで高速に連結文字列を作成する、ってのが正しいと思う
Midで拡張は解らんな。できるのか?
a = "文字列"
b = "追加文字列"
Mid(a, 4) = b
見たいな事か。VBAではエラーになってるが
0459デフォルトの名無しさん
2013/02/06(水) 18:48:05.15(; ・`д・´) へーそーなんだ
0460デフォルトの名無しさん
2013/02/06(水) 18:51:07.71>VBのString型って速すぎじゃね。C#やJavaにはString型の
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
正直、バカすぎる。
VB6の文字列も & で連結していくと、超遅い。
VB6のMIDは文字列の置き換えであり、
JavaのStringBuilderクラスも文字列の置き換えである。
MidもStringBuilderもやってる事は同じ。
ちなみにJavaの場合、ソースコードで文字列を + で連結していっても
コンパイルで最適化され、StringBuilderに置き換えられている。
0461デフォルトの名無しさん
2013/02/06(水) 18:57:31.060462デフォルトの名無しさん
2013/02/06(水) 19:07:30.73参照するたびにファイルから読み出そうとするから定数の方が手っ取り早いと思ってるのかな?
起動時に全部読み込んでしまえば参照にかかる時間は大して変わらないと思う。
定数だとファイルから読み込む処理を作る必要がない分一時の楽はできるけど
定数の修正が入るたびにコードの修正が必要だから、コードの手離れがよくない。
ファイルが増えると言ってるけど、ファイルのまとめ方や扱い方をを工夫すれば
そんなに増えるとは思わないけど。
0463デフォルトの名無しさん
2013/02/06(水) 19:15:34.62"a"をStringで10まんこ結合したら
Javaが32秒
C#が10秒
VBAが2秒だったの。この結果から見ればVBのStringが速いって考えてとうぜんでしょ。なにさ、ふん!はい論破。
0464デフォルトの名無しさん
2013/02/06(水) 19:22:23.030465デフォルトの名無しさん
2013/02/06(水) 20:50:53.54テンプレ回答乙
StringBuilderによってメモリ確保の回数が減る→処理が速くなる
でもそれは処理の一部にしか過ぎないだろ?
JAVA/C#はそれ以外の部分が遅すぎる
現実にはVB6のが速い
>>463
最適化は切ったか?
0466デフォルトの名無しさん
2013/02/06(水) 20:57:37.450467デフォルトの名無しさん
2013/02/06(水) 21:23:28.06いまどきVB6の環境もってるやつのほうが少ないだろ
0468デフォルトの名無しさん
2013/02/06(水) 21:40:32.010469デフォルトの名無しさん
2013/02/06(水) 21:41:02.600470デフォルトの名無しさん
2013/02/06(水) 21:50:10.14それは言い訳にできんだろ。
VB6以前のスレなんだし。
0471デフォルトの名無しさん
2013/02/06(水) 22:05:47.32VB6に近いからいいだろ
0472デフォルトの名無しさん
2013/02/06(水) 22:11:11.24VBA インタプリタで実行
0473デフォルトの名無しさん
2013/02/06(水) 22:19:04.97VB6が速いと困るの?
0474デフォルトの名無しさん
2013/02/06(水) 22:20:59.250475デフォルトの名無しさん
2013/02/06(水) 22:21:49.92君はもう寝な
0476デフォルトの名無しさん
2013/02/06(水) 22:35:04.34VBAはインタプリタだとされることもあるけど、純粋なインタプリタと言うにはちょっと問題が
一応メニューにコンパイルあるぞ
>>474
可能性は否定できない
君がVB6とJAVAとC#動く環境あるなら試してみてくれたまえ
0477デフォルトの名無しさん
2013/02/06(水) 22:36:05.33ちょっと違うな。
定数をソースコードに記述、VB6だと
標準モジュール→プロパティもしくは定数を返す関数っていう手があるんだけど、
標準モジュール名 . 定数名
って使う時に記述するから、それがすぐにどこかわかるっしょ。
誤って変数にセットする事もない。
外部のファイルにまとめるのはstrutsの時代に懲りた。
0478デフォルトの名無しさん
2013/02/06(水) 22:40:03.21だから、文字列の連結は
Java では + で、VB6 は & だが
Java → StringBuilderがある
VB6 → MID がある
↓これが間違い。
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
0479デフォルトの名無しさん
2013/02/07(木) 00:01:01.630480デフォルトの名無しさん
2013/02/07(木) 00:14:49.97Mid(C,1,Len(A)) = A
Mid(C,Len(A)+1,Len(B))=B
L=Len(A)
A=A&Space(Len(B))
Mid(A,L+1,Len(B))=B
0481デフォルトの名無しさん
2013/02/07(木) 00:16:55.280482デフォルトの名無しさん
2013/02/07(木) 00:17:46.270483デフォルトの名無しさん
2013/02/07(木) 00:19:52.330484デフォルトの名無しさん
2013/02/07(木) 00:41:33.60何が問題なんだ?ソース読めないのか?
あれは毎回文字結合するんじゃなくて、ccIncrement = 50000文字単位で文字列を拡張することにより
連結回数を減らして高速化する、って例だぞ
文字連結そのものは&でやってる。つかMidで文字連結なんて出来ない
0485デフォルトの名無しさん
2013/02/07(木) 01:00:42.200486デフォルトの名無しさん
2013/02/07(木) 01:13:03.80反則かどうかまずお前のルールを書いてみろ
0487462
2013/02/07(木) 07:25:45.49それはグローバル変数でもできる。
それだけだと手っ取り早いという理由にならない。
グローバル変数だと誤って変数にセットするデメリットと
定数だと定数変更の度にコードを修正するデメリット
どっちを取るかはもちろん設計者の考え方一つ。
個人的には前者のデメリットの方が後々コードの修正はない分手離れいいから前者を採用する。
たとえ定数修正であってもコードに手を加えるということは修正の度にバグの可能性はあるわけで
そのリスクをずっと背負うのは御免だ。
0488デフォルトの名無しさん
2013/02/07(木) 08:57:34.070489デフォルトの名無しさん
2013/02/07(木) 09:12:49.450490デフォルトの名無しさん
2013/02/07(木) 09:15:19.390491デフォルトの名無しさん
2013/02/07(木) 10:25:03.430492デフォルトの名無しさん
2013/02/07(木) 13:50:22.410493デフォルトの名無しさん
2013/02/07(木) 14:03:30.68Class1のTestを見てほしい。Methodに1を渡して
Methodではその値を出力するだけなのに2になっちゃうわけ。
ByRefは潜在的リスクがありまくりなわけ。
だからVBでは基本的にByValを記述するべきなわけ。
Class Class1
Private Field As Integer
Public Sub Test()
Field = 1
Call Method(Field)
End Sub
Private Sub Method(value As Integer)
Field = 2
Debug.Print value
End Sub
End Class
0494デフォルトの名無しさん
2013/02/07(木) 14:14:01.020495デフォルトの名無しさん
2013/02/07(木) 14:19:41.14おいやめろ、まるで俺が不必要なことをしている無能みたいじゃないか。
フィールドを引数にしたいときもあるだろ?
そ・う・い・う・と・き・も・あ・る・だ・ろ。はい論破。
0496デフォルトの名無しさん
2013/02/07(木) 14:27:53.420497デフォルトの名無しさん
2013/02/07(木) 14:44:23.010498デフォルトの名無しさん
2013/02/07(木) 14:54:19.57釣る気は1ミリもないけど、>>493には賛同するだろ。納得するほかないだろ。
じゃあそれを正直に書き込めばいいだろ。さすが論破さんだな正論すぎるとそう
書き込めばいいだろ。はい論破。
0499デフォルトの名無しさん
2013/02/07(木) 15:19:04.52VB6のコードじゃないね。
0500デフォルトの名無しさん
2013/02/07(木) 15:23:38.97どこが?はい論破。
0501デフォルトの名無しさん
2013/02/07(木) 15:26:27.07お前もいい加減うざいわ
0502デフォルトの名無しさん
2013/02/07(木) 17:31:07.060503デフォルトの名無しさん
2013/02/07(木) 17:44:56.370504デフォルトの名無しさん
2013/02/07(木) 17:45:41.11それぞれのリスクとメリットを評価しないと正確な判断ではない
まあ、論破君には理論が通じないから言っても無駄なんだろうけど
0505デフォルトの名無しさん
2013/02/07(木) 17:46:19.580506デフォルトの名無しさん
2013/02/07(木) 17:50:42.770507デフォルトの名無しさん
2013/02/07(木) 17:52:04.660508デフォルトの名無しさん
2013/02/07(木) 17:53:09.56ウツミみどりを知っていたら50代
0509デフォルトの名無しさん
2013/02/07(木) 17:53:11.08論破君には理論が通じない……論理破綻、略して論破、か。
0510デフォルトの名無しさん
2013/02/07(木) 17:54:03.83じゃあお前はどう思ってるわけ?>>493についてどう思ってるわけ?
俺はByRefにするなといってるんじゃなくてByValが基本だといってる
わけであり、たとえByRefを使うことにメリットがあろうと俺はそれを
吸収することができる。いうなれば魔人ブウ。自分の意見さえ述べることができないお前は
俺と同じリングに立つことさえできないミスターサタン。ビーデルの父親であることだけが取り柄のハゲ。はい論破。
0511デフォルトの名無しさん
2013/02/07(木) 17:59:21.45ミスターサタン
ビーデルの父親
論破童貞君のプロファイリング完了しますた
0512デフォルトの名無しさん
2013/02/07(木) 17:59:48.88俺はピラフかな。あの声がかっこいい。
0513デフォルトの名無しさん
2013/02/07(木) 18:02:30.870514デフォルトの名無しさん
2013/02/07(木) 18:10:24.15ByRefにしなければならないときのみ、ByRefにする。
0515デフォルトの名無しさん
2013/02/07(木) 18:10:56.370516デフォルトの名無しさん
2013/02/07(木) 18:13:20.360517デフォルトの名無しさん
2013/02/07(木) 18:13:50.96VB.NET登場以降は、VB6でもByVal/ByRefを省略しないのが推奨。
0518デフォルトの名無しさん
2013/02/07(木) 18:14:05.650519デフォルトの名無しさん
2013/02/07(木) 18:15:15.23きたー正直者きたー。ですよねーですよねーそうですよねー。
やっと良心を持ったまともな人間にめぐり合えた気分だわ。
>>515
その不埒さ度し難いわ。ふとどきものというのはお前のために
ある言葉だと思うわ。>>493のような問題があるんだよ。大変なんだよ。はい論破。
0520デフォルトの名無しさん
2013/02/07(木) 18:17:30.090521デフォルトの名無しさん
2013/02/07(木) 18:18:57.390522デフォルトの名無しさん
2013/02/07(木) 18:31:54.440523デフォルトの名無しさん
2013/02/07(木) 18:33:39.47お前ら似たような文章書きやがってさすがの俺もピキるよ。
お前らだって俺を怒らせたくないだろ。>>493の設計はけして間違ってない。
フィールドを渡したいときもある。ByValを書かないというルーズさを
発揮しなければ>>493のコードは全然問題ないわけよ。ByVal付けるだけで
問題なくなるわけよ。じゃあByValを省略する習慣が悪いんであって設計は
悪くないということになるよね。な・る・よ・ね。はい論破。
0524デフォルトの名無しさん
2013/02/07(木) 18:34:33.31設計・仕様でbyvalが必要なところでわざわざ省略するの?
0525デフォルトの名無しさん
2013/02/07(木) 18:37:27.240526デフォルトの名無しさん
2013/02/07(木) 18:38:39.690527デフォルトの名無しさん
2013/02/07(木) 18:41:38.310528デフォルトの名無しさん
2013/02/07(木) 18:44:56.04ByValを書くのがちょーめんどくさいという理由でByValを記述しないという
行動が生活の中で日常的に見られることをByValを省略する習慣と呼ぶことにすると、
ちょーめんどくさいという理由でByValを省略しているわけであるから、それによって
影響を受ける範囲を予測することは難しいわけであり、わざわざというよりは
そう書いたほうが手っ取り早いと思ったという精神活動が予想されるわけ。
お前がそういうやつだって言ってんじゃないよ。そういう人もいるだろうから
>>493はプログラムの教科書の1ページに載せられてもいいものだろ。はい論破。
0529デフォルトの名無しさん
2013/02/07(木) 18:45:27.250530デフォルトの名無しさん
2013/02/07(木) 18:46:16.070531デフォルトの名無しさん
2013/02/07(木) 18:48:46.87設計・仕様を全く理解してないか、デバグ経験が無いか、
0532デフォルトの名無しさん
2013/02/07(木) 18:49:24.70Class Class1
空行
略
空行
End Class
0533デフォルトの名無しさん
2013/02/07(木) 18:51:17.51可読性の問題なら社内規定などルールがあればそれに従えばよい
0534デフォルトの名無しさん
2013/02/07(木) 18:51:43.07お前は「記述する習慣がないこと」と「省略する習慣」とは
意味が違うというわけ?水が沸くこととお湯が沸くことは違うんだ
といっているようなものだ。同じだ。水を沸かしたらぺヤング食べれ
ないけどお湯を沸かしたらぺヤング食べれるとかないだろ。同じものだ。
どっちもぺヤング食べれる。はいインスタント論破。
0535デフォルトの名無しさん
2013/02/07(木) 18:53:35.36違うだろ
水とお湯が同義なのか?おまえん中では
0536デフォルトの名無しさん
2013/02/07(木) 18:54:23.25ぺヤングの由来も知らんくせにぺヤング連呼すんなこのともさん説破。はい論破。
0537デフォルトの名無しさん
2013/02/07(木) 18:55:24.68>水が沸く
は誤りです
「沸く」という動詞の使い方の誤りです
0538デフォルトの名無しさん
2013/02/07(木) 18:56:46.62>「記述する習慣がないこと」と「省略する習慣」とは意味が違うというわけ?
おまえ論理的思考大丈夫?
0539デフォルトの名無しさん
2013/02/07(木) 18:58:48.42だ〜か〜ら〜そんなわからずやなこと言ってたらさすがの
俺も怒るよ。怒らせたくないだろ?必要か必要でないかと
わかる状況であれば省略しないのはそれはそうだろ。省略しては
いけないところでは省略してはいけないといってるだけで
同語反復でしかないだろそんなものは。設計とかそういう問題じゃない。
基本的にはByValを記述するっていう方向で考えるようにしておけば、
プログラミング超はかどるだろ。はい論破。
0540デフォルトの名無しさん
2013/02/07(木) 18:59:21.72いや、日本語的に間違ってないよ
「水が沸く」は水が泡立ってる様子を指す、泡立っている原因については何でもいいから沸騰である必要もない
0541デフォルトの名無しさん
2013/02/07(木) 18:59:57.49正しい。
Class〜End Classを書いてドヤ顔してる奴、それを指摘しないで釣られてる奴
はいい加減死ぬまでロムってろください。
0542デフォルトの名無しさん
2013/02/07(木) 19:00:36.34ボイルシャールの法則を知っていれば気圧でお湯にでも水にでもなるって事知らないの?はい論破。
0543デフォルトの名無しさん
2013/02/07(木) 19:00:46.49これはこの前提条件満たした人間しかいない場で考える話では
この条件満たしてない奴がいる場で前提として語るのはおかしい
0544デフォルトの名無しさん
2013/02/07(木) 19:01:30.14どう誤ってんのか言える?え?言えないの?じゃあお前の頭が誤ってる。はい論破。
>>538
お前がな。はい論破。
0545デフォルトの名無しさん
2013/02/07(木) 19:02:26.55実効効率を考えてByRefをデフォにするくらいならOLEなんて使うなといいたい。
0546デフォルトの名無しさん
2013/02/07(木) 19:03:37.72この前提条件てどの前提条件?よくわかんなかった。
何を前提として何を語るのがおかしいの?ちゃんと書いて。はい論破。
0547デフォルトの名無しさん
2013/02/07(木) 19:05:18.980548デフォルトの名無しさん
2013/02/07(木) 19:06:00.790549デフォルトの名無しさん
2013/02/07(木) 19:06:27.56それは「沸騰」の話だな
「お湯」には「熱い」という条件があるから沸騰の条件は必要ないが「熱い」がどの程度の温度を指すのかは規定されてない、人が触って暖かく感じれば「お湯」なのだろう
「水」は温度に条件はない、一般用語としては「お湯」も含めて液体の状態のH2Oを指すが、科学的な話をするなら氷も水蒸気も水(H2O)だよ
0550デフォルトの名無しさん
2013/02/07(木) 19:09:00.26「水」は温度に条件はないというのなら、水が沸くを正当化する事になるぞ?
ちょっと旦那さん、しっかりしろよな。
0551デフォルトの名無しさん
2013/02/07(木) 19:09:46.00お湯が沸く ・・・ いかな原因で沸騰・泡立ちしていようとお湯であることに変わりはない
0552デフォルトの名無しさん
2013/02/07(木) 19:11:45.53「水が沸く」は日本語として間違ってはいないが
「水が沸く」=「お湯が沸く」の時もあれば「水が沸く」≠「お湯が沸く」のときもある
こんな単純な表現だけでは同義とするのは無理がある
0553デフォルトの名無しさん
2013/02/07(木) 19:14:28.54問題の論点を理解してない
何の言語で記述されてるかという問題ではないのだよ
(それが旧VBのコードでないことくらい見りゃ誰だってわかるっしょ)
0554デフォルトの名無しさん
2013/02/07(木) 19:15:51.200555デフォルトの名無しさん
2013/02/07(木) 19:17:26.45どこにフォーカスするかの違いでしかない。
水が沸くもお湯が沸くもどっちも正しい日本語だ。
今月一番のバカは>>237に決定な。はい論破。
0556デフォルトの名無しさん
2013/02/07(木) 19:17:55.37本当に論破出来てるかどうかは置いといて、論破行為して何が楽しいのか、
0557デフォルトの名無しさん
2013/02/07(木) 19:21:08.37アンカーミスった。>>237さん誠に申し訳ございませんでした。
今回このような不祥事をしでかしたことはわたくしの不徳の
いたすところでございます。こんごこのようなことがないよう
注意してまいりたいと思います。このたびはご迷惑をおかけして
まことに申し訳ございませんでした。はい論破。
0558デフォルトの名無しさん
2013/02/07(木) 19:21:18.26音が聞こえると耳が聞こえるは意味が違うだろw
前者は事象を感じ取ったという意味だが後者は耳の能力の話だろw
0559デフォルトの名無しさん
2013/02/07(木) 19:22:14.51グローバル変数を定数として扱うところでもう問題があるんよ。
設計者がそのソフトを一生面倒見るならまだしろ、
どうせいつかは引き継ぐ。
引き継いだ後に、はっきりと「 定数 」である事がわかる方がいいんでないか?
VB6でなければ、コンストラクタでファイルから読み込んだ値をセットして、
後は読み出ししかできないようにできるが、VB6はそれができない。
0560デフォルトの名無しさん
2013/02/07(木) 19:24:01.01だから音を聞くことができることによって耳の能力を認識することができるんだろ。
だから耳に焦点をあてているのか音に焦点をあてているのかの違いでしかない。
水が沸くというのは水が温まる過程に焦点をあてているのだから
お水さんが主役だが、お湯が沸くといったときは温まったときの状態に焦点を
当てているわけでありお湯さんが主役というそういう違いでしかない。まったく
同じことをあらわしている。はい論破。
0561デフォルトの名無しさん
2013/02/07(木) 19:25:04.85だから、文字列の連結は
Java では + で、VB6 は & だが
Java → StringBuilderがある
VB6 → MID がある
↓これが間違い。
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
0562デフォルトの名無しさん
2013/02/07(木) 19:30:53.39スレタイも読めないのかクソが!
問題の論点以前の話w
0563デフォルトの名無しさん
2013/02/07(木) 19:31:10.61>>http://toro.2ch.net/test/read.cgi/tech/1359721249/542
>ボイルシャールの法則を知っていれば気圧でお湯にでも水にでもなるって事知らないの?はい論破
気圧で変化するのは沸点。
「 お湯にでも水にでもなる 」←文脈上、お湯と水を比較しているが、これは化学的な用語でない。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/430
>C#やJavaにはString型の
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
あります。MIDステートメント。
0564デフォルトの名無しさん
2013/02/07(木) 19:32:41.12耳の能力を問うために音を聞かせるいう前提のもとで
その回答としての「音が聞こえる」と「耳が聞こえる」は耳の能力の有無を知る上では同じ結果を得られるけど
意味としては同義ではないだろ
0565デフォルトの名無しさん
2013/02/07(木) 19:33:15.99実生活ではちっとも評価されないのが納得いかんのやろ
人格崩壊の危機というべき
0566デフォルトの名無しさん
2013/02/07(木) 19:36:10.07クラスモジュールで管理しちゃいけないのかな?
0567デフォルトの名無しさん
2013/02/07(木) 19:36:57.36>>562
問題の焦点はそこじゃなくByVal,ByRefの話だからね
VB.NETでも旧VBでも引数の書式が変わらないなら問題は無いだろう
実際に使ってる自分のコードで質問に来たのなら誘導すべき対象にはなるだろうが
0568デフォルトの名無しさん
2013/02/07(木) 19:39:33.41お前スレタイ読んでその認識というのはやばいんじゃねえの。
Ver6.0までと書いてあるだろ。までということはVer6.0に限定されないってことだ。まずこれが一点目。
VB6.0でそのとおりに書けば動きますっていって載せてるわけじゃねんだから、ああ説明のために
親切丁寧な論破さんがわかりやすく記述してくださったのか、ありがたやありがたやと俺を拝め。これが二点目。はい論破。
0569デフォルトの名無しさん
2013/02/07(木) 19:42:44.68C言語で分からないとこがあるから〜とかVB.NETで分からないとこがあるから〜とかそゆのはスレチだが
0570デフォルトの名無しさん
2013/02/07(木) 19:43:37.06どこのスレでもウザイ「論破」という単語をNGワードに入れることに決意した
0571デフォルトの名無しさん
2013/02/07(木) 19:44:09.75であるのなら、そもそもClassを使っているのが間違い。
そういったことも含めて誘導すべき対象だろ。
0572デフォルトの名無しさん
2013/02/07(木) 19:44:34.45Midで文字列は連結できません
0573デフォルトの名無しさん
2013/02/07(木) 19:46:24.44「耳が聞こえる」は、音の発生の有無に関係なく、耳の能力を語る言葉だろ
0574デフォルトの名無しさん
2013/02/07(木) 19:46:46.51同じだろ。たとえば夏の夜空に花火が打ち上げられて人々に
感動を与えたとして、それをすごくファンタジーでしたという
やつもいれば、爆薬の飛散するさまがすごくリアルでしたというやつ
もいるだろ。見るやつが変われば言い方も変わるが花火が打ち上げられた
ということに変わりはないだろ。そりゃひとりひとりが言ってることの意味は
違うだろうが事実は一つだろ。花火が打ち上げられたんだ。だから音が聞こえることも
耳が聞こえることもまったく同じことだ。はい論破。
0575デフォルトの名無しさん
2013/02/07(木) 19:47:52.03じゃあ指摘して
わざわざあのコードを旧VB用に直して再度レスし直せってことなの?
そんなことする意味あんの?
0576デフォルトの名無しさん
2013/02/07(木) 19:48:56.190577デフォルトの名無しさん
2013/02/07(木) 19:49:11.83クラスモジュールでpublic const の定数にしても良いが、
シングルトン実装すんなら、標準モジュールで良いだろう。
標準モジュールのpublic const で良い。
横から入ってきてるから、流れわかってないっしょ。
0578デフォルトの名無しさん
2013/02/07(木) 19:50:31.61そもそもあのクソコードにマジレスしてることがアレなんだけどw
ああいうクソコードは一刀両断で十分だろ。
0579デフォルトの名無しさん
2013/02/07(木) 19:51:56.61どこがクソコードなわけ?え?いえないの?じゃあお前がクソだな。はい論破。
0580デフォルトの名無しさん
2013/02/07(木) 19:55:01.96>ボイルシャールの法則を知っていれば気圧でお湯にでも水にでもなるって事知らないの?はい論破
気圧で変化するのは沸点。
「 お湯にでも水にでもなる 」←文脈上、お湯と水を比較しているが、これは化学的な用語でない。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/430
>C#やJavaにはString型の
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
あります。MIDステートメント。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/555
>音が聞こえることを耳が聞こえるというのと同じことで
前者は、聴覚刺激の入力表現であり、後者は聴覚能力の表現です。
ソフト屋らしく、NOT表現すると「耳が聞こえない」→聴覚能力です。
0581デフォルトの名無しさん
2013/02/07(木) 20:08:41.30VB6・・・バイト配列
0582デフォルトの名無しさん
2013/02/07(木) 20:16:23.55手元のコードいくつか眺めてみたけど俺は入れてないわ。
0583デフォルトの名無しさん
2013/02/07(木) 21:12:09.66>VB以外でメソッドの引数がデフォで参照になってる奴ってあんの?
メソッドだと記憶にない。
関数/手続きなら、fortran 等の昔の言語は大抵参照 (実装が違うことがあるけど) 型だね。
0584デフォルトの名無しさん
2013/02/07(木) 21:57:26.490585デフォルトの名無しさん
2013/02/08(金) 09:34:08.140586デフォルトの名無しさん
2013/02/08(金) 10:48:36.09いやに「定数」に拘ってるけど、設定項目って「定数」じゃないでしょ。
君が作るアプリケーションには、設定ダイアログが一切ないの?
0587デフォルトの名無しさん
2013/02/08(金) 12:25:24.19ByRefは省略可だが、関数内で値を書換えるとき明示的に書く、
って俺ルールにしてる。
0588デフォルトの名無しさん
2013/02/08(金) 14:04:18.24ByRefが必要なとき以外は全てByVal、って決めといた方がいいよ。
引数コピーが発生して、そのオーバーヘッドが問題になることなんて極々わずかだから。
本当に問題になったときに初めてByRefで渡せばいいよ。
0589デフォルトの名無しさん
2013/02/08(金) 15:37:33.78言語じゃないと考えると、構造体や文字列は、
アドレス渡したくなるなぁ。
0590デフォルトの名無しさん
2013/02/08(金) 16:25:41.820591デフォルトの名無しさん
2013/02/08(金) 16:38:34.070592デフォルトの名無しさん
2013/02/09(土) 07:18:12.76FORTRANはグローバルもローカルもあるぞ。
0593デフォルトの名無しさん
2013/02/09(土) 07:47:22.62気になってたんだが、objCloseable って、
こういうプリフィクスつける人まだいるの?
Long型なら lHoge とか。
まあVB6なら仕方のない部分も無くもないんだが(IDEが未成熟すぎるから)。
あと、こういう風に関数に区切ってしまうと、
catchしてthrowみたいなのも表現できないし、
可読性も悪いと思う。
try catch finally は一つのメソッド内に置いて、
catchやfinally内の処理を別関数に投げるというならアリだと思うが。
0594デフォルトの名無しさん
2013/02/09(土) 07:57:21.910595デフォルトの名無しさん
2013/02/09(土) 08:59:18.810596デフォルトの名無しさん
2013/02/09(土) 12:47:08.51Windows BlueでCOMが死んだら消滅する言語なのにな。
0597デフォルトの名無しさん
2013/02/09(土) 12:56:54.29c# 25707 90
vb 13338 465
vba 13478 265
aを30まん回結合した結果
StringBuilderかMIDで1000まん回結合した結果
ほらVB速いじゃん!
でもStringBuilderは見直した
0598デフォルトの名無しさん
2013/02/09(土) 14:15:51.03戻り値でエラーを返せば余裕だろ。
1つの関数が1つの役割をはたすという構造化プログラミングの王道を行くものであるから可読性は良い。
あーここはFinallyしてるんだーなー、あーここはCatchしてるんだーなーというのが即座にわかるだろ。はい論破。
0599デフォルトの名無しさん
2013/02/09(土) 16:23:12.080600デフォルトの名無しさん
2013/02/09(土) 16:27:35.94かかってこいよ
お前の疑問に答えて論破してやっから
0601デフォルトの名無しさん
2013/02/09(土) 16:33:21.060602デフォルトの名無しさん
2013/02/09(土) 16:41:36.80俺のほうが先に論破してやる。
お前は馬鹿。はい論破
0603デフォルトの名無しさん
2013/02/09(土) 16:45:24.950604デフォルトの名無しさん
2013/02/09(土) 16:55:56.130605デフォルトの名無しさん
2013/02/09(土) 18:28:33.310606デフォルトの名無しさん
2013/02/09(土) 18:31:29.150607デフォルトの名無しさん
2013/02/10(日) 00:52:58.62ワイルドだろ〜?
/ ̄ ̄ ̄\_
/__ ___/__ ヽ
/ / )ノ ヽヽ
| | ー ー | |
( V =・ヽ /・= V )
ヽ ノ ノ
| ヽ_ノ |
ヽ  ̄ ̄` ノ
\ /
__/\___/ヽ_
/ヽ⌒\ /⌒ /\
( |__У___| )
.\ | |__| |o|__| | /
0608デフォルトの名無しさん
2013/02/10(日) 13:03:23.46セックス動画をアップしたいのさ
0609デフォルトの名無しさん
2013/02/10(日) 13:41:37.84Dim strDate1 as String
Dim strDate2 as String
strDate1 = "2013/1/1"
strDate2 = "2013/1/2"
if strDate1 < strDate2 then
なんて出来たっけ?
COMの中の人が
1:文字列の日付をバリアントのDateに代えて、
2:演算子< にあわせてバリアントのdouble に代えて
3:if分の条件判定をしてる
の?
0610デフォルトの名無しさん
2013/02/10(日) 13:43:41.07それだと単なる文字列比較じゃないの?
0611デフォルトの名無しさん
2013/02/10(日) 15:17:35.00月日を2桁にしとけば問題はないよ
0612デフォルトの名無しさん
2013/02/10(日) 17:39:06.82何で日付なのにDate型にしないんだ?
0613デフォルトの名無しさん
2013/02/10(日) 21:32:01.76strDate1 = "2013/1/1"
strDate2 = "2013/1/2"
この代入をすると
あーら不思議
0614デフォルトの名無しさん
2013/02/10(日) 23:03:39.920615デフォルトの名無しさん
2013/02/10(日) 23:14:06.880616デフォルトの名無しさん
2013/02/10(日) 23:24:37.830617デフォルトの名無しさん
2013/02/10(日) 23:31:53.97dtDate1
datDate1
dateDate1
さあどーれだ
0618デフォルトの名無しさん
2013/02/11(月) 00:03:29.29かな。
プリフィックスだから短い方が良いけど、さすがに一文字じゃ被るから。
0619デフォルトの名無しさん
2013/02/11(月) 00:08:01.120620デフォルトの名無しさん
2013/02/11(月) 00:30:18.62試してみればいいじゃん。
ものの数分で答えが出るでしょ。
0621デフォルトの名無しさん
2013/02/11(月) 00:36:56.95↓
Date型で名前Dateとかバカじゃん
↓
dt1 ←シンプルでタイプしやすいし超便利!
0622デフォルトの名無しさん
2013/02/11(月) 01:25:21.00strDate1 → strOnakinKaishiDate
strDate2 → strOnaniiShichattaDate
とか
0623デフォルトの名無しさん
2013/02/11(月) 01:41:24.680624デフォルトの名無しさん
2013/02/11(月) 04:34:50.49さすがに今のサイトはVB6の情報なくなってるのか見つけられん
VBScriptのやつならあったから、それによると日付はdtmらしい
http://msdn.microsoft.com/ja-jp/library/cc392255.aspx
dtmって付けたことないわ
0625デフォルトの名無しさん
2013/02/11(月) 08:44:02.48既にマイクロソフトはVBのハンガリアン記法を勧めなくなったからじゃないかな。
ググると一般的と思われるのが出てくるね。
基本的にはコーディング規約に従うのが一番だけど、無い場合は一般的に
通用しそうなものを選択すればいいんじゃないかな?
http://www.eonet.ne.jp/~aki/vec/vb/vbpre.htm
http://hanatyan.sakura.ne.jp/vbhlp/hensu.htm
マイクロソフトはデータ型のプレフィクスは推奨してないようだけど
コントロール、オブジェクトのプレフィクスは参考としてあるようだ。
http://support.microsoft.com/kb/173738/ja
0626デフォルトの名無しさん
2013/02/11(月) 09:45:03.27判りやすい名前を付けようよ...
0627デフォルトの名無しさん
2013/02/11(月) 11:19:25.41誰もそんなことに反対してないけど?
ただ、長い名前が必ずしも判りやすいわけじゃないが。
0628デフォルトの名無しさん
2013/02/11(月) 11:33:06.45>>621が判りやすいように見えるか?
>>622なら...うーんギリギリ合格...ほぼ不合格だけどな...
0629デフォルトの名無しさん
2013/02/11(月) 11:47:33.23「短い名前がわかりやすい」が真じゃないんだが…
プログラマーならこれぐらいの論理が理解できないと辛いと思うんだが…
0630デフォルトの名無しさん
2013/02/11(月) 13:32:59.36名詞だからそれが一般的だと思うんだけど
KaisiとSichataを後に持ってくればインテリセンスと相性良くなるからどうしたものかねぇ
0631デフォルトの名無しさん
2013/02/11(月) 14:35:52.27Onakinってクラスを作って、そのプロパティとして、StartDate、FailedDateを持ってればいいんでない?
Set Ore = New Onakin
Ore.StartDate = "2013/02/01"
Ore.FailedDate = "2013/02/10"
見たいなぁ...
0632デフォルトの名無しさん
2013/02/11(月) 14:51:43.520633デフォルトの名無しさん
2013/02/11(月) 15:17:47.66RangeDateクラスを作ればいい
0634デフォルトの名無しさん
2013/02/11(月) 16:03:10.86文脈上、一つに纏めるべき物は纏めた方が良いと思うよ
そのクラスが、単純な構造体なのか、複雑なオブジェクトなのかは、取りあえず別の棚に置いておいた方が幸せになれる
0635デフォルトの名無しさん
2013/02/11(月) 17:11:22.940636デフォルトの名無しさん
2013/02/11(月) 17:19:44.76日本語と英語を混ぜるなあああああああああああ
0637デフォルトの名無しさん
2013/02/11(月) 17:29:26.25Classなんてないのだが何か?
0638デフォルトの名無しさん
2013/02/11(月) 17:30:34.58Typeで作ったって、どうせメソッド付けたくなるんだから、クラスモジュールで作った方が幸せ
0639デフォルトの名無しさん
2013/02/11(月) 17:33:35.90複数日付が出てから考えろ
0640デフォルトの名無しさん
2013/02/11(月) 17:47:15.55Dim Class As Integer
Class = 100
0641デフォルトの名無しさん
2013/02/11(月) 17:48:44.04Form = 100
0642デフォルトの名無しさん
2013/02/11(月) 17:52:34.60>・名前の先頭文字には、数字および記号は使えません。
>・名前には、ピリオド (.) や型宣言文字 (データ型を指定する特殊文字) は使えません。
>・プロジェクト名およびクラス モジュール名には日本語文字は使えません。
>・変数、定数、およびプロシージャの名前は 255 文字以内 (半角の場合) にします。
> コントロール、フォーム モジュール、クラス モジュール、および標準モジュールの名前は 40 文字以内 (半角の場合) で設定します。
>・予約キーワードと同じ名前は使えません。
但し!
>フォームやコントロールを作成するときには、予約キーワードと同じ名前を付けることができます。
>予約キーワードと同じ名前を持つフォームやコントロールを参照するには、名前の前に修飾子を付けるか、または角かっこ ([ ]) で囲む必要があります。
>Loop.Visible = True ' エラーが発生します。
>次のコードではエラーは発生しません。
>MyForm.Loop.Visible = True ' 名前の前にフォーム名を付けます。
>[Loop].Visible = True ' 角かっこを付けます。
0643デフォルトの名無しさん
2013/02/11(月) 17:59:33.44エスケープ識別子はVB6にはありませんよ。
しかし、コピペマンって例外なく馬鹿だな本当
0644デフォルトの名無しさん
2013/02/11(月) 18:02:14.280645デフォルトの名無しさん
2013/02/11(月) 18:02:15.28変数に型のないVBScriptだと、intとかstrとかのプレフィックスを付ける
ハンガリアン記法も意味があるね。
0646デフォルトの名無しさん
2013/02/11(月) 18:03:43.15VB6付属のMSDNからのコピペなのにVB6に搭載されてないとな?つまり付属MSDNはうそつきってことだな
0647デフォルトの名無しさん
2013/02/11(月) 18:09:34.58新規プロジェクトにフォームモジュールを追加して
Form2という名前をLoopに
Form1のForm_Loadに
[Loop].Show
を書く
実行できる
0648デフォルトの名無しさん
2013/02/11(月) 18:11:10.530649デフォルトの名無しさん
2013/02/11(月) 18:14:50.77すまん、勘違いしてるのは俺の方だったw
VB6の時代から予約語をエスケープする機能ってあったんだな。
0650デフォルトの名無しさん
2013/02/11(月) 18:18:05.82その程度の謝罪で許すとでも思ってるわけ?
全くお花畑だな
0651デフォルトの名無しさん
2013/02/11(月) 18:20:17.480652デフォルトの名無しさん
2013/02/11(月) 18:44:30.34ハンガリアンで補完を起動させて日本語込みの変数を入力するのがすき。VB6とかExcelVBAならね
妙なローマ字英語変数よりは日本語変数のほうがましだろ?
0653デフォルトの名無しさん
2013/02/11(月) 18:45:33.750654デフォルトの名無しさん
2013/02/11(月) 18:50:57.64入力が面倒
0655デフォルトの名無しさん
2013/02/11(月) 19:20:26.08戻り値でエラー返すのか?
Err.raise しないのか?
0656デフォルトの名無しさん
2013/02/11(月) 19:21:15.300657デフォルトの名無しさん
2013/02/11(月) 19:28:35.30ついでに言うと、構造化は関心の分離の一手法。
OOPでやるならErr.Raise だと思うが。
さらに言えば
Try 〜 Catch 〜 Finally のそれぞれを別関数にしてしまう
ってのは、構造化する部分を間違ってると思うぞ。
try{
//処理
}catch{
//やるなら、このcatch節の中を別関数に
}finally{
//やるならこのfinally節の中を別関数に
}
0658デフォルトの名無しさん
2013/02/11(月) 19:33:22.75マイクロソフトがもう随分前にシステムハンガリアンを
推奨しなくなった。
ある時、Integer型をLong型に変更というので、単にローカル変数かと
思ってたら、それを途中で別関数の引数で渡してたりが延々と続いてて
変更範囲がかなりの量になった。
変数名にプリフィクス使ってたから、変数名も全部変更になった。
これが世に言うシステムハンガリアンの弊害というのを思い知らされた。
0659デフォルトの名無しさん
2013/02/11(月) 19:37:27.66そうよね。日本語変数使ったりするといちいちIME切り替えたり、
新人が全角スペース入れてるとか。
0660デフォルトの名無しさん
2013/02/11(月) 19:38:55.310661デフォルトの名無しさん
2013/02/11(月) 19:46:25.49Err.Raise vbObjectError + 1001
End Sub
Private Sub Command1_Click()
On Error GoTo myerror
Call Hoge
Exit Sub
myerror:
Dim e
e = Err.Number - vbObjectError
MsgBox "Errorだよ" & e
End Sub
0662デフォルトの名無しさん
2013/02/11(月) 19:48:45.33Public Sub Hoge()
Err.Raise vbObjectError + 1001
End Sub
'Form1.frm
Private Sub Command1_Click()
On Error GoTo myerror
Dim c As New Class1
Call c.Hoge
Exit Sub
myerror:
Dim e
e = Err.Number - vbObjectError
MsgBox "Errorだよ" & e
End Sub
0663デフォルトの名無しさん
2013/02/11(月) 19:50:45.57>>662はHoge内でエラーストップしてしまう
0664デフォルトの名無しさん
2013/02/11(月) 19:51:17.820665デフォルトの名無しさん
2013/02/11(月) 19:55:07.410666デフォルトの名無しさん
2013/02/11(月) 20:21:40.62exe作って実行したら補足できてないですか?
0667デフォルトの名無しさん
2013/02/11(月) 20:34:52.930668デフォルトの名無しさん
2013/02/11(月) 20:50:14.180669デフォルトの名無しさん
2013/02/11(月) 21:02:18.340670デフォルトの名無しさん
2013/02/11(月) 21:27:23.37飽きれるわ
0671デフォルトの名無しさん
2013/02/11(月) 21:53:07.14まあ方法的には参照渡しした引数に格納するとかも。
でもVB6ならErr.raise。
そうそう、引数のByRefだが、俺は基本的に引数の中身を変えて
しまうとかしないので、大半はByRefだろうがByValだろうが構わない。
でも確かに、稀に引数の中身を変えてしまう事もある。
で、コメントで明示してはいるんだが、
そういう時だけByRef使うっていうレスもあったので、そこはなるほどなと思った。
コメントに加え、コードでもプログラマの意図を表現できるのは良い。
0672デフォルトの名無しさん
2013/02/11(月) 21:58:14.83Dim c
c = a: a = b: b = c
End Sub
0673デフォルトの名無しさん
2013/02/11(月) 22:00:56.810674デフォルトの名無しさん
2013/02/11(月) 22:03:24.390675デフォルトの名無しさん
2013/02/11(月) 22:03:58.53プロパティを定義するとき
Setとカラム位置を合わせたいとき
0676デフォルトの名無しさん
2013/02/11(月) 22:06:02.670677デフォルトの名無しさん
2013/02/11(月) 22:08:17.51�d
揃えたいとき、可読性を上げるために使うのか
0678デフォルトの名無しさん
2013/02/11(月) 22:11:20.17そういう時にa と b にByRefをあえて付けるんだよ。
0679デフォルトの名無しさん
2013/02/11(月) 22:14:52.110680デフォルトの名無しさん
2013/02/11(月) 22:16:08.10aとbが互いに異なる変数だったりオブジェクトだったりした場合エラーになるじゃん
0681デフォルトの名無しさん
2013/02/11(月) 22:20:04.53DefLng L
DefDbl D
Public Sub ISwap(ByRef I1, ByRef I2)
I3 = I1: I1 = I2: I2 = I3
End Sub
Public Sub LSwap(ByRef L1, ByRef L2)
L3 = L1: L1 = L2: L2 = L3
End Sub
Public Sub DSwap(ByRef D1, ByRef D2)
D3 = D1: D1 = D2: D2 = D3
End Sub
0682デフォルトの名無しさん
2013/02/11(月) 22:37:59.02それな、Windowsでるよりも前の時代の
古いBASICとの互換性のための機能。
0683デフォルトの名無しさん
2013/02/11(月) 23:07:12.64Form1.Show
と
Dim f1 = Form1
Set f1 = New Form1
f1.Show
と
どっちのコードのほうがいいの?
Form1は複数インスタンスは必要なくて1つだけ起動すればいいんだけど
Javaとかだと後者のような書き方だけどVBだとどっちがいいのかわからない
0684デフォルトの名無しさん
2013/02/11(月) 23:23:28.810685デフォルトの名無しさん
2013/02/11(月) 23:28:32.300686デフォルトの名無しさん
2013/02/12(火) 00:59:08.83前者はVB2.0時代の互換性のためにのこってるもの
今時(つってもVBはもう古いが)の書き方なら後者
0687デフォルトの名無しさん
2013/02/12(火) 01:52:31.820688デフォルトの名無しさん
2013/02/12(火) 02:18:05.07FSOみたいにRegExpも1つのインスタンスを使い回したほうがいいの?それとも正規表現ごとにインスタンスを作るべき?
0689デフォルトの名無しさん
2013/02/12(火) 02:50:51.290690デフォルトの名無しさん
2013/02/12(火) 11:09:23.04右辺値がオブジェクトだけど、デフォルトメンバが
呼び出されて値が返ってくることを期待するときに
Setでないことを明示するために
Letって書く、っていう俺ルールにしてる。
'クラスモジュールClass1
'プロシージャ属性でプロシージャIDを(既定値)にする
Public Property Get DefaultMember()
End Property
'呼び出し側
Dim a as New Class1, b, c, d
Set b = a 'cの参照のコピー
Let c = a 'c.DefaultMemberが呼び出される
d = a 'Letと同じだが、Setの書き忘れかも
0691デフォルトの名無しさん
2013/02/12(火) 12:22:52.51If Clng(Format$("2013/1/1",YYYYMMDD)) < Clng(Format$("2013/1/2",YYYYMMDD)) Then
でええやろ?
0692デフォルトの名無しさん
2013/02/12(火) 12:24:27.92If Clng(Format$("2013/1/1", "YYYYMMDD")) < Clng(Format$("2013/1/2", "YYYYMMDD")) Then
ならええよ
0693デフォルトの名無しさん
2013/02/12(火) 16:49:52.73何がしたいのか解らんコードだ
0694デフォルトの名無しさん
2013/02/12(火) 17:16:25.05日時型リテラルはアメリカカルチャーで書式固定になるから、
見た目わかりづらいのが難点だな。
0695デフォルトの名無しさん
2013/02/12(火) 18:35:31.49お疲れ様じゃなくてご苦労様と言いたくなるコードだな。
0696デフォルトの名無しさん
2013/02/12(火) 18:42:38.27本当に何がしたいのか分からんとしたら、頭大丈夫か?と訊ねざるを得ないがな
0697デフォルトの名無しさん
2013/02/12(火) 18:45:03.00確かに日が先か月が先かわからんな。特にその例だと。
0699デフォルトの名無しさん
2013/02/12(火) 18:46:50.490700デフォルトの名無しさん
2013/02/12(火) 18:47:57.98単純比較だと危険があるよ?
0701デフォルトの名無しさん
2013/02/12(火) 18:49:21.91当たり前に解っているいるつもりが間違えて銀行のオンラインが止まったりするのも事実だけどね
0702デフォルトの名無しさん
2013/02/12(火) 19:28:34.490703デフォルトの名無しさん
2013/02/12(火) 19:31:51.45本気で言ってるならお前こそ頭大丈夫?
日付に変換できる事が保証されているなら、両方を日付に変換して比べれば済む話だろ
0704デフォルトの名無しさん
2013/02/12(火) 19:34:14.17頭では理解してても、日本ではあまりなじみのない表記だからなぁ
うっかりミスはあり得る
>>700
設定するときにか?具体的な例を教えてくれ
DBとかから取得したデータが日付のみだと思ってたら時刻が入ってたって事はあるが
0705デフォルトの名無しさん
2013/02/12(火) 19:47:30.32いいや、CATCH FINALLYを別関数にするのは間違ってないと言うだけだったら
水掛け論になるだけだからそれを言うのはやめとこうと思うのだけれども、
どうしてCATCH FINALLYを別関数にするのが間違った構造化だと思う?
構造化プログラミングを提唱したエドガーダイクストラはGOTOを嫌悪していた。
CATCH FINALLYを別関数にしなければGOTOを使うしかないわけで、GOTOを使うことは
エドガーさんにトンカチで殴られてもおかしくない所業なわけ。だからこそ>>15のコードは
構造化プログラミングの王道を行くものなわけ。はい論破。
0706デフォルトの名無しさん
2013/02/12(火) 19:51:18.37国によって月日が逆転する可能性がある表記のままDate型に変換して比較なんでよくやる気になるな。
香港で作ったソフトを日本に持てくるとかありえない話ではないだろ?
0707デフォルトの名無しさん
2013/02/12(火) 20:20:04.06Err.raise使えよ糞
0708デフォルトの名無しさん
2013/02/12(火) 21:26:45.24> どうしてCATCH FINALLYを別関数にするのが間違った構造化だと思う?
冗長で意味が無いから。
0709デフォルトの名無しさん
2013/02/12(火) 21:35:17.04GOTOを除外するという意味がある。それが構造化。
意味があるから冗長ではない。だから>>15のコードはいい構造化。はい論破。
0710デフォルトの名無しさん
2013/02/12(火) 21:38:17.54ぜんぜん動きが違うでしょ?
0711デフォルトの名無しさん
2013/02/12(火) 21:39:31.49単語だけ見てgotoだと思っていたわけか。
納得した。その勘違いが根本的な会話のズレだ。
0712デフォルトの名無しさん
2013/02/12(火) 21:42:37.31Gotoて入ってるんだからGotoだよ。Gotoて入ってるんだから。Gotoて入ってるのが
GotoじゃなかったらじゃあGotoてなんなのってなるだろ。Gotoて入ってるいじょう
それがGotoであるのは疑いようのないことでウォーターメロンはメロンじゃないと
いってるようなもの。てんでおかしなことだよ。はい論破。
0713デフォルトの名無しさん
2013/02/12(火) 21:44:24.20いや、動きが全く違うでしょ?
0714デフォルトの名無しさん
2013/02/12(火) 21:45:56.87On Error GotoはGotoじゃないならなんだと思ってるわけ?
GotoじゃないならGotoなんて入れられないだろ。タラバガニは
カニじゃないならカニなんて言われてないだろ。タラバガニはカニだから
カニって入ってるんだ。あんま世の中舐めたこと言ってると俺も怒るよ。
怒らせたくないだろ。はい論破。
0715デフォルトの名無しさん
2013/02/12(火) 21:46:49.78全く同じだろ。Gotoで指定したところに飛ぶんだからGotoそのものじゃないか。
何いってんだ馬鹿。はい論破。
0716デフォルトの名無しさん
2013/02/12(火) 21:47:10.36「On Error Goto」でしょw
0717デフォルトの名無しさん
2013/02/12(火) 21:47:45.81同じならなんでgotoとは別にon error gotoがあるのさw
明らかな間違いぐらい認めなさいよw
0718デフォルトの名無しさん
2013/02/12(火) 21:53:12.07だからGotoだろ。冷凍みかんはみかんだろ。はい論破。
>>717
飛ぶタイミングが違うからだろ。エラーが発生したときに飛ぶかどうかだ。
甘夏みかんも温州みかんも同じみかんだがどうして2つあるのさなんてバカな質問しないだろ。
お前はそれほどにふざけたことを言ってるわけ。反省しろ。はい論破。
0719デフォルトの名無しさん
2013/02/12(火) 21:54:47.660720デフォルトの名無しさん
2013/02/12(火) 22:06:33.37> >>715
> 同じならなんでgotoとは別にon error gotoがあるのさw
> 明らかな間違いぐらい認めなさいよw
アルコールを飲んじゃいけませんというお触れが出されて
これはエチルアルコールだからアルコールじゃないと言ってお酒を飲んで警官隊に撃ち殺される愚か者。
禁酒令が出される時代に生まれて来なかったことを神様に感謝しろ。はい論破。
0721デフォルトの名無しさん
2013/02/12(火) 22:14:12.21DateDif使えば一発やん。
0722デフォルトの名無しさん
2013/02/12(火) 22:14:43.800723デフォルトの名無しさん
2013/02/12(火) 22:16:15.92> あー、
ださ、はい論破。
0724デフォルトの名無しさん
2013/02/12(火) 22:30:20.10> あー、なるほど。on error gotoを
> 単語だけ見てgotoだと思っていたわけか。
> 納得した。その勘違いが根本的な会話のズレだ。
この冬一番の早合点バカwwwww
お前の戒名はタラバガニでいんじゃね。論破さんの提案です、はい論破。
0725デフォルトの名無しさん
2013/02/12(火) 22:30:43.060726デフォルトの名無しさん
2013/02/12(火) 22:44:15.50ナイスピックアップ
>>685
標準モジュールにProperty Getを書いて定数に見せかけるのはありだ。
>>688
インスタンスを複数作るのはコストがかかるので
RegExpは1つのインスタンスを使い回したほうがいい。
>>689
ByRefやByValは自動生成されるプロシージャに自分で書き足すべきだ。
はい論破完遂。
0727デフォルトの名無しさん
2013/02/13(水) 02:33:56.49それは>>692にも言える話で暗黙変換のぶんだけよりたちが悪いわけですが
あと、Formatかけるのは月日の前ゼロそろえる意味があるとしても
>>692がIf文の中でClngしてる理由を説明してくれないかな
俺には本気でLongで比較する意味がわからん。日付の大小比較なんだから正規化された文字列比較で事はたりる
0728デフォルトの名無しさん
2013/02/13(水) 02:43:25.090729デフォルトの名無しさん
2013/02/13(水) 02:46:10.26.NETでは定数はコンパイル時に解決されるがプロパティは実行時に解決されるって違いがあったはず
VB6でその二つが同じとみなせるかどうかは知らないが、一応注意しとくに越したことはないかも
0730デフォルトの名無しさん
2013/02/13(水) 03:04:42.850732デフォルトの名無しさん
2013/02/13(水) 08:13:26.77>日付の大小比較
文字コードの値で比較してはいけないというのは基本原則。
VB6だから大丈夫と思ってるなら他の言語を使わないでね。
迷惑だから。
0733デフォルトの名無しさん
2013/02/13(水) 08:15:28.43目から鱗と思う事さえあるが、とんでもない独断と偏見に満ちた見解も半分あるので
どこからどこまでを吸収するかが初心者には難しい所だな。
0734デフォルトの名無しさん
2013/02/13(水) 10:36:18.95ごめん、何言ってるのかわからない
0735デフォルトの名無しさん
2013/02/13(水) 11:13:16.730736デフォルトの名無しさん
2013/02/13(水) 14:27:23.96例えば、データベースなんかから取得した日付文字列リテラルを比較するとき、いちいち
日付オブジェクトとかに変換してから比較してるの?
0737デフォルトの名無しさん
2013/02/13(水) 15:29:30.91データベースから取得したらリテラルじゃないだろう。
文字列の大小が数値の大小と同じだと思ってはいけない。
>>692は左と右の桁数が同じだから、文字列の大小と
数値の大小の結果が同じになる、特殊なケース。
特殊なケースだからといって、文字列の大小を
数値の大小の代わりに使っていると、間違いが起こるよ。
桁数の違う数値を文字列にして、比較してみると良い。
?"2001" < "20000"
?2001 < 20000
0738デフォルトの名無しさん
2013/02/13(水) 15:32:44.670739デフォルトの名無しさん
2013/02/13(水) 15:42:12.35> データベースから取得したらリテラルじゃないだろう。
リテラルじゃない変数に入れれば何かのオブジェクトになる場合もあるだろうけど、
文字列リテラルに変換される言語/ミドルウェアも多い。
レコードセットが、integerとstringの連想配列の配列になるとか。
> >>692は左と右の桁数が同じだから、文字列の大小と
> 数値の大小の結果が同じになる、特殊なケース。
何言ってるの?
比較できるよう、同じフォーマットに揃えたんだろうが。
0740デフォルトの名無しさん
2013/02/13(水) 15:44:54.11> 正規化された文字列比較
の「正規化」の意味がわからないのか?
0741デフォルトの名無しさん
2013/02/13(水) 16:01:32.90VBにそんなオブジェクトあるんだ。初めて聞いたよw
0742デフォルトの名無しさん
2013/02/13(水) 16:04:25.21言語一般の話をしてるんだけど
0743デフォルトの名無しさん
2013/02/13(水) 16:05:49.85マジでVB厨はCDateしないの?
0744デフォルトの名無しさん
2013/02/13(水) 16:09:10.370745デフォルトの名無しさん
2013/02/13(水) 16:12:03.83なんでCDateするの?
0746デフォルトの名無しさん
2013/02/13(水) 16:14:13.30VBスレなのだが何か?
0747デフォルトの名無しさん
2013/02/13(水) 16:14:16.380748デフォルトの名無しさん
2013/02/13(水) 16:14:16.71CDateだと、"YYYY/HH/MM HH:MM:SS"にならないから滅多に使わない。
0749デフォルトの名無しさん
2013/02/13(水) 16:15:21.26俺じゃなくて>>732に言え
0750デフォルトの名無しさん
2013/02/13(水) 16:17:01.530751デフォルトの名無しさん
2013/02/13(水) 16:19:18.52>>727
> 日付の大小比較なんだから正規化された文字列比較で事はたりる
に対して、>>732が文字列比較をするなという主張をしたので、文字列比較でいいだろというのが俺の主張。
(もちろん、>>727の主張でもある)
0752デフォルトの名無しさん
2013/02/13(水) 16:20:55.350753デフォルトの名無しさん
2013/02/13(水) 16:23:06.29コンピューター言語を語る前に日本語からだな。
0754デフォルトの名無しさん
2013/02/13(水) 16:24:37.75CDateでいいならClngでもいいんじゃね?
0755デフォルトの名無しさん
2013/02/13(水) 16:25:55.28A > a 、 a > A どちらもあり得る。
1 > 2 もあり得る。
0756デフォルトの名無しさん
2013/02/13(水) 16:27:06.02マジレスしとくが、
If Format$("2013/1/1", "YYYYMMDD") < Format$("2013/1/2", "YYYYMMDD") Then
や
If CDate("2013/1/1") < CDate("2013/1/2") Then
なら話はわかるが、
Format$("2013/1/1", "YYYYMMDD")
を
Clng(Format$("2013/1/1", "YYYYMMDD"))
してから比較する意味がわからないということ。
0757デフォルトの名無しさん
2013/02/13(水) 16:29:16.91正規化した日付文字列を文字列比較してはいけない言語を教えてくれよ。
0758デフォルトの名無しさん
2013/02/13(水) 16:37:11.60CDateが最高
0759デフォルトの名無しさん
2013/02/13(水) 16:48:27.44素直にDate型にしておけばいろんな恩恵が得られるのに。
画面に出力させたり、ファイルに出力する直前に文字列に変換すれば楽なのに。
0760デフォルトの名無しさん
2013/02/13(水) 16:49:11.51Stringで入力されたら、すぐにDateに変換すべき。
Stringのまま渡したり保存するから、おかしなことになる。
コード内なら "2013/1/1" などと書かずに #2013/1/1# と書くべき。
0761デフォルトの名無しさん
2013/02/13(水) 16:51:45.10通信なんかもオブジェクトをやり取りする主義なの?
0762デフォルトの名無しさん
2013/02/13(水) 16:53:51.350763デフォルトの名無しさん
2013/02/13(水) 16:56:42.670764デフォルトの名無しさん
2013/02/13(水) 17:10:05.450765デフォルトの名無しさん
2013/02/13(水) 17:10:15.39一番自然でしょ?
なんでそう屁理屈ばかりこねるかなぁ。
0766デフォルトの名無しさん
2013/02/13(水) 17:28:15.700767デフォルトの名無しさん
2013/02/13(水) 17:42:35.06おいおいVB厨ってやばくね?
0768デフォルトの名無しさん
2013/02/13(水) 17:44:00.080769デフォルトの名無しさん
2013/02/13(水) 17:44:36.79え?
君は文字列で登録しないの?
0770デフォルトの名無しさん
2013/02/13(水) 17:57:24.430771デフォルトの名無しさん
2013/02/13(水) 17:58:35.83んじゃ、どうやって登録するのかコードで教えてよ
0772デフォルトの名無しさん
2013/02/13(水) 18:02:02.40え?
まさかパラメータクエリで登録しないのか?
0773デフォルトの名無しさん
2013/02/13(水) 18:07:34.44いいから、コード示してくれよ
0774デフォルトの名無しさん
2013/02/13(水) 18:11:24.15やばくはないだろ。ミックさんも日付は文字列であつかうべきだって言ってる。
ミックさんが言うんだったらそうなんだろ。
NULL撲滅委員会
http://www.geocities.jp/mickindex/database/db_getout_null.html
> そのためにも、日付の列は文字型で宣言しておくべきです。(確実に NOT NULL制約を付けられる場合なら、数値型でもかまいません。)
> ほとんどの DBMS が日付型を用意していますが、私は個人的に使うメリットを感じません。
> 暦日計算の場合など、必要なときだけキャストしています。
0775デフォルトの名無しさん
2013/02/13(水) 18:25:03.03嫌だね。めんどくさい。
0776デフォルトの名無しさん
2013/02/13(水) 18:26:50.680777デフォルトの名無しさん
2013/02/13(水) 18:28:41.480778デフォルトの名無しさん
2013/02/13(水) 18:55:50.88あくまで個人的な見解でしょw
こういうことでミックさんを盾にするのは良くないと思う。
これがマイクロソフトとかオラクルとかが言っているなら納得するけど。
0779デフォルトの名無しさん
2013/02/13(水) 19:10:02.320780デフォルトの名無しさん
2013/02/13(水) 19:15:06.71> 悍ましい
読めないよ
0781デフォルトの名無しさん
2013/02/13(水) 19:19:26.35>ボイルシャールの法則を知っていれば気圧でお湯にでも水にでもなるって事知らないの?はい論破
気圧で変化するのは沸点。
「 お湯にでも水にでもなる 」←文脈上、お湯と水を比較しているが、これは化学的な用語でない。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/430
>C#やJavaにはString型の
>遅さを補うためにStringBuilderクラスが用意されているがVBには
>そういうのがない。
あります。MIDステートメント。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/555
>音が聞こえることを耳が聞こえるというのと同じことで
前者は、聴覚刺激の入力表現であり、後者は聴覚能力の表現です。
ソフト屋らしく、NOT表現すると「耳が聞こえない」→聴覚能力です。
>>http://toro.2ch.net/test/read.cgi/tech/1359721249/598
>戻り値でエラーを返せば余裕だろ。
0782デフォルトの名無しさん
2013/02/13(水) 22:35:03.50画面からの入力で、ありえねー日付(例:11月31日)とか、
閏年とか、チェックするにしても何にしても、
一旦はDate型にするだろ?
だったらそのままDBに格納すりゃいいんじゃね?
まさか何もせずに未チェックで文字列のままDBに登録なんてしないよね?
0783デフォルトの名無しさん
2013/02/13(水) 22:37:14.44とにかく文字列で日付比較とか愚の骨頂と言うか頭が足りないとしか言えないね。
0784デフォルトの名無しさん
2013/02/13(水) 22:57:01.59→ それを入力文字列の年月日時分秒 とそれぞれ比較して入力値をチェック
DBのテーブルでは、日付は基本的にdatetimeとかのそれ用のデータ型。
登録は基本的にSQL文を利用。
SQL文を作成するところで、Format関数使って文字列に戻してる。
日付として正しいかどうかわかんない日付表示文字列をそのままDB登録するとか
意味わからん。どうしても一旦はDate型にするだろ。
0785デフォルトの名無しさん
2013/02/13(水) 23:08:55.06日付を意味するデータは基本Date、まれにString
Nullというか未指定を許容する割に日付として比較・演算しないとかね
0786デフォルトの名無しさん
2013/02/13(水) 23:10:42.28VB6に限らずですが
0787デフォルトの名無しさん
2013/02/13(水) 23:11:46.160788デフォルトの名無しさん
2013/02/13(水) 23:12:53.680789デフォルトの名無しさん
2013/02/13(水) 23:13:57.030790デフォルトの名無しさん
2013/02/13(水) 23:40:08.53内部の処理に都合のいいデータを採用しないと、内部処理として重要じゃない型変換なんていう処理が増える。
これをやると、型変換を忘れたりとかバグを仕込みやすくなる。
型変換なんてまさしくインターフェースの処理の役割でしょ。
0791デフォルトの名無しさん
2013/02/14(木) 00:43:41.60プログラミング言語全般の話なのか、特定(VB)の言語の話なのか
まあ、どっちの話だとしてもおかしな事いってるが
0792デフォルトの名無しさん
2013/02/14(木) 04:12:34.92文字にしてSQLで日付渡すと、当然DB側の日付解釈によって判断される
DB側の日付リテラル形式ちゃんと把握してるか?思わぬバグの元だぞ
0793デフォルトの名無しさん
2013/02/14(木) 06:27:12.650794デフォルトの名無しさん
2013/02/14(木) 06:52:43.29丸投げかよ
0795デフォルトの名無しさん
2013/02/14(木) 08:37:20.190796デフォルトの名無しさん
2013/02/14(木) 09:20:58.16Text2 = Int(CDate(Text1))
0797デフォルトの名無しさん
2013/02/14(木) 10:32:23.49じゃ、CSVのインポートとかできないよね
0798デフォルトの名無しさん
2013/02/14(木) 10:38:48.47> だったらそのままDBに格納すりゃいいんじゃね?
だからさー、そのままDBに格納するコード書いてよって
0799デフォルトの名無しさん
2013/02/14(木) 10:39:38.18マジなら本当にやばいなw
0800デフォルトの名無しさん
2013/02/14(木) 10:45:10.03ですよねーw
0801デフォルトの名無しさん
2013/02/14(木) 10:46:44.61いやいや、マジですから
0802デフォルトの名無しさん
2013/02/14(木) 10:47:47.830803デフォルトの名無しさん
2013/02/14(木) 10:51:16.440804デフォルトの名無しさん
2013/02/14(木) 10:52:50.630805デフォルトの名無しさん
2013/02/14(木) 10:59:15.92一体どういう関数を書いてるのかな。
例えば、こういう関数が考えられる。
Public Function IsValidDate(ByVal val as String) as Boolen
' 実行時例外は出さない
End Function
日付型に変換する派の人は、どういう妥当性チェックするの?
0806デフォルトの名無しさん
2013/02/14(木) 11:03:12.35日付として正しくないものまでインポートしたいってこと?
それならそのデータは日付ではなくてただのメモじゃないか?
0807デフォルトの名無しさん
2013/02/14(木) 11:04:43.950808デフォルトの名無しさん
2013/02/14(木) 11:09:00.76どちらかというと、前提をおかしくしてるのは君らの方なんだけど。
そもそもは、normalizeされた日付文字列を文字列比較していいかどうかって話だ。
で、文字列比較するなという奴が現れて混乱してる。
比較可能なんだから、わざわざDate型にする必要無いよねってこと。
で、さらに言うと、Date型が要求されないなら、文字列型のままで日付を扱っても問題ないよってこと。
0809デフォルトの名無しさん
2013/02/14(木) 11:10:07.08つか、日付のフォーマットが決まってたら、妥当性チェックしないの?
0810デフォルトの名無しさん
2013/02/14(木) 11:19:19.57プロトコルで規定されているなら妥当性はチェックしない。
まあ前提として日付のNullは許可しないというのがあるが。
0811デフォルトの名無しさん
2013/02/14(木) 11:20:58.06問題無かったら議論になってないだろうに。過去を遡って状況を把握してから発言してね。
0812デフォルトの名無しさん
2013/02/14(木) 11:23:34.30一桁の数字を比較するときに文字列のまま比較するのかと一緒だけど、
たぶん君はするんだろうな。
0813デフォルトの名無しさん
2013/02/14(木) 11:27:22.57っていう考え方なんだよね。
VBだけやってる人に多い。
0814デフォルトの名無しさん
2013/02/14(木) 11:28:44.86御意
0815デフォルトの名無しさん
2013/02/14(木) 11:29:26.74御意
0816デフォルトの名無しさん
2013/02/14(木) 11:30:27.33> プロトコルで規定されているなら妥当性はチェックしない。
妥当でない文字列がわたってきたために、アプリケーションやサーバプロセスが死にますが、
それは相手のせいだからうちは関係有りません、ってことですね。
>>811
> 問題無かったら議論になってないだろうに。過去を遡って状況を把握してから発言してね。
いや、俺最初からいるけど。>>751は俺。
>>812
> 一桁の数字を比較するときに文字列のまま比較するのかと一緒だけど、
全然違う。normalized date stringだっていってるでしょ。
0817デフォルトの名無しさん
2013/02/14(木) 11:32:34.26文字列のバイナリ値がどのような前提でもである。
0818デフォルトの名無しさん
2013/02/14(木) 11:33:33.940819デフォルトの名無しさん
2013/02/14(木) 11:34:51.24Validationをどうやってるのかコードで示した人以外はコメントしないよ。
>>810
お前は見逃してやるけど、いつでもvalidationしとけ、アホ。
0820デフォルトの名無しさん
2013/02/14(木) 11:35:24.38プロトコル、いわゆる規約の意味がわかっていない大原の専門学校生のようなノリだな。
>いや、俺最初からいるけど
最初からいてそれかい?
>normalized date string
正規化したところで日付は日付、文字は文字だがな。
0821デフォルトの名無しさん
2013/02/14(木) 11:35:57.47何故駄目なのかは言えないんだ。
0822デフォルトの名無しさん
2013/02/14(木) 11:37:11.60> プロトコル、いわゆる規約の意味がわかっていない大原の専門学校生のようなノリだな。
コンビニのATMが止まったのは何故でしたっけ?
お前みたいなプログラマがいるからだよ。
0823デフォルトの名無しさん
2013/02/14(木) 11:38:49.63プログラムで無駄なチェックルーティンを書くのを省いているんだがなぁ
専門学校では教えないのか?w
動くだけのプログラムと人につかってもらうプログラムとでは
エラー処理のコード量が全く違うんだ罠。
エラー処理のコード量の方が実アプリのコード量より多いなんて事はザラ。
専門学校生の作るプログラムはザルだがw
0824デフォルトの名無しさん
2013/02/14(木) 11:39:58.63> つまり前提条件としてしっかりと取り決めをしておくことにより
> プログラムで無駄なチェックルーティンを書くのを省いているんだがなぁ
つまり、ATMがストップしたけど、それは全部相手が悪いってことですね。
0825デフォルトの名無しさん
2013/02/14(木) 11:40:56.34それ、プロトコルを信用したために起こった事故じゃないだろ?論理が破綻してるぞ大原くんwww
0826デフォルトの名無しさん
2013/02/14(木) 11:41:36.43だからー。それは動くんだからいいだろ?っていう思想だろ。
比較に使ってる文字コードが0123456789の順で割り当てられてる
前提じゃん。まあそうじゃないことなんてないだろうけど
だからって文字列で比較するってことは、動けば問題ないだろ
って言ってるのと同じなんだよ。
0827デフォルトの名無しさん
2013/02/14(木) 11:43:14.670828デフォルトの名無しさん
2013/02/14(木) 11:43:16.700829デフォルトの名無しさん
2013/02/14(木) 11:43:19.72ATMの問題はプロトコルで取り決められた日付フォーマットのチェックを行わなかったために起こったの???
0830デフォルトの名無しさん
2013/02/14(木) 11:44:34.58微妙に主張を変えるなよ。
> プロトコルで規定されているなら妥当性はチェックしない
んだろ?
ATMのシステムではプロトコルが規定されてなかったのか?
規定されているのに落ちた。
で、落ちたのは誰のせいなの?
0831デフォルトの名無しさん
2013/02/14(木) 11:46:04.81だからさ、プロトコルで決められた日付に関してフォーマットをチェックする必要はないのだよ。
キミはプロトコルの意味をわかっていない。
BSCやHDLCなどコンピュータで処理される前提の通信制御のファームウェアを長年書いていたけど
プロトコルで規定された範囲のデータフォーマットをチェックした事なんて一度もないよ。
0832デフォルトの名無しさん
2013/02/14(木) 11:46:14.91> だからって文字列で比較するってことは、動けば問題ないだろ
> って言ってるのと同じなんだよ。
えっと、じゃぁ文字列データを辞書順に並べ替えるのはどうするんでしょうか。
0833デフォルトの名無しさん
2013/02/14(木) 11:47:03.51> BSCやHDLCなどコンピュータで処理される前提の通信制御のファームウェアを長年書いていたけど
> プロトコルで規定された範囲のデータフォーマットをチェックした事なんて一度もないよ。
で、サーバが落ちたら誰のせいなの?
0834デフォルトの名無しさん
2013/02/14(木) 11:47:05.34なんか滅茶苦茶な展開だな。頭混乱してるだろ?頭冷やして来いよ
ATM坊やw
0835デフォルトの名無しさん
2013/02/14(木) 11:48:05.53おいおい。それは文字列データの話だろう。
日付データの話じゃないじゃん。もうだめだ。全然だめだ。
0836デフォルトの名無しさん
2013/02/14(木) 11:48:07.89誰のせいとかもうね
いつも責任の擦り付け合いばかりしてるからそういう発想になるんだろ?(笑)
0837デフォルトの名無しさん
2013/02/14(木) 11:50:02.44え?"1"と"2"を比較すると信頼性がないんじゃなかったの?
"a"と"b"ならいいわけ?
>>836
> 誰のせいとかもうね
つまり、うちではデータのチェックはしてませんでしたが、悪いのはあなたですってことですね。
0838デフォルトの名無しさん
2013/02/14(木) 11:51:41.63専門学校でもう一度おそわってこい
0839デフォルトの名無しさん
2013/02/14(木) 11:52:25.79> だいたい正規化された日付文字列ってどういう事だよ
マジレスしとくが、正規化とはある規則に則ったフォーマットに変換すること。
日付なら、"YYYY-MM-DD"とか"YYYY/MM/DD"とか"YYYYMMDD"とか。
0840デフォルトの名無しさん
2013/02/14(木) 11:52:52.31つまり、何がどうして駄目なのかは言えませんってことでいいな。
もういいよ。
0841デフォルトの名無しさん
2013/02/14(木) 11:54:49.12いやだからー。文字列データを並べ替えるなら文字コード順になるでしょ。
日付を並べ替えたときに文字コード順でいいのかよって話だよ。
うそー。なんでこんなに頭固いんだろう。
0842デフォルトの名無しさん
2013/02/14(木) 11:55:29.50> 日付を並べ替えたときに文字コード順でいいのかよって話だよ。
何故駄目なのかを言え。
何遍言わせるんだ。
0843デフォルトの名無しさん
2013/02/14(木) 11:59:00.32だからー。結果的にはダメじゃないんだよ。正常に動くんだよ。
文字コードが0123456789の順になってるからな。
だけど動けばいいのかって話なんだよ。なぜこれでわからないのか
わからないんだよ。勘弁してくれ。
0844デフォルトの名無しさん
2013/02/14(木) 12:00:57.66> だからー。結果的にはダメじゃないんだよ。正常に動くんだよ。
> 文字コードが0123456789の順になってるからな。
文字コードがABC順になっているから、文字列をソートするときに文字列比較でいいのに比べて、
normalized date stringを文字列比較すると何故駄目なのかを言え。
0845デフォルトの名無しさん
2013/02/14(木) 12:02:52.88今回は日付の比較だし、仮に時間の比較だったとしても
ミリ秒が問題になることは希かも知れない。
むしろ、ミリ秒を比較する方が問題になることもあるかも知れない。
だが、こういう違いがあることを、文字列比較主義者は
知っていた方が良い。
Dim A As Date, B As Date
A = #2/14/2013 1:01:01 AM#
B = A + 0.1 / 24 / 60 / 60 '0.1秒追加
Debug.Print A, B '2013/2/14 1:01:01 2013/2/14 1:01:01
Debug.Print A < B 'True
Debug.Print Format$(A, "yyyymmddhhnnss") < Format$(B, "yyyymmddhhnnss") 'False
0846デフォルトの名無しさん
2013/02/14(木) 12:05:53.49ありがとう。
だけど、その正規形が大小比較可能であることはどこで保証されてるの?
0847デフォルトの名無しさん
2013/02/14(木) 12:08:58.59それはabc順に並べてるんじゃなくて
文字コード順にならべてるんだろ
だからそれはただの結果なんだよ
0848デフォルトの名無しさん
2013/02/14(木) 12:22:18.13あ、そうだ
例えばさ16進数の文字列があったとするじゃん
それも、文字列のまま比較する?
まあするんだろうけど
違和感ない?やっぱないのかなー
0849デフォルトの名無しさん
2013/02/14(木) 12:38:51.670850デフォルトの名無しさん
2013/02/14(木) 12:41:04.48日付と同じことでしょ。
0851デフォルトの名無しさん
2013/02/14(木) 12:42:44.050852デフォルトの名無しさん
2013/02/14(木) 12:50:17.67自分で作ってみると良いよ。
0853デフォルトの名無しさん
2013/02/14(木) 12:56:59.99それって数字とアルファベットが混在する文字列とどうくべつすればええの?
0854デフォルトの名無しさん
2013/02/14(木) 12:57:18.661899/12/30
0855デフォルトの名無しさん
2013/02/14(木) 13:04:03.61何を言ってるんだ?日付も同じことだろ。区別する必要などない。
規定のフォーマットであることは確認済みの後の話だ。
0856デフォルトの名無しさん
2013/02/14(木) 13:12:16.04日付は規則性があるけどそっちは並び順がランダムじゃん
0857デフォルトの名無しさん
2013/02/14(木) 13:14:41.17並び順?ん?桁数が同じならどうでもいいだろ?
え?マジで意味がわからないんだけど。
0858デフォルトの名無しさん
2013/02/14(木) 13:18:01.10>通信制御のファームウェアを長年書いていたけど
の人が文字列比較で問題ないっていってるんだよね?
たぶんこういう人は小さく軽く作らないといけなかったり
するだろうから無駄は全部省きたいって考えなんだろう。
規定のフォーマットの文字列を大小比較して済むなら
それで行くと。でもそれは本来あったほうがいい処理を
省いた結果なんだと思うね。
0859デフォルトの名無しさん
2013/02/14(木) 13:33:13.06>するだろうから無駄は全部省きたいって考えなんだろう
文字列で処理するほうが何十倍も無駄なんだが・・・。
0860デフォルトの名無しさん
2013/02/14(木) 13:36:00.38そうかい。じゃあ無駄を省きたくて文字列比較してるっていう
のは違うんだね。そうするとますますわからなくなるな。
0861デフォルトの名無しさん
2013/02/14(木) 13:44:26.78うむむ。何だろう。ソースが短くて済むくらい?
いや、これはある意味無駄を省いたことになってしまう。
いや、そうだ、ソースの無駄が省けるといってたんだ。最初から。
やはり結果がOKなら省けるものは省こうと。そういうことだろう。
要するに動けばOK。ってことか。
0862デフォルトの名無しさん
2013/02/14(木) 13:58:28.47基本的に比較、格納する際には本来の型に直してからってのがある種の癖になるよねうん
ところで1970ry
0863デフォルトの名無しさん
2013/02/14(木) 13:58:29.86文字列を日付に変換するなら結局文字列を舐めていることには
変わりないから日付に変換するほうが重いのではないか?
俺もCで組むなら面倒だから文字列比較で済ませたいと思うのは確か。
だけどそれはただの横着である。
0864デフォルトの名無しさん
2013/02/14(木) 14:33:35.96比較可能な文字列が存在したときに、それが「日付」であるが故に文字列比較では駄目だと主張する奴がいて、
駄目だというなら何故駄目なのかを問うてる。
以下のCのコード:
int year1 = 2001;
int year2 = 2002;
if (year1 > year2) { }
この比較が駄目なのかOKなのか、駄目なら何故駄目なのか答えて欲しい。
弥生と五月は単純には比較できないが、3と5なら比較可能。"03"と"05"でも比較可能。
0865デフォルトの名無しさん
2013/02/14(木) 14:35:39.900866デフォルトの名無しさん
2013/02/14(木) 14:37:03.52VBスレでCの構文で書いている時点でアウト。
出直して来い。
0867デフォルトの名無しさん
2013/02/14(木) 14:37:34.37> 例えばさ16進数の文字列があったとするじゃん
> それも、文字列のまま比較する?
それが正規化された文字列で、ただ単純に比較するだけならわざわざ数値化せずに比較する。
16進文字列は、それを文字列として比較しても大小比較ができるような体系になっているからだ。
0868デフォルトの名無しさん
2013/02/14(木) 14:37:35.58ずれてるのは貴様www
0869デフォルトの名無しさん
2013/02/14(木) 14:39:59.36比較すればいいのだろうか。
「結果としてたまたま動く」ものしか作れないのだろうか。
0870デフォルトの名無しさん
2013/02/14(木) 14:40:02.15C = Format$("2013/1/1 1:01:01", "yyyymmdd") < Format$("2013/1/2 1:01:01", "yyyymmdd")
文字列+Format: 4.33825905247734E-05秒
C = Int(CDate("2013/1/1 1:01:01")) < Int(CDate("2013/1/2 1:01:01"))
日付変換+Int: 4.13611296966514E-05秒
C = Int(#1/1/2013 1:01:01 AM#) < Int(#1/2/2013 1:01:01 AM#)
Date+Int: 2.44915286020989E-08秒
FormatとCDateは同じくらい遅い。
だから、文字列でやりとりしないように、入力されたらすぐに変換するべき。
そうすれば、1000倍速い。
C = "20130101" < "20130102"
Format済: 4.77197520913971E-08秒
C = #1/1/2013# < #1/2/2013#
時刻0のDate: 1.07614902871734E-08秒
予め正規化して、時刻以下をそぎ落としている場合は
Dateの方が4倍速い。
8バイトのDateを文字列にすると16〜17文字くらいになるし、
保存・通信にも適してるとは言えないな。
0871デフォルトの名無しさん
2013/02/14(木) 14:45:38.65マジですか?そうですか。
なんかもう無理な気がするので、俺はあきらめます。
0872デフォルトの名無しさん
2013/02/14(木) 14:48:38.70つまり、駄目な理由を言えないってことですね。
0873デフォルトの名無しさん
2013/02/14(木) 14:50:24.55> 保存・通信にも適してるとは言えないな。
通信フォーマットでは、一般に文字列が好まれる。
異なるアーキテクチャ間で使われるのが前提であればなおさら。
通信では、日付も文字列が普通だよ。
0874デフォルトの名無しさん
2013/02/14(木) 14:56:36.69たまたま動くんじゃなくて、ちゃんと動く事を把握したうえで正規化した文字列比較で事足りるって言ってるんだぞ
文字列比較が"9">"0"になる言語や環境があれば、そこでは成り立たないのは当たり前
VBでそれが起こりうるなら有用な意見だが、そうじゃないならただのいちゃもん
相手する必要ない
0875デフォルトの名無しさん
2013/02/14(木) 14:58:32.21ああ、"9"<"0"な
0876デフォルトの名無しさん
2013/02/14(木) 14:58:50.76md5sumを比較するとき、どうやってんの?
16進文字列だから、数値変換して比較するの?
0877デフォルトの名無しさん
2013/02/14(木) 14:58:55.62それはお前にとって都合のいい条件下でって事だろ?
相変わらず馬鹿丸出しだな。
0878デフォルトの名無しさん
2013/02/14(木) 15:00:19.21はい。それでいいです。
とても無駄な時間をすごしてしまい後悔してます。
0879デフォルトの名無しさん
2013/02/14(木) 15:01:02.95"09" = "90"
"0376" = "3760" = "6307"
0880デフォルトの名無しさん
2013/02/14(木) 15:08:35.39それが俺にとって都合が良い条件だっていうなら
うまくいかない条件を出してみろ
ただし、当然VBの範囲内だぞ、ここVBスレなんだから
VBでそれが起こりうるなら有用な意見として拝聴しよう
正規化をうまく比較できない状態にするとかいうなよ
0881デフォルトの名無しさん
2013/02/14(木) 15:13:08.94お前、16進数値(の表記)と16進文字列の区別ついてないだろ
いま問題になってるのは表現形式の問題じゃいぞ
0882デフォルトの名無しさん
2013/02/14(木) 15:14:38.69ごちゃごちゃ言わずに、md5sumを比較するときどうやるのか言え。
0883デフォルトの名無しさん
2013/02/14(木) 15:15:56.17あーあ、論破されてやんのwww
0884デフォルトの名無しさん
2013/02/14(木) 15:16:49.45答えられないなら、おとなしくしとけよ。
0885デフォルトの名無しさん
2013/02/14(木) 15:19:29.57えっ!俺関係ないんだけどwwww
0886デフォルトの名無しさん
2013/02/14(木) 15:21:26.17まず、md5sumは数字なのに文字列で持ってるって前提がおかしいけど
本来の数字もってればそれで比較するにきまってるだろ
でも文字列でしか持ってないなら、文字列から数字に戻すか、文字列どうして比較するかしかない
適切に正規化されている前提なら数字に戻す必要はないので文字列どうしで比較するのは妥当
0887デフォルトの名無しさん
2013/02/14(木) 15:24:25.72> まず、md5sumは数字なのに文字列で持ってるって前提がおかしいけど
えっ、普通は文字列で与えられる情報なんだけど。
> でも文字列でしか持ってないなら、文字列から数字に戻すか、文字列どうして比較するかしかない
16進文字列なんだから、数値化しようと思えばできるよね。
> 適切に正規化されている前提なら数字に戻す必要はないので文字列どうしで比較するのは妥当
md5sumを文字列比較でOKとするなら、なぜ日付文字列は駄目なんでしょうか。
0888デフォルトの名無しさん
2013/02/14(木) 15:32:36.71>>881
文字列で与えられる情報なのは、文字にしてるから
つまり16進数値の表記
誰と勘違いしてるのか知らんが俺は日付文字列の比較はOK派だぞ
0889デフォルトの名無しさん
2013/02/14(木) 15:36:33.98> 誰と勘違いしてるのか知らんが俺は日付文字列の比較はOK派だぞ
あ、そうなの?
16進文字列の比較は文字列比較でOKだけど、日付文字列を文字列比較するのはNGという奴かと思ったよ。
0890デフォルトの名無しさん
2013/02/14(木) 15:52:08.93あるときマイナスが表示できなくなって、プラスになる
というのを思い出した。
銀行の貯金が文字列で保存されてたら同じことできるかな!
0891デフォルトの名無しさん
2013/02/14(木) 15:56:51.17意味的には数値というより文字列だと思うんだけど。
たぶんここら辺でもかみ合わないんだろうなぁ。まあいいけど。
0892デフォルトの名無しさん
2013/02/14(木) 16:01:41.820893デフォルトの名無しさん
2013/02/14(木) 16:04:50.69そいつと一緒にしないでくれ。頼む!
0894デフォルトの名無しさん
2013/02/14(木) 16:06:57.590895デフォルトの名無しさん
2013/02/14(木) 16:10:22.22数値とそれを表記した文字(列)と文字列の区別ついてないやつ多すぎ
0896デフォルトの名無しさん
2013/02/14(木) 16:12:00.080897デフォルトの名無しさん
2013/02/14(木) 16:15:29.37Date型にする必要がない場合は、日付を表す文字列をDate型に変換せずに扱う、というのが正確な表現。
もちろん、Date型にする必要がある場合はする。
そして、ただ比較するだけなら、Date型にする必要は無い。
0898デフォルトの名無しさん
2013/02/14(木) 16:32:28.22それ前提として日付が適切に正規化されている場合、な
日付の正規化はVBなら1回日付型にするのが楽
正規化するのに日付変換してるのに気付いてないやつ
正規化された文字列でも日付比較しちゃ駄目と言うやつ
表現形式と内部形式の区別がつかないやつ
こいつらが話をややこしくしてる
0899デフォルトの名無しさん
2013/02/14(木) 16:37:33.05だから正規化ってなんなんだよ?勝手にオレオレ言語使うなっつーの。
0900デフォルトの名無しさん
2013/02/14(木) 16:39:44.75> それ前提として日付が適切に正規化されている場合、な
もちろん、>>727の時点から、正規化された日付文字列なのが前提での話だよ。
0901デフォルトの名無しさん
2013/02/14(木) 16:40:39.840902デフォルトの名無しさん
2013/02/14(木) 16:41:01.52マジレスしとく。
http://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%8C%96
> 正規化(せいきか、英: normalization)とは、データ等々を一定のルール(規則)に基づいて変形し、
> 利用しやすくすること。別の言い方をするならば、正規形でないものを正規形(比較・演算などの
> 操作のために望ましい性質を持った一定の形)に変形することをいう。
0903デフォルトの名無しさん
2013/02/14(木) 16:46:45.81727書いたの俺だが。お前が当然その前提なのは解ってるけど
書いとかないとわけわからんいちゃもん付けるやつが出るからな
と思ったけど、書いてもその意味がわからんやつがいちゃもん付けるのか(笑)
>>898に正規化の意味がわからんやつ 追加
0904デフォルトの名無しさん
2013/02/14(木) 16:47:11.60おまえら俺のことからかってんの?
日付の表現形式なんて、いくらでもあって全てが日付の大小比較出来る
ものばかりじゃないぞ?そこ分かってんの?
0905デフォルトの名無しさん
2013/02/14(木) 16:50:38.89わかってるから前提として正規化されているって話をしてるんだが
ここまで説明しても馬鹿はいちゃもん付けるのか
0906デフォルトの名無しさん
2013/02/14(木) 16:53:25.38月や日付が一桁の時に比較できないじゃん!とか思ってたりするんだろうけど、
それもこれも、正規化の意味がわからなかっただけだと思うよ。
0907デフォルトの名無しさん
2013/02/14(木) 16:58:28.66おまえらの言う正規形は、プロジェクトなりなんなりで日付の表現形式の正規形として
認められたものか?その形式で限定された形で大小比較可能であると認められたものか?
そうでなければ、プレゼンテーション層の表現形式がたまたま比較可能であるだけだ。
その違いが分かるか?
まあ、分かってんなら始めからそういう説明するんだろうけど。
0908デフォルトの名無しさん
2013/02/14(木) 16:58:47.860909デフォルトの名無しさん
2013/02/14(木) 17:04:26.39どれだけ説明すればわかるんだろうか。
0910デフォルトの名無しさん
2013/02/14(木) 17:07:32.99プレゼンテーション層の形式など問題にしてないんだが?
さらに言うなら、正規化の話はしてるがその正規形には言及してない
前提として、プレゼンテーション層の表現形式が正規化されていて、日付比較可能な形式なら
その形式で比較すればいい。それが適切に正規化されてるってこと
それはたまたまじゃなくて、ちゃんと前提条件を確認した上での話
その前提が満たされないなら、自分で正規化した文字列にするか日付形式で比較する
でも自分で正規化するなら日付形式で比較した方が楽で早いだろ、って話
0911デフォルトの名無しさん
2013/02/14(木) 17:09:12.27「正規化」に大小比較を可能にするという意味は含んでないぞ。
0912デフォルトの名無しさん
2013/02/14(木) 17:11:07.52だが、使う側の身になって、文字列で格納とか転送とか
メモリ、HDDや帯域の無駄だから、やめてくれってことだ。
0913デフォルトの名無しさん
2013/02/14(木) 17:12:15.09じゃぁ、Wikipedia書き換えてきてよ。
> 正規形でないものを正規形(比較・演算などの
> 操作のために望ましい性質を持った一定の形)に変形することをいう。
が気にくわないんだろ?
0914デフォルトの名無しさん
2013/02/14(木) 17:13:32.11> メモリ、HDDや帯域の無駄だから、やめてくれってことだ。
まだ言うかね。
通信フォーマットは、通常テキストベースなんだってば。
HDDに保存する場合はバイナリで保存することはあるが。
0915デフォルトの名無しさん
2013/02/14(木) 17:13:33.28つまり、大小比較可能な形式に正規化するって話をしてるんだが
0916デフォルトの名無しさん
2013/02/14(木) 17:16:56.03こういうアホがでるからわざわざ適切に正規化されている場合って書いたのにな
日付比較に適さない形に正規化されてても適切じゃないってわからんのか
0917デフォルトの名無しさん
2013/02/14(木) 17:24:27.17正規化キチガイのスレはココでつか?
0918デフォルトの名無しさん
2013/02/14(木) 17:25:27.08_______
../|:┏━━━━┓|
/. |:|今度の土||
|.. |:|日も雨…|.|
|.. |:┗━━━━┛|
\_| ..┌──┐ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
____ ( ) かぁちゃん..
| ( ) <貰ったチョコ ∧∞ヘ
バスルーム| ( ) ∧のヘ 食べていいぞ ~ 田 ( )
| (( (* ^ω) □■  ̄ ̄(_ )
| テチテチ (つ |) □〓□ \_)
|。 。。。u-θ |二二二二二二|
| | | |
貰ったことは貰ったけど・・当然義理だけどね。
年齢とともに減って気がする・・まだ貰えるうちが華かな。o((*^▽^*))o
0919デフォルトの名無しさん
2013/02/14(木) 17:25:39.52その辺はケースバイケース。前提を絞らんと何とも言えん
日付時刻がテキストベースで送られる場合が多いのは、プラットフォームにより内部形式が違う場合が多いから
場合によってはUNIX時刻が当たり前な世界もあるし
0920デフォルトの名無しさん
2013/02/14(木) 17:26:49.03../|:┏━━━━┓|
/. |:|今度の土||
|.. |:|日も雨…|.|
|.. |:┗━━━━┛|
\_| ..┌──┐ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
____ 経費ではおとせないから、レシートは
| 捨てておきましたから > ∧∞ヘ
バスルーム| ∧_∧ ~ 田 ( )
| (・ω・;) ハッ □■  ̄ ̄(_ )
| (つ と) □〓□ \_)
| u-u |二二二二二二|
| | | |
0921デフォルトの名無しさん
2013/02/14(木) 17:31:25.76数値も文字列な場合が多いけどね。
0922デフォルトの名無しさん
2013/02/14(木) 17:34:58.370923デフォルトの名無しさん
2013/02/14(木) 17:36:57.13>>910
> 前提として、プレゼンテーション層の表現形式が正規化されていて、日付比較可能な形式なら
> その形式で比較すればいい。
文字列比較がだめだって言ってる人は、元々これをやっちゃイカンという意図だったんじゃないの?
0924デフォルトの名無しさん
2013/02/14(木) 17:49:55.96比較できる形に正規化するという前提を無視
文字列比較が"0"<"9"ならないというVBではあり得ない仮定
の上で成り立ってる主張
0925デフォルトの名無しさん
2013/02/14(木) 17:56:56.720926デフォルトの名無しさん
2013/02/14(木) 17:58:31.63そっちの方が頭堅いわ
0927デフォルトの名無しさん
2013/02/14(木) 18:00:20.71根本的に分かってないねw
0928デフォルトの名無しさん
2013/02/14(木) 18:01:27.50唯一Date型だけが日付を比較できるんだけど?
数字の大小なら他でも比較する手段はいくらでもあるけどね。
0929デフォルトの名無しさん
2013/02/14(木) 18:01:52.00誰もお前になんか興味無いから、お前のことなんか分かりたくないんだよ
0930デフォルトの名無しさん
2013/02/14(木) 18:02:51.63日付型がない言語はどうしたらいいですか、先生
0931デフォルトの名無しさん
2013/02/14(木) 18:03:08.440932デフォルトの名無しさん
2013/02/14(木) 18:04:01.47それは日付が比較できない処理系と言う事で終わりです。
例えばC言語やアセンブラがそうですね。
0933デフォルトの名無しさん
2013/02/14(木) 18:05:35.46それでも日付として比較しようよって話。
データの意味をもう少し重く考えようよって話。理想。
0934デフォルトの名無しさん
2013/02/14(木) 18:11:12.810935デフォルトの名無しさん
2013/02/14(木) 18:13:27.930936デフォルトの名無しさん
2013/02/14(木) 18:16:21.23だったら最初からそう言え馬鹿
0937デフォルトの名無しさん
2013/02/14(木) 18:17:49.24それも違うと思われます
0938デフォルトの名無しさん
2013/02/14(木) 18:20:01.38外部から入力された日付文字列の妥当性チェックはどう書いてる?
俺は>>805
0939デフォルトの名無しさん
2013/02/14(木) 18:20:42.88それは元が文字列だっていう前提を出したやつに言ってくれ
0940デフォルトの名無しさん
2013/02/14(木) 18:34:10.34繰り返しそのステートメントを使う必要がなく、セキュリティリスクも無い場合は、文字列として
クエリを組み立てるのが最強だから。
プリペアードステートメントだと、コストベースの実行計画が立てられないRDBMSが多いと思う。
そうじゃないRDBMSもあるかもしれないけど。
これ、VBの話ね。
0941デフォルトの名無しさん
2013/02/14(木) 19:07:07.93セキュリティリスクをがないときってどんなときなんだ。
犯罪者がいない国なら警察がいない社会システムが最高だと言ってる
ようなものでしょうが。永遠の命が約束された地におくりびとはいらない
と言ってるようなものでしょうが。逝ってよしと送り出してくれる
ナイスガイはいないほうがいいと言ってるようなものでしょうが。
話にならないよ。はい論破。
0942デフォルトの名無しさん
2013/02/14(木) 19:28:28.030943デフォルトの名無しさん
2013/02/14(木) 19:31:57.53そのバリデートで妥当と判断したら、後はDate型に変換してそのまま扱う
0944デフォルトの名無しさん
2013/02/14(木) 19:38:29.87DBにaccess使うまではいいんだけど、
年・月・日・時 がそれぞれ別レコードになってた。
頭痛くなった。
0945デフォルトの名無しさん
2013/02/14(木) 19:41:58.450946デフォルトの名無しさん
2013/02/14(木) 19:50:27.76すまん、別カラム
0947デフォルトの名無しさん
2013/02/14(木) 20:03:15.77いいかげんにしなよ、そうやって論破さんをおとしめる陰湿な書き込みばかりやってると
ちんちんにカビ生えるよ。お前はそのカビから未知の抗生物質が発見されて
病理学上のサンプルとして自分が有名になれると夢見てるのかもしれないけれども、
せいぜいかびるんるんとしてばいきんまんの手先になるのが関の山、愛と勇気がともだちの
論破さんに痛烈に論破されて世界の中心でばいばいきんと叫んでろ。ば・い・ば・い・き・ん・と・な。はい論破。
0948デフォルトの名無しさん
2013/02/14(木) 20:05:57.710949デフォルトの名無しさん
2013/02/14(木) 20:06:19.210950デフォルトの名無しさん
2013/02/14(木) 20:22:33.510951デフォルトの名無しさん
2013/02/14(木) 20:45:23.19VBerの成れの果てか
0952デフォルトの名無しさん
2013/02/14(木) 21:00:04.03このスレのせいじゃねーの?
おまいら責任とれよなw
0953デフォルトの名無しさん
2013/02/14(木) 21:05:24.720954デフォルトの名無しさん
2013/02/14(木) 21:29:21.500955デフォルトの名無しさん
2013/02/14(木) 21:29:43.170956デフォルトの名無しさん
2013/02/14(木) 21:30:49.35/ ̄ ̄ ̄\_
/__ ___/__ ヽ
/ / )ノ ヽヽ
| | ー ー | |
( V =・ヽ /・= V )
ヽ ノ ノ
| ヽ_ノ |
ヽ  ̄ ̄` ノ
\ /
__/\___/ヽ_
/ヽ⌒\ /⌒ /\
( |__У___| )
.\ | |__| |o|__| | /
0957デフォルトの名無しさん
2013/02/14(木) 21:36:10.99Dim d As Date
0958デフォルトの名無しさん
2013/02/14(木) 21:44:28.05何を今さら。
0959デフォルトの名無しさん
2013/02/14(木) 22:46:13.54http://engawa.2ch.net/test/read.cgi/linux/1357699296/
844 名前:login:Penguin[] 投稿日:2013/02/14(木) 20:59:11.02 ID:OeVUytCV
>>843
うちの役所はこうだけどよそは知らないというまさに縦割りの弊害に
陥っておられる。国家運営がこんなことでいいと思いますかみなさん。
国家とOSは違うんだなんて思ってはいけません。それぞれの役割を
担う部署が一丸となって動くシステムだからこそ円滑な運営ができるんです。
つまりWindowsが優れているということなんです。Linuxが劣っているということなんです。はい論破。
850 名前:login:Penguin[sage] 投稿日:2013/02/14(木) 22:42:27.34 ID:f5i2DYt8
>>835>>836>>844
ひさしぶりだな、ダダダw
プログラマ板でコテンパンにされたので泣きながら帰ってきたのかw
0960デフォルトの名無しさん
2013/02/14(木) 22:47:07.450961デフォルトの名無しさん
2013/02/15(金) 10:32:58.97> コアとなる Visual Basic 6.0 ランタイムがサポートされるのは、Windows Vista、Windows Server 2008、
> Windows 7、および Windows 8 の有効期間、つまり 5 年間のメインストリーム サポート フェーズに、
> 5 年間の延長サポート フェーズを加えた期間となります
あと10年はVB6で戦えるね
0962デフォルトの名無しさん
2013/02/15(金) 10:54:39.47Windows BlueではVB6.0ランタイムをサポートことが社内で正式に決定された。
USでは一部報道されているが、ほとんど問題視されていない。
0963デフォルトの名無しさん
2013/02/15(金) 10:59:16.09>サポートことが
サポートしないことが
サポートされることが
どっちだよ?w
0964デフォルトの名無しさん
2013/02/15(金) 14:20:51.64VB6ってもうランタイムをインストールしなくても使える状態になってるの?
0965デフォルトの名無しさん
2013/02/15(金) 14:22:27.08http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11101991591
0966デフォルトの名無しさん
2013/02/15(金) 14:23:04.38XP SP2からできるようになっているよ。旦那。
0967デフォルトの名無しさん
2013/02/15(金) 15:04:39.670968デフォルトの名無しさん
2013/02/15(金) 16:33:04.31> セキュリティリスクをがないときってどんなときなんだ。
Webアプリケーションでプリペアードステートメントが推奨されるのは、SQLインジェクション対策の
唯一の根本対策だからだ。Webアプリケーションではその性質上、不特定多数にアプリケーションを
公開するため、攻撃される可能性も高い。
一方、スタンドアローンアプリケーションであることが多いVBアプリの場合は、不特定多数からの
攻撃は無い場合が多い。
考えられるのは、そのアプリケーションを操作するユーザが悪意を持っている場合に限る。
ここから先は、そのVBアプリがデータベースに対してどのようなデータを送るのかによる。
SQLインジェクションが起こらないようなクリーンなデータのみを取り扱えるのなら問題は無い。
また、RDBMSが機能として持っている場合のクエリキャッシュ機能や、外部ツールとして連携して
実現されるクエリキャッシュ機能を使うとき、プリペアードステートメントの場合は一部制限があったり、
全く使えなかったりする。
0969デフォルトの名無しさん
2013/02/15(金) 16:37:28.160970デフォルトの名無しさん
2013/02/15(金) 16:48:20.07機能数267×1人月=267人月
--
終わり
0971デフォルトの名無しさん
2013/02/15(金) 16:55:45.21VBプログラマ質問スレ(Ver.6.0 まで) part62
http://toro.2ch.net/test/read.cgi/tech/1360914852/
0972デフォルトの名無しさん
2013/02/15(金) 18:23:03.12まず日付の文字列なんか捨てろよ。
余計なバッファオーバーランの可能性が増えるだけだろ。
0973デフォルトの名無しさん
2013/02/15(金) 18:25:22.920974デフォルトの名無しさん
2013/02/15(金) 19:53:55.47・バリアント型が存在することの弊害について
・漢字の変数名、関数名はアリか
・新しいOSで使える凄いAPIの宣言文と使い方について
0975デフォルトの名無しさん
2013/02/15(金) 22:17:25.76スクリプト言語はだいたいバリアント型相当
0976デフォルトの名無しさん
2013/02/15(金) 22:28:13.72それはスクリプト言語とかじゃなくて、型付き言語かそうじゃないか
スクリプト言語の多くが型なしの言語だって話
ここでの論点は型付き言語にも関わらず複数の型を許容する型の存在
0977デフォルトの名無しさん
2013/02/15(金) 22:29:18.610978デフォルトの名無しさん
2013/02/15(金) 22:50:52.33基底クラスってのは
そのサブクラスの複数の方を許容するよ。
たとえば真のオブジェクト指向言語(全ての型が基底クラスObjectを継承している)なら
Object型にどんな型でも入れられる。
0979デフォルトの名無しさん
2013/02/15(金) 22:55:45.99いやだから
・バリアント型が存在することの弊害について
だろ
>>978
VB.NETでもそうだが、だからと言って変数全部Objectで宣言しろとか言うやつはいないだろ
バリアントはたまにそう言う主張する奴がいるからなぁ
0980デフォルトの名無しさん
2013/02/15(金) 23:04:09.020981デフォルトの名無しさん
2013/02/15(金) 23:30:01.370982デフォルトの名無しさん
2013/02/15(金) 23:30:50.950983デフォルトの名無しさん
2013/02/15(金) 23:31:55.86しかし宣言と同時には無理
それが限界ぽ
0984デフォルトの名無しさん
2013/02/15(金) 23:37:37.180985デフォルトの名無しさん
2013/02/16(土) 00:38:23.70おつ
0986デフォルトの名無しさん
2013/02/16(土) 03:42:50.40http://engawa.2ch.net/test/read.cgi/poverty/1360945162/
VB.NETより旧VBのほうが上だぞ
おまいら
0987デフォルトの名無しさん
2013/02/16(土) 03:45:28.690988デフォルトの名無しさん
2013/02/16(土) 03:54:40.84オールドユーザーがいつまでも手放さないんじゃよ
0989デフォルトの名無しさん
2013/02/16(土) 04:04:49.360990デフォルトの名無しさん
2013/02/16(土) 04:06:14.580991デフォルトの名無しさん
2013/02/16(土) 04:07:03.480992デフォルトの名無しさん
2013/02/16(土) 05:06:27.31なるほどね、よくわかった。
0993デフォルトの名無しさん
2013/02/16(土) 05:27:49.99/ ,――――-ミ
/ / / \ |
| / ,(・) (・) | ┌─────────
(6 つ |< んなわけネーヨ
| ___ |..└────────
| /__/ /
.....| /
\ <  ̄ ̄ ̄ ̄............./|
\.\______//
\ /
∪∪ ̄∪∪
0994デフォルトの名無しさん
2013/02/16(土) 07:33:57.99おつ
0995デフォルトの名無しさん
2013/02/16(土) 07:44:55.150996デフォルトの名無しさん
2013/02/16(土) 14:02:24.67でs1がバリアントになるのは勘弁して欲しい。
あと推論型も欲しい。
0997デフォルトの名無しさん
2013/02/16(土) 14:51:37.09素直に.NET使え
0998デフォルトの名無しさん
2013/02/16(土) 15:15:36.770999デフォルトの名無しさん
2013/02/16(土) 15:28:49.031000デフォルトの名無しさん
2013/02/16(土) 15:29:44.7710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。