14/12/22 17:58:17.03 pDmaAlZy.net
('仄')パイパイ
3:デフォルトの名無しさん
14/12/22 20:31:45.56 E8xrqwS0.net
みなさんこんばんわー
IEを操作して、新しくページに出てくるリンクに移動する処理のページ表示待機部分についての質問です。
そのサイトが重いのでページ表示に時間がかかるのでなるべく早くしたいと思ってます。
IEでの描写、画像読み込みが遅いのでそこを飛ばして、次のリンク移動処理に行きたいんです。
現在こういうページ待ちの方法なのですが、これをどうにか早くする方法はないでしょうか?
Public Function OpenWebWait() As Boolean
Try
Do While (objIE.Busy OrElse objIE.ReadyState <> SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
System.Windows.Forms.Application.DoEvents()
System.Threading.Thread.Sleep(80)
Loop
Return True
Catch ex As Exception
Return False
End Try
End Function
下のようにcompleteではなくinteractiveにしてもリンクURL取得は出来るかと思ったのですが、出来ませんでした。
これで早く次の処理に進めると新しいリンクの検知が出来ませんでした。
Do while objIE.ReadyState < SHDocVw.tagREADYSTATE.READYSTATE_INTERACTIVE
新しく現れるリンクのテキストはわかっているので、このようにも変えてみました。
これも次の処理に進むと新しいリンクの検知が出来ませんでした。
Do Until InStr(objIE.Document.Body.InnerHTML, "XXXXXXXXX") > 0
どこか間違ってる部分あるでしょうか?
それか何か良いアイディアありませんか?
VBAだとobjIE.ReadyStateではなくobjIE.document.ReadyStateというのが使えて、問題無く処理が進んで行くのですが。。
Do While objIE.document.ReadyState = "uninitialized" Or objIE.document.ReadyState = "loading"
4:デフォルトの名無しさん
14/12/22 20:33:07.42 JbUWZTgk.net
そんなもんIE使わなくてもHTMLを直接解析すればいいだろ
5:デフォルトの名無しさん
14/12/22 20:59:52.16 E8xrqwS0.net
>>4
それはどうやるんですか?
参考になるサイトか何か教えてもらえませんか?
6:デフォルトの名無しさん
14/12/22 21:04:30.82 JbUWZTgk.net
WebClientかWebRequest使ってページをリクエストするだけだよ
結果はHTMLのソースがテキストで返ってくるからそれをinnerHTMLの代わりにする
7:デフォルトの名無しさん
14/12/22 22:07:29.26 E8xrqwS0.net
>>6
ありがとうございます。
少し詳しく調べてみます。
8:デフォルトの名無しさん
14/12/23 23:40:21.90 Qjy3Ei78.net
ID:JbUWZTgkがいい奴すぎて泣けてくる( T_T)
9:デフォルトの名無しさん
14/12/25 06:03:38.63 7UFZj9g9.net
>>8
ID:JbUWZTgkさんのおかげでもう少しの所まで来ました。
また教えてもらいたいんですが、
OpenReadで読み込んだHTMLをHTMLDocumentに変換した後にDOMしようとしてるんですけど
Dim msdoc As New mshtml.HTMLDocument
Dim imsdoc As mshtml.IHTMLDocument2
imsdoc = CType(msdoc, mshtml.IHTMLDocument2)
imsdoc.write(html)
この後にMsgboxで何か表示させてからDOMするとうまくいくんですが、
Msgboxを表示させずにそのままDOM処理に進むとうまくいかないんです。
エラーが出るわけでもなく、出来るはずのDOM処理ができないまま終了するんです。
imsdoc.write(html)
の後に待ち時間が必要なのかと思って10秒スリープを入れて実行したんですけど
それでもダメでした。
Msgboxを入れると大丈夫なんですよね。Msgboxは10秒もしないうちにOKクリックして消すのに。
これなんでですかね?
10:デフォルトの名無しさん
14/12/25 07:21:38.98 dAMLPR9k.net
そんなもんIE使わなくてもHtml Agility Packでも使えばいいだろ
11:デフォルトの名無しさん
14/12/25 08:02:32.64 7UFZj9g9.net
>>10
XPathとかわからないんですよね。
正規表現もw
最初は正規表現でがんばってみようかなって思ったんですけど、、HTMLDocumentに変換して
今まで通りにDOM出来るって分かってそうしてみたんですよ。
とにかくMsgBox入れれば動くのを入れなくても動くようにどうにかできませんかね?
12:デフォルトの名無しさん
14/12/25 08:31:17.64 dAMLPR9k.net
いやパースすりゃ普通にDOM出来るだろ・・・
13:デフォルトの名無しさん
14/12/25 20:50:27.86 7UFZj9g9.net
>>9です。
HAP入れてみたんですけど
imsdoc = CType(msdoc, mshtml.IHTMLDocument2)
imsdoc.write(html)
の部分を
Dim doc As HtmlAgilityPack.HtmlDocument = New HtmlAgilityPack.HtmlDocument()
doc.Load(html)
に変えたら
doc.Load(thml)
が無効なパスとかいうエラーが出るんですよ。
どうしたらいいんですかね?
vb2010expressじゃHAP使えないのですか??
14:デフォルトの名無しさん
14/12/25 21:05:43.39 7UFZj9g9.net
>>13
事故解決しました
doc.Loadhtml(thml)
で解決でした。
15:デフォルトの名無しさん
14/12/25 22:59:49.67 7UFZj9g9.net
>>12
HAPでちゃんと動く物作れました。ありがとうございました。
てかもっと優しく詳しく教えろこの野郎!
16:デフォルトの名無しさん
14/12/26 22:43:36.02 MBLjX4KZ.net
リストボックスの一覧をテキストファイルに書き出すとき
わざわざ変数iを用意しない方法あるかしら
Dim S As String = ""
Dim i As Integer = 0
For i = 0 To ListBox1.Items.Count - 1
S &= ListBox1.Items.Item(i) & vbCrLf
Next
Dim SW As New System.IO.StreamWriter(Application.StartupPath & "\!Kekka.txt", False, System.Text.Encoding.GetEncoding("UTF-8"))
SW.Write(S)
SW.Close()
17:デフォルトの名無しさん
14/12/26 22:58:02.23 PCKPB23G.net
foreach出来るよね?
たとえ少量でも&=は使わない癖付けとくのが無難なのと、File.CreateText使えば楽だよ
18:デフォルトの名無しさん
14/12/26 23:12:29.97 1JYz2Hcm.net
いやループの中でWriteLineすればいいだろ
19:デフォルトの名無しさん
14/12/27 03:14:30.00 ygjbmPmJ.net
S &= abc
&=使わないと
S = S & abc
になっちゃう
20:デフォルトの名無しさん
14/12/27 07:22:19.51 kjN3kdaX.net
特に理由がなければ>>18が正解だが、
予め文字列でつなげておくんならStringBuilderを使え
.NETはVB6とは違っておバカちゃん向けの親切な最適化はなくて
&=額面通りの超非効率な動作をするぞ
21:デフォルトの名無しさん
14/12/27 09:51:49.24 50TSN16W.net
vbNewLineを使え
22:デフォルトの名無しさん
14/12/27 12:26:55.35 ygjbmPmJ.net
オブジェクト指向って面倒やね
23:デフォルトの名無しさん
14/12/27 14:03:09.50 xLvgagsI.net
>>22
開発時はね
保守・改修時に真の威力を発揮する
24:デフォルトの名無しさん
14/12/27 15:12:54.89 ygjbmPmJ.net
フム
25:デフォルトの名無しさん
14/12/27 17:40:08.33 wVcs56Jr.net
以前試したが7-8回までならStringBuilderの方が遅かったと思ったが
26:デフォルトの名無しさん
14/12/28 04:18:48.95 /63gf4Dq.net
VB6ってなにか最適化してたんか?
そんな器用なコンパイラだったとは思えんが
.NETの文字列はインターンプールあるから余程大量の文字列か
ループぶん回さなければパフォーマンスにそんな差は出ない
例えば10msと100msで10倍の差があるといっても現実的な問題はない
27:デフォルトの名無しさん
14/12/28 07:59:00.97 fKzSeI49.net
動的に連結した文字列がインターンプールに入ってるわけないだろw
28:デフォルトの名無しさん
14/12/29 00:22:39.80 voyDfRuT.net
>>27
URLリンク(ideone.com)
入ってんぞ
29:デフォルトの名無しさん
14/12/29 00:29:22.20 tirsBVZi.net
>>28
そりゃIntern呼んだら入るだろw
MSDNでInternの説明くらい読んでこい
あと、string同士を==で比較したら参照比較じゃなくて文字列比較になるから
internされてるオブジェクトとされてないオブジェクトの比較でも
同じ文字列なら==はtrueを返すので、全くもって無意味なテストコード(>>28の場合は同一オブジェクトだが)
30:29
14/12/29 00:30:29.43 tirsBVZi.net
ああすまん(Object)にキャストしてるのか
後ろの3行は忘れてくれ
31:デフォルトの名無しさん
14/12/29 00:39:20.76 voyDfRuT.net
32:http://msdn.microsoft.com/ja-jp/library/system.string.intern.aspx ここの説明の通りだがString.Internメソッドは別に呼び出したから登録されるものじゃなくて 参照を取得するメソッドだな 既に存在すればその参照だし、なければ新しい参照っていう記載もある通りの動作 ここの新しい参照時にはインターンプールに登録される(これも説明に載っている)が 当たり前だが参照は別もの
33:デフォルトの名無しさん
14/12/29 00:54:45.58 tirsBVZi.net
>>31
URLリンク(ideone.com)
説明通りの動作だね
当然、明示的にinternしない限りインターンプールには入ってないし、
動的に生成しようとする文字列と同じ文字列がインターンプールにあったとしても同じオブジェクトにはならない
で、これがどう>>26の言ってるようにループ内の文字列連結の効率化に寄与するんだ?
34:デフォルトの名無しさん
14/12/29 01:14:01.50 IYMGPF4r.net
WriteLineで書き込むときApend属性をトルーにする必要なくね?
35:デフォルトの名無しさん
14/12/29 01:17:36.28 voyDfRuT.net
>>32
26はループぶん回さなければって前置きあるんだし
文字列連結の効率化は別に指摘してないんでは?
36:デフォルトの名無しさん
14/12/29 01:19:22.35 tirsBVZi.net
なんで?
AppendモードでWriteLineしたら追記できるから意味あるでしょ
37:デフォルトの名無しさん
14/12/29 04:01:17.52 DfpEzH2e.net
なんでインターンプールの話になったの?
インターンプールの仕様と文字列結合の関連性が全く分からない
38:デフォルトの名無しさん
14/12/29 09:18:32.04 tirsBVZi.net
>>36
>>26によると、関連があるらしい
俺も全くわからない
39:デフォルトの名無しさん
14/12/31 19:29:37.87 H2qRSfZ0.net
プログラマーに正月なぞない
40:デフォルトの名無しさん
14/12/31 19:32:22.32 H2qRSfZ0.net
プログラマーに正月なぞない
41:デフォルトの名無しさん
15/01/01 17:35:50.16 qk+JxTAB.net
プログラマーに正月なぞない
42:デフォルトの名無しさん
15/01/03 00:35:46.62 Rsn5Rpse.net
.NETでIE操作したいんですがググってもVBAでIE操作みたいなのしか出てこなくて…
.NETでIE操作の基本的なこと学べるサイト等ありましたら教えてください
43:デフォルトの名無しさん
15/01/03 00:39:22.46 j/TgmM2H.net
WebBrowserじゃなくてIEならやることは変わらん
44:デフォルトの名無しさん
15/01/03 01:04:27.34 C22WgX+v.net
ブラウザを操作したいという要求のうち大半のケースではIEやWebBrowserは必要ない
まずは>>3-15参照
45:デフォルトの名無しさん
15/01/03 10:58:34.27 Rsn5Rpse.net
>>42
そうなんですか一度ためしてみます
>>43
これってデータ取得だけを目的にしたものなんですかね?ボタン操作とかもやりたい操作に含まれてくるのですが
46:デフォルトの名無しさん
15/01/03 11:06:47.56 C22WgX+v.net
>>44
フォームに入力してsubmitするくらいならブラウザなしで十分可能
47:デフォルトの名無しさん
15/01/06 01:57:48.98 quqXVHo5.net
WebBrowserコントロールで開くホームページでたまに
このIEが古いからダメ
みたいに言ってるけどWebBrowserをIE11とか新しくする方法って?
48:デフォルトの名無しさん
15/01/06 06:28:28.91 7iAOYuvp.net
レジストリに書く
URLリンク(www2.hatenadiary.jp)
49:デフォルトの名無しさん
15/01/06 08:41:39.13 V8MvX1Xc.net
>>46
この際、Webkitコントロールを使ってみるのもいいよ。
URLリンク(sourceforge.net)
50:デフォルトの名無しさん
15/01/06 10:09:09.84 CCgThKKS.net
NameOf、さっさと実装しろといいたい
51:デフォルトの名無しさん
15/01/06 21:42:12.63 Bc4EA3Wj.net
VBには来ないんじゃない?
そういうものが必要になるようなフレームワーク的なソフトウェアはC#で書かれる場合が多いだろうし、
VBerにその手のメタな道具を持たせるのは危険
52:デフォルトの名無しさん
15/01/07 08:15:23.95 aspvvccd.net
>>50
なに偉そうに語ってんの?
何様だよおまえ。
53:デフォルトの名無しさん
15/01/07 08:24:26.51 yytTE4BC.net
MSがVBerのスキルを低く見てるのは事実
腹立つならVBでOSSプロジェクトでも立ち上げて頑張ってみろよ
54:デフォルトの名無しさん
15/01/07 10:37:42.62 74KjfFdv.net
>>47-48
㌧
55:デフォルトの名無しさん
15/01/07 10:59:06.26 4GQP6OrP.net
vbてradなのに何偉そうに
56:デフォルトの名無しさん
15/01/14 07:07:47.94 T2fs/QrY.net
自分のサイトで.NET Framerowkのインストーラを配布するのってダメなん?
57:デフォルトの名無しさん
15/01/14 07:24:11.91 T2fs/QrY.net
ミスタイプごめん
Framerowk→Frameworkです
58:デフォルトの名無しさん
15/01/14 07:37:39.57 8Q2tOiyG.net
別個に配る分には特に問題ないけどアプリに同梱する場合はアプリのライセンスに依存する場合があるから注意
GPLとかだとダメなはず(どうやったってGPL違反になる)
59:デフォルトの名無しさん
15/01/14 08:53:45.24 T2fs/QrY.net
>>57
レスありがと
Frameworkのインストーラ単独で配布するぶんには問題無いってことですね
安心しました
60:デフォルトの名無しさん
15/01/15 01:08:42.98 SQOElXyK.net
IEで開いてるページの送信ボタンを押す、無ければ出てくるまでリロード
というプログラムを書きたくて入門サイト等みてここまで作ったのですが送信ボタンがある場合も更新が止まらない状況です
送信ボタンの指定が上手くできていないのかなと思ったのですがElse(リロード)を消すと送信ボタンはクリックできてます
間違っているところ、足りないところがあれば教えてください
For Each objTag In objIE.Document.all.tags("*****")
If InStr(objTag.id, "***") > 0 Then
objIE.Document.all("***").Click()
Exit For
Else
objIE.Refresh()
Do While objIE.Busy = True Or objIE.ReadyState <> 4
Application.DoEvents()
Loop
End If
Next objTag
61:デフォルトの名無しさん
15/01/15 07:33:21.23 658RnNUz.net
そんなアホみたいなことしないでブラウザのデバッガで送信内容を確認して
それと同じように送れ
ブラウザなんかいらん
62:デフォルトの名無しさん
15/01/15 16:21:30.21 aQzEgBEi.net
入門サイト見てるレベルの奴にそれは難しいんじゃないの
63:デフォルトの名無しさん
15/01/16 00:11:25.86 lGFhyuso.net
ブラウザ弄るほうがよっぽど難しいと思うけどな
~秒待たないと取得できないだとかアホらしいバッドノウハウじゃなくて、
正しく使えば確実に正しく動くんだから
64:デフォルトの名無しさん
15/01/16 13:51:13.39 NFiW8ozM.net
問題はそれを理解しているVBerが少ないこと
VBerにとっての難易度というのは一般的な技術かどうかやアルゴリズムの複雑さではなく
丸コピペできるか否かであるから、その意味ではHTTPを意識するような方法は間違いなく難しい
65:デフォルトの名無しさん
15/01/17 14:57:17.03 I4yazMvZ.net
複数のボタンやテキストボックスをまとめるためにつかうコンテナーって
なにがおぬぬめ?
66:デフォルトの名無しさん
15/01/20 18:42:42.72 v2eQc+ta.net
>>64
TableLayoutPanelなんてどう?
詳しくは↓
URLリンク(dobon.net)
67:デフォルトの名無しさん
15/01/20 19:55:29.05 ysSCuKrB.net
>>65
それ遅いもん
68:デフォルトの名無しさん
15/01/20 23:43:41.91 /bu/8GyI.net
遅いって意味わからん
69:デフォルトの名無しさん
15/01/29 11:29:31.23 IcF3YT4X.net
エクセルワードのマクロってVB.NETだっけか?
70:デフォルトの名無しさん
15/01/29 12:17:58.42 4dtrlCgT.net
Excelのマクロが.NETになったりしたら事務員やコボラーが理解できなくて自殺者が出る
71:デフォルトの名無しさん
15/01/29 13:11:30.75 BigDqfIu.net
そこまで違わないだろw
72:デフォルトの名無しさん
15/01/29 13:12:09.09 FWtT0sKW.net
>>69
いいんじゃない?
そういうのは死んじゃっても。
73:デフォルトの名無しさん
15/01/29 23:33:29.44 FcJzqxjH.net
主力製品のOfficeが売れなくてMSが死ぬかもw
74:デフォルトの名無しさん
15/01/30 08:23:15.01 0YV6xwSy.net
>>72
そうなったらそうなったで、自業自得でしょ。
自分でVBA排除(しかも今回だけじゃなく、過去にも何度もそういうことをやろう
として来た)した結果、売れなくて死ぬんだったら死ぬしか無い。Windowsなんて
もう要らない時代にとっくになってるからね。
で、出来たoffice onlineじゃ念願の糞みたいに低機能なVBAもソレに変わるスク
リプトもない、ゴミみたいなもので金を取ろうなんて考えてる。
75:デフォルトの名無しさん
15/01/30 08:29:12.04 BzgyBeS/.net
そういう妄想に浸りたいならVBなんて今すぐやめてWebに行け
ここはそういうのとは最も遠い世界だ
76:デフォルトの名無しさん
15/01/31 16:27:16.83 M8Z1oCo5.net
>>68
違う
でもせめてunicode対応してほしい
海外で文字化けするの止めて
77:デフォルトの名無しさん
15/02/01 11:15:55.75 foNvOyqv.net
作成したアプリのツールバー上のアイコンを右クリックすると
「タスクバーにピン留めする」って出るようにするにはどうすればいいですか?
windows8、visualstudio2010です。
78:デフォルトの名無しさん
15/02/01 14:18:51.76 2+ZNxVlD.net
ITaskbarList3の解説に
> Applications cannot programmatically pin themselves to the taskbar.
> That functionality is reserved strictly for the user.
って書いてるから無理っぽいよ
79:デフォルトの名無しさん
15/02/01 19:35:34.06 h1yaZPC8.net
WebRequestやWebClientつかってファイルダウンロードしようとしても
エラーが起こるとアプリが止まってしまって
なにかコツがあるの?
80:デフォルトの名無しさん
15/02/01 19:36:30.17 OM+Gcdnk.net
例外をキャッチしろ
81:デフォルトの名無しさん
15/02/01 20:12:53.23 h1yaZPC8.net
Try
Catch ex As System.Exception
End Try
ならもうやってるけど、
とりあえずエラーがでて長い間フリーズしないように
Dim webreq As System.Net.HttpWebRequest
webreq.Timeout = 1ミリ秒
というとても短い時間にしちゃうと接続って1ミリ秒で切られて
正常にダウンロード中のファイルまでダウンロードできなくなっちゃの?
82:デフォルトの名無しさん
15/02/01 20:16:36.61 OdJIVjGr.net
普通はマルチスレッドにする
83:デフォルトの名無しさん
15/02/01 20:18:28.83 OM+Gcdnk.net
・UIスレッドで同期ダウンロードは厳禁
・失敗したらリトライする
・リトライには上限回数を設ける
・タイムアウトは数秒~数十秒程度
このへんは鉄板
84:デフォルトの名無しさん
15/02/01 20:20:17.34 h1yaZPC8.net
それらの情報でしばらく自力でやってみるお
85:デフォルトの名無しさん
15/02/01 23:07:18.14 bJU1scv8.net
VB2010でフォーム上にSaveFileDialogを置いてファイルを保存するダイアログボックスを使おうとしてるんだけど、
ダイアログ上でファイル名を入力しようとするとIMEがグレーアウトして日本語入力ができなくなってた
SaveFileDialogって日本語入力を禁止するようなプロパティとかってあったっけ??
86:デフォルトの名無しさん
15/02/01 23:14:21.83 2+ZNxVlD.net
MS-IMEに切り替えてみたりしたらどう?
87:デフォルトの名無しさん
15/02/01 23:32:45.51 bJU1scv8.net
>>85
サンクス
IMEはWindows7標準のMS-IMEのままになってます
謎なのが同じようにSaveFileDialogを配した他のソリューションのアプリでは
普通にダイアログ上で日本語入力ができてること
そっちのSaveFileDialogとプロパティを見比べてみたけどデフォルトの拡張子とか
フィルター表記以外は特に変わってないんだよなあ・・・
88:デフォルトの名無しさん
15/02/01 23:39:17.19 P6Wv1Uek.net
全くわからんがデフォのスレッドをそのまま使ってる状態だよね
89:デフォルトの名無しさん
15/02/02 07:25:08.35 EGOZhIE+.net
コードでやってみれば?こことかコピペして。
URLリンク(dobon.net)
90:デフォルトの名無しさん
15/02/02 19:25:32.02 00LF49Zn.net
自分がアプリ作ると.exeファイル1コだけですむんだが
なんで他の人たちのアプリって他のファイルやフォルダがたくさんあるの?
91:デフォルトの名無しさん
15/02/02 19:41:41.04 IyEMtZTY.net
どこの小学生の質問だよw
92:デフォルトの名無しさん
15/02/02 20:08:56.79 S92C7QSo.net
すごいなmscorlib.dllとかkernel32.dllとかも無しで行けるとは
93:デフォルトの名無しさん
15/02/02 20:56:26.92 amIgz+r+.net
exe1個じゃ格好付かないからな
94:デフォルトの名無しさん
15/02/02 23:55:06.38 N5droHhS.net
>>87-88
サンクス
BackgroundWorkerは使ってるけどその中でSaveFileDialogは呼んでないので大丈夫なはず・・・
コードコピペはちょっと試してみる
ちょっと立て込んでてすぐ試せないけど結果分かったら報告します
95:デフォルトの名無しさん
15/02/03 01:46:23.82 vRq5Ftdw.net
ブラウザコントロールを貼り付けたブラウザアプリ
リッチテキストを貼り付けたテキストエディタ
ボタンを押すとHalo Worldが表示されるアプリ
この3つのアプリから同じ変数にアクセスしたい場合
変数を宣言する場所や記述方法ってなにかしら
その共通変数をEndFlgというIntegerにして、
EndFlg = 1だったらアプリが閉じて、0なら終了できないようにしたい
96:デフォルトの名無しさん
15/02/03 13:09:31.90 6cK/fLMw.net
もう意味がわからないよ!
変数宣言とかはおいといて、3アプリから共通のフラグを監視して~ってなら
プロセス間通信しないとダメだぬ。
共有メモリとかまぁそういうの。
一番単純なのならファイルでやってもいいかもな。
どっかのフォルダにEndFlgって名前のファイル作ってファイルがあれば1
ファイルが無ければ0とかそんなんで。
97:デフォルトの名無しさん
15/02/03 13:13:52.89 dnL9qhvp.net
ポエマーきもっ、まで読んだ。
98:デフォルトの名無しさん
15/02/03 16:39:07.05 vRq5Ftdw.net
SSDならテキストファイルにフラグ書き込んで頻繁に読みに行ってもいっけど
ハードデスクだからアクセスしすぎるとこわれそう
とおもったがUSBメモリやRAMデスクならフラグ用こわれてもいい用として
なんてひらめいた さすがオレ
99:デフォルトの名無しさん
15/02/03 17:18:24.31 LXCDBIZ8.net
頻繁に書き込むようならメモリ上で済む方法がいい
100:デフォルトの名無しさん
15/02/03 23:34:56.44 v4ynt3Yv.net
名前付きイベントオブジェクトがプロセス間で共有できる1ビット変数になるよ
101:デフォルトの名無しさん
15/02/03 23:48:29.71 v4ynt3Yv.net
.NETの同期オブジェクトの記事ってなんかろくなのがないな
MSサイトの回答
102:でファイルとか答えてるバカがいるし
103:デフォルトの名無しさん
15/02/04 01:53:36.33 +fWAhub0.net
コピペできるコードがないとわからんよ
104:デフォルトの名無しさん
15/02/07 13:27:34.36 3kHIPM6S.net
あらかじめ、起動を許すプロセスを定義しておきます。
それで常駐起動させてプロセスを監視して、定義に当てはまらないプロセスが起動されよう
とした場合に警告を出し、プロセスを起動させないようにしようと思います。
こんなアプリケーション作るのってVB.NETで可能でしょうか?
105:デフォルトの名無しさん
15/02/07 13:39:43.10 UxV2OHq5.net
そんなものは企業向けに腐るほど世にあるので今更あなたが中途半端なものを作る意味はありません
106:デフォルトの名無しさん
15/02/07 15:39:37.15 pGoj+FY2.net
>>89
合体した方がカッコいいから
107:デフォルトの名無しさん
15/02/08 10:54:17.83 oN6GjBe8.net
最近ずっと合体してないなぁ
108:デフォルトの名無しさん
15/02/08 11:35:05.43 Wac/ZBhZ.net
組体操かな?
109:デフォルトの名無しさん
15/02/08 11:40:36.03 7++NHH4w.net
合体て言葉って意味深やねw
110:デフォルトの名無しさん
15/02/08 17:31:50.26 Pqa9OIVd.net
>>102
まずはポリシーで対応できないか考える
URLリンク(www.atmarkit.co.jp)
起動されようとするのを検知するのは無理じゃないかな
起動されたものを検知して落とすとかはVB.NETで作ったことあるけど
その常駐プログラムが落ちたり落とされたりしたときにどうするかは検討しておく必要がある
111:93
15/02/08 19:28:30.22 3fUOsVIs.net
>>93のその後報告
コードコピペも試してみたけどやっぱりIMEが無効化される
ググってみて元フォームのImeModeプロパティを弄ったけどダメだしもはやお手上げ状態
諦めてこのままリリースするしかないのか・・・
112:デフォルトの名無しさん
15/02/08 20:43:23.39 Wac/ZBhZ.net
>>109
ドボンのサンプルがダメだったの?
ならPCぶっ壊れてるんだな
113:デフォルトの名無しさん
15/02/08 21:08:29.97 fRu40z/L.net
実行ファイルの名前を替えるとか、違うマシンで試してみるとかで解決するかもね
7(かVista)以降だと一度実行したアプリの起動時の情報がOSのどっかのキャッシュに残るから
114:デフォルトの名無しさん
15/02/08 21:58:30.02 I48deLh3.net
>>84
フォームのIMEModeは?
115:デフォルトの名無しさん
15/02/08 21:59:29.72 I48deLh3.net
あ、109ちゃんと見てなかったゴメン
116:デフォルトの名無しさん
15/02/09 00:42:51.71 7s3ye5Wx.net
>>110
ところが別プロジェクトで作った同じようなアプリ(フォームにSaveFileDialogが載ってる)では
全然問題が出てないから首を捻ってるとこ
試しにソリューションのフォルダを丸ごと別のPC(OSとVSのバージョンは同じ)に移してそっちで開いてみたけど
やっぱり現象は変わらず・・・
>>111
実行ファイルの名前はビルド時からは変更してるけどやっぱりダメだった
ググってもそのものずばりヒットしないってことはかなりレアな現象なんだろうか・・・
それともソリューションがどっか壊れてるんだろか(´・ω・`)
117:デフォルトの名無しさん
15/02/09 05:46:35.62 Qr3WwpBc.net
>>114
ちゃんとした環境書かんとあんまり信用できんが
とりあえずコードどんどん削って行ってためしてみたら?
ミニマムコードまでけずってどっかに上げたらだれか検証するかもな
全然関係ないかもしれんが、IEでたまにIME効かなくなるな
あれ何でだろ
118:デフォルトの名無しさん
15/02/10 00:28:00.46 VLkhPein.net
>>115
ミニマムコードか・・・
コントロールも数十個、コードも数千行あってかなり大変だけどやるしかないか
時間ある時にちょっと試してみる
119:デフォルトの名無しさん
15/02/10 08:22:10.05 heT23+HR.net
>>116
バージョン違いとか、参照できなくなってるとか、この手の問題は尽きないね。
120:デフォルトの名無しさん
15/02/11 16:23:02.84 iYhDY2V0.net
>>108
ありがとうございます。
ポリシーでもホワイトリスト形式で制御できるようですので、それで考えてみます。
121:デフォルトの名無しさん
15/02/11 16:23:41.33 iYhDY2V0.net
>>108
ありがとうございます。
ポリシーでもホワイトリスト形式で制御できるようですので、それで考えてみます。
122:デフォルトの名無しさん
15/02/14 13:31:33.84 kJEZEWAw.net
新しいプロジェクトを開始するときに日本語名にしちゃうと
ルート名前空間が日本語だけど
問題起こらないの?
123:デフォルトの名無しさん
15/02/14 14:00:37.55 +hP1b/fG.net
普通に使う分には問題ないよ
普通じゃない使い方はとりあえず思いつかない
124:デフォルトの名無しさん
15/02/14 14:07:08.82 QZdIRAT/.net
ルート名前空間なんて無名にするのが常識。
125:デフォルトの名無しさん
15/02/15 07:27:37.38 owr1gyhb.net
プロジェクトの設定で名前空間は変えられる
126:デフォルトの名無しさん
15/02/16 19:23:19.60 kuA7wMLp.net
じゃあ気分転換で韓国語とかの名前で新規開始すると何が起こるの?
127:デフォルトの名無しさん
15/02/16 20:53:26.33 /dxaPFxY.net
ネトウヨが怒る
128:デフォルトの名無しさん
15/02/21 18:31:38.02 il0zF3IU.net
WebBroserコントロールで全国の皆にコントロールがIE11になるように
レジストリ書き換えてもらうの大変だけどなんとかならんかな~
129:デフォルトの名無しさん
15/02/21 21:42:15.46 4mu4QEka.net
アプリのインストール時なり起動時なりに書き換えれば良いだろ
130:デフォルトの名無しさん
15/02/22 16:44:50.93 1sPvq0JE.net
MSDE2000と.NET1.1で作ってたシステムで
サーバーだけをとりあえずSQLEXPRESS2008にしたいんだけど
.NET1.1の方から接続できない
もしかして.NET1.1とSQL2008って互換無くなった?
131:デフォルトの名無しさん
15/02/22 20:23:37.20 ZNqeiudP.net
>>128
最低限、何で接続してるかぐらい書かんとわからんが
URLリンク(msdn.microsoft.com)(v=sql.100).aspx
>SQL Server 2008 は、 (略) SQL Server Native Client のすべてのバージョンからの接続をサポートします
この時点で2000がサポートされてたかどうかは知らんが、動くことは動くんじゃね
132:デフォルトの名無しさん
15/02/22 22:35:05.20 O0Ltf4zh.net
Expressの鯖側でtcp/ipの接続許可にし忘れてるんじゃね?
133:デフォルトの名無しさん
15/02/22 22:58:51.80 1sPvq0JE.net
>>129
アリガトン
VSでT-SQLのデバッグをするようにしてたんだけど
そいつが邪魔をしてエラーを吐いてたみたいでした
(sp_spidbugがありませんというエラー)
ポン付け移行が出来るかと思ったけど結構大変そうです…
134:デフォルトの名無しさん
15/02/22 23:00:13.95 1sPvq0JE.net
>>130
リロードし忘れてた
それにも引っかかった…
システムエラーってメッセージしか出ないから
予想外のエラーは全部拾わないといけなくなったorz
135:デフォルトの名無しさん
15/02/22 23:21:18.63 O0Ltf4zh.net
VB6→SQL2008も普通に出来てるから
なにかショボイ設定ミスだと思うけどなぁ
136:デフォルトの名無しさん
15/02/22 23:34:28.33 x/RqYl5g.net
同じマシンならファイアウォールは関係ないだろうし…
137:デフォルトの名無しさん
15/02/23 04:52:38.41 18jca859.net
同じマシンでもファイアウォールではじかれる事はあるぞ
どこにも同じマシンだとは書いてないが
まあ環境も接続方法もちゃんと書かんやつの話はこれ以上しても無駄だが
138:デフォルトの名無しさん
15/03/03 14:49:04.97 YwWND8wU.net
DataAdapter生成ウィザードで生成されるコード(クエリ)が、
短いとき=フォーム名.Designer.vbファイル
長いときは=フォーム名.resxファイル
に生成される、これを必ず.resxファイルに生成させる方法は無いのか?
クエリの長さによって自動生成される場所が違うが、その閾値とかを設定するとか無いでつか?
139:デフォルトの名無しさん
15/03/03 19:47:30.03 zUl1Hnpn.net
VB2010を使っています。
SQLserver2008のテーブルにDataBindしたTextboxがあります。
データ型はDatetimeです。
Nullを代入する方法がわかりません。
hoge.text = "9:0:0"
のように書けば、その値はデータベースに反映されるのですが、
hoge.text = null
だとうまくいきません。
データベースをNullに書き換える方法はありませんか?
140:デフォルトの名無しさん
15/03/03 19:56:51.32 jxjdNRE0.net
>>137
DBNull.Value
141:デフォルトの名無しさん
15/03/03 20:10:02.25 zUl1Hnpn.net
>>138
早速お返事いただきありがとうございます
それも試してみたのですが、
型 'System.DBNull' の値を 'String' に変換できません。
というエラーが出てしまいます。
142:デフォルトの名無しさん
15/03/03 20:59:01.48 /jU4FTXo.net
>>137
>hoge.text = null
>だとうまくいきません。
そこはせめてNoting
Nullデータの表示だけなら
>>URLリンク(msdn.microsoft.com)
で出来る
書き戻しは無理じゃなかったかな
調べた範囲では、Parse上書きしろってあるな
>URLリンク(blogs.msdn.com)
143:デフォルトの名無しさん
15/03/03 21:30:52.67 zUl1Hnpn.net
>>138
>>140
お返事いただきありがとうございます
Timespan型のバインドしたTextboxではなく、直接
datagridview1.Rows(y).Cells(x).Value = DbNull.Value
のように書いてみたところ、エラーは出ませんが無視されます。
varchar型のフィールドに代入してみると、空文字が入りますがNullではないようです。
SQL Server Management Studio から直接なら Ctrl+0 でNullが入れられるのですが、
VBからそのようなことをするのはやはり不可能なのでしょうか?
144:デフォルトの名無しさん
15/03/03 21:53:38.09 memkJefR.net
普通に直接SQL発行したらええがな
145:デフォルトの名無しさん
15/03/03 21:56:29.85 CN+APPLy.net
アホだよねー
146:デフォルトの名無しさん
15/03/03 21:59:41.55 YwWND8wU.net
Table自体にDBNULL.Value入れればいいのでは。
147:デフォルトの名無しさん
15/03/03 22:33:39.82 jxjdNRE0.net
>>139
System.DBNull.Value.ToString
148:デフォルトの名無しさん
15/03/03 23:05:33.98 zUl1Hnpn.net
137です
いろいろとご意見をありがとうございます
>>145
確かに >>139 のエラーはでなくなりましたが、
やはり無視(スロー?)されるようです。
>>144
それはどのようにするのでしょうか。
>>141 の方法以外ということでしょうか?
>>142 >>143
それは BindingSource などを使う方法では不可能であることを教示されているのでしょうか。
いろいろな型の値は代入できる中で、Nullだけはやはり例外なのでしょうか?
149:デフォルトの名無しさん
15/03/04 03:09:09.84 oIBa2qDc.net
>>146
>>140のリンク先はみたのか?
Parse上書きでやってダメだったのか?
150:デフォルトの名無しさん
15/03/04 08:24:35.87 MW1XoZym.net
137です
皆さん、いろいろとありがとうございました
結論から言うとうまくいきました(*^_^*)
140,147さんのParse上書き という言葉がヒントになりました。
リンクの説明を何度も読み返しているうちに、
やはりDataGridViewを直接いじればなんとかなるはずと思いました。
プロパティのReadOnlyを外したら、
datagridview1.Rows(y).Cells(x).Value = DbNull.Value
でデータベースを書き換えることができました。
当たり前という突込みがありそうですが、
Textboxだと、コードで書くとReadOnlyでも書き換えられるので、
そこが盲点でした。
お世話になりました
皆さん、ご親切にありがとうございました
151:デフォルトの名無しさん
15/03/05 10:40:52.72 nliaf8Pd.net
VB2010を使ってACCESSのDB(mdbとaccdb両対応にしたい)を生成及び操作を
したいと思っているのですが、OLE DB、DAO、ODBC、ACE?といろいろ出てきて、
どれを使うべきなのかわかりません。
結局どれでもできる、と言われればそこまでなのかもしれませんが、昨今流行の
方法はどれなんでしょうか?
目の前の箱に聞いたら、どの方法もつカエルっぽい事が書いてあって、どれが
作りやすいとか、どれが早いとか、あまり書いていないので質問させてください。
152:149
15/03/05 10:43:53.27 nliaf8Pd.net
OSはWindows7Pro-32Bit
WindowsFormアプリです。
153:デフォルトの名無しさん
15/03/05 12:37:25.63 u1lvzFxf.net
>>149
ADO.Net
154:デフォルトの名無しさん
15/03/05 17:36:19.79 5TIZHQWb.net
>>149
DAO
155:デフォルトの名無しさん
15/03/05 23:24:34.18 KUQpM/Y4.net
どうせ後で書き直すからそのつもりで設計してあればなんでもいいよね
最新の使っとけばおk
156:デフォルトの名無しさん
15/03/06 00:00:06.77 W7nIIvOl.net
OLE DBかODBCでメモ帳をつかってちょっとしたWebページを作るぐらいしたことがないとわからんだろーなー
157:デフォルトの名無しさん
15/03/20 11:11:55.62 j37DXh6X.net
どうせならASP.NET MVCとEFで作れよ
全部時代遅れ
158:デフォルトの名無しさん
15/04/06 23:48:30.10 XIlT0zf2.net
未だにデータセット使ってるんだけど、エンティティフレームワークって便利なの?
イマイチどんなものかわからない
データテーブルの列が動的に増やせるのが便利なんだ
159:デフォルトの名無しさん
15/04/07 00:02:30.24 1BnTCMqM.net
別に真新しいものじゃない
単なるO/Rマッピングの1つだよ
160:デフォルトの名無しさん
15/04/08 08:19:41.60 KfKZXHWS.net
新旧ソースコードの比較をテキストファイル比較でやってるんだが、
デザイナにたくさんのコントロールを並べるてると、
プロパティを1つ変更しただけでデザイナ自動生成のコードが広範囲に変更されてしまい、
新旧ソースコード比較しても実際の変更箇所がわからなくなるんだが、
なんかいい方法ないんかな。
161:デフォルトの名無しさん
15/04/08 08:57:28.05 rJ1QxPv7.net
デザイナからの修正が少なければだけど
出力ソースもそうそう大きく変わらないはずだよね
162:デフォルトの名無しさん
15/04/09 21:50:21.91 kbiH5k/G.net
その比較ツールが馬鹿なんだろ
まともなVCSを使いましょう
163:デフォルトの名無しさん
15/04/09 22:08:24.77 6lcuH+NE.net
クライアント系のアプリはwindowsFormからWPFに移ったほうがいいのかね?
それともjavaとかに変えたほうがいいんだろうか
164:デフォルトの名無しさん
15/04/09 22:33:33.47 kbiH5k/G.net
Javaは論外としても、クライアント系のアプリ自体もう終わりだから
Web(ASP.NET MVCとか)へどうぞ
165:デフォルトの名無しさん
15/04/09 23:27:57.76 +0jSp5ns.net
最近はクライアントアプリよりAPIの方が喜ばれるね
デジタルネイティヴ世代が台頭してきて仕事がやりやすくなった
166:デフォルトの名無しさん
15/04/09 23:49:44.14 6lcuH+NE.net
Web嫌いなんだよなぁ・・・
スマホのネイティブに移行しようかな
167:デフォルトの名無しさん
15/04/10 06:37:41.23 oD2NKF6i.net
自由に言語選べるならなんでVBなんか使ってるんだ
WPFやASP.NET MVCなんかC#の情報しかないしC#ならスマホもいけるだろ
168:デフォルトの名無しさん
15/04/11 12:24:20.14 /0uJGtCQ.net
VB2010を使っています。
DataGridView で指定したセルの値を取得する場合、
DataGridView1.Rows(row).Cells(column).Value
と記述すると問題ないのですが、
DataGridView1.Rows(row).Cells("列名").Value
と記述すると「"列名"という列は見つかりません」とエラーになります。
columnを数値で記述しておくと、
後々列を入れ替えたり追加したときに支障が出るので、
できれば明示的に列名で書きたいと思います。
Visual Basic 中学校の掲示板にはできるようなことが書いてあるのですが、
何か工夫が必要なのでしょうか?
169:デフォルトの名無しさん
15/04/11 13:33:18.93 HEz7ClCj.net
いや、↓でやったがエラーでなかったぞ。
Private Sub Button9_Click(sender As System.Object, e As System.EventArgs) Handles Button9.Click
Dim row As Integer = 0
MsgBox(DataGridView1.Rows(row).Cells("頭数").Value)
End Sub
ただのカラム設定ミスかなんかだろ。
DataGridView1.Columns.Add("頭数", "頭数") ’これでカラム追加してみ
170:デフォルトの名無しさん
15/04/11 18:02:48.73 /0uJGtCQ.net
>>167
166です
早速お返事いただきありがとうございます
DataGridView はデータソースにDataSetでSQLサーバをバインドしています。
DataPropertyName , HeaderText いずれをCellsにいれてもエラーになります。
同じようなエラーについてのブログがありました。
URLリンク(jehupc.exblog.jp)
データベースをバインドしているときの列名の指定方法に問題があるのでしょうか?
171:デフォルトの名無しさん
15/04/11 20:23:28.88 HEz7ClCj.net
DataSetっていうのをSQLサーバは使う仕様なのかな。
私の場合はMySQLをDataTableに入れて
DataGridViewに表示したものを>>167のコードで試したが問題なかったよ。
普段はDataTableすら使わないでDBからデータ引っ張ってくるから
私には、これ以上はなんとも言えない。
172:デフォルトの名無しさん
15/04/11 23:23:12.11 2een8dzO.net
クエリごとにいちいち構造体定義して配列にしてDataReaderから1行1行コピーしてる僕って異端ですか?
173:デフォルトの名無しさん
15/04/12 02:12:31.67 CUiaWyAv.net
超複雑なデータ加工をする場合にはDataReaderから1行1行だよね
174:デフォルトの名無しさん
15/04/12 05:50:11.50 LsxaMXpP.net
DataGridViewが相手ならDataTableを使うのは日常茶飯事
175:デフォルトの名無しさん
15/04/16 16:54:22.55 5bXdAdIY.net
visual web developer 2010 expressで作成したプログラム(.aspxファイル)を直接実行する方法を教えてください。
176:デフォルトの名無しさん
15/04/16 17:21:44.31 ZKnvpEIv.net
直接は無理
177:デフォルトの名無しさん
15/04/16 17:21:51.76 feErdMbh.net
C#があるのに、なんでVB.NET使うの?(´・ω・`)
178:デフォルトの名無しさん
15/04/16 17:25:57.68 ZKnvpEIv.net
生産性が高いから
179:デフォルトの名無しさん
15/04/16 17:38:47.73 5bXdAdIY.net
>>173です、自己解決しました。
IISの設定をwebで見付けた指示通りに設定して、指示されたフォルダに実行したい.aspxファイルを入れて、
ブラウザからURLリンク(localhost)を開いたら出来ました。
180:デフォルトの名無しさん
15/04/16 18:41:58.90 ZKnvpEIv.net
それを直接というのは斬新だな
181:デフォルトの名無しさん
15/04/16 19:33:29.23 9hDbcJNA.net
>>178
有償版のVSだとコンパイラでEXE化したり、インストーラを作成したり出来るのでしょうか?
182:デフォルトの名無しさん
15/04/16 22:26:33.49 n/Sv94h6.net
>>175
C系アレルギーのバカドカタが多いから
183:デフォルトの名無しさん
15/04/16 23:39:46.22 HRSNpUJy.net
最近はC#と大きな差はないでしょ
ほとんど好みの問題だよ
おじさんは目が悪くてオペレーターが判別しにくいからVB好きだよ
184:デフォルトの名無しさん
15/04/17 04:11:05.36 sOCqdERP.net
俺なんかVBしか使った事ないw
185:デフォルトの名無しさん
15/04/17 20:25:09.04 9X3vUaHq.net
C#の案件見たことないんだけど、どこで使われてるの?
186:デフォルトの名無しさん
15/04/17 20:35:09.30 KxS0evdx.net
エンドユーザーが開発言語を指定する案件は、VB6の継続メンテ以外では
聞いたことないよね?(´・ω・`)
187:デフォルトの名無しさん
15/04/19 10:47:47.26 8uwk4Kg8.net
いちおC++書ける人だけど
C#はwithが使えないからVB.NETで書いてる
188:デフォルトの名無しさん
15/04/20 13:50:03.71 jqc00R5c.net
下記ふたつのボタンでデータの読み書きをする場合の書込ボタンの処理について教えてください。
読込ボタン:
189:データを読み込んで表示 書込ボタン:テキストボックスのデータを書き込む,書込確認の為データを読み込んで表示 書込プロシージャでは書込処理の後、読込は読込ボタンプロシージャをを呼び出したいのですが、 Private Sub btn読込_Click(sender As Object, e As EventArgs) Handles btn書込.Click,btn読込.Click としても先に読込処理が行われてしまいます、後から読込処理をする記述方法はないのでしょうか?
190:デフォルトの名無しさん
15/04/20 13:56:07.60 BqyMR2cW.net
>>186
イベントではなく、書き込み処理の最後に読み込み処理を呼べばいい。
191:デフォルトの名無しさん
15/04/20 14:00:21.97 jqc00R5c.net
>>187
VB6からの移行中なので出来ればイベントで使い回したかったのですが、素直に読込処理だけ独立させます。
即レスありがとうございました。
192:デフォルトの名無しさん
15/04/20 14:03:14.05 5YnvOOG8.net
まず、btn読込_Click()をClickイベントと無関係に実行できる部分とClickイベントで
実行しなければならないものに分け、イベントで必要な処理はそのまま、イベントと
無関係な処理をサブルーチン化します。
書き込み処理からサブルーチン化した部分を呼びます。
めでたしめでたし。
193:デフォルトの名無しさん
15/04/20 14:11:58.86 jqc00R5c.net
>>189
読込ボタン:CALL読込
書込ボタン:書込処理,CALL読込
読込:読込処理
上記のようにってことですよね?
.NETでは、書込ボタンも書込処理をコールするなど、イベントでは処理をせずに処理ルーチンを呼ぶだけにするようにすべきなのでしょうか?
194:デフォルトの名無しさん
15/04/20 14:35:00.05 5YnvOOG8.net
いいえ違います。
読込ボタンイベント:
イベントの為の処理1
読込処理CALL
イベントの為の処理2
のように処理を分けておくということです。実際には1や2でやる事がなければ
おまいさんが書いたのにちかい形になるだけです。
195:デフォルトの名無しさん
15/04/20 14:51:21.21 jqc00R5c.net
>>191
理解出来ました、ありがとうございました。
196:デフォルトの名無しさん
15/04/20 14:56:57.85 sU+V3nDv.net
>>186
この訳の分からん文章を読んで理解できるってエスパーかw
俺には何言ってるのかさっぱり分からん
197:デフォルトの名無しさん
15/04/20 15:17:10.60 jqc00R5c.net
>>193
発生したイベントだけに必用な処理はそのイベントにコードを書き、汎用性のある処理は独立したメソッドを作成すると捉えました。
実際には、後からイベントプロシージャを使いたくなるケースも割と多かったのでその都度メソッド化する手間が増えそうです。
198:デフォルトの名無しさん
15/04/20 17:18:44.51 Otws5PQm.net
ん??
上で書かれてるように、処理をサブプロシージャに分けるのが妥当だとは思うが、
VB6からの移植でイベント関数をそのまま別からコールしてるのを多用してる
ので出来ればイベント関数コールでやりたいって事だよね?
なら、普通に
書込みイベントの中から読込のイベント関数コールしてやればいんでないかい??
VBと同じようにさ。
Clickはイベント引数も幸いただのEventArgだし、そもそも使ってないっしょ。
SenderはMeにしとけばよくね?
199:デフォルトの名無しさん
15/04/21 00:21:52.32 J6D2ONpq.net
それでも動くとは思うけど、やってはダメなんです
理由はググってね
200:デフォルトの名無しさん
15/04/21 01:00:11.26 5FSDwPAz.net
VBではイベントにガリガリコード書いたりイベントを普通にコールするのが礼儀作法です
VB6でもVB.NETでもこの文化は変わりません
ビジネスとUIを疎結合にする場合はC#への移行を検討しいてください
201:デフォルトの名無しさん
15/04/21 06:15:17.43 S+IOGdOB.net
全くもって同意
やってはダメとか言いだしたらVBの存在自体が間違ってることになるからな
C#にあってVBにない機能のほぼ全ては「やってはダメ」
202:198
15/04/21 06:17:00.98 S+IOGdOB.net
すまん逆だな
VBにあってC#にない
203:デフォルトの名無しさん
15/04/21 07:59:02.96 J6D2ONpq.net
VB、C#関係なく、やってはダメな書き方なんですよ
204:デフォルトの名無しさん
15/04/21 08:06:57.44 S+IOGdOB.net
なら
・DoEventsはやってはダメ、スレッドを使いなさい
・デフォルトインスタンスを使ってはダメ、インスタンスは自分で管理しなさい
・コントロールのアクセスレベ
205:ルは全てprivateにしなさい ・フォームに処理を書くのはやめてモデルを別のクラスに分離しなさい ・なお、モデルはGUIに依存してはいけません、コントロールを渡すなどもってのほかです ・モジュール変数はやめなさい ・VB関数はすべて使用禁止です こんなもんVBの意味あるか?
206:デフォルトの名無しさん
15/04/21 08:26:15.45 8iNNYrWP.net
>>201
そんなVBはイヤだw
207:デフォルトの名無しさん
15/04/21 08:45:03.31 J6D2ONpq.net
>>201
飛躍し過ぎですよ
イベントハンドラの処理が必要な時に、直接イベントハンドラをコールするのはダメな書き方、と言っただけですよ
更に言えばこの議論はVB6の頃から言われてますよ
208:デフォルトの名無しさん
15/04/21 09:08:09.36 h/N0nZwJ.net
>>203
なんでダメなん?
209:デフォルトの名無しさん
15/04/21 09:42:05.60 J6D2ONpq.net
>>203
一番の理由はバグの温床になりうる、からですね
VB6の頃は悲惨でしたよ
今ほどリファクタリングが利かなかったのでコントロールに変更が入った時に修正漏れが出たり
別フォームから直接コールされてた時は泣きましたよ
.NETになってからはマルチキャストに対応したので更に危険ですよ
後はメソッド名から何の処理かを判断できないのでデバッグが困難になりますよ
他にも理由は色々あります、後はググって下さいね
210:デフォルトの名無しさん
15/04/21 09:50:08.97 Ys0gBcPs.net
つまり、面倒をみきれるなら何をやっても構わんのです(キリッ
211:デフォルトの名無しさん
15/04/21 09:55:32.91 8iNNYrWP.net
痛みさえ無ければ、、、、
バグさえ無ければ、、、、
寿命さえ無ければ、、、、
212:デフォルトの名無しさん
15/04/21 21:57:55.88 5FSDwPAz.net
今を生きるだけのために戦う
全てのVB使いが暗黙に共有する既定の信念である
213:デフォルトの名無しさん
15/04/22 16:28:38.32 VE7nrKA9.net
>>202
えー?これが普通じゃないの
俺、基本的にこんな感じで実装してるぞ
214:デフォルトの名無しさん
15/04/22 17:42:19.81 2TAAYMyP.net
>>209
マジかよ!?
でも、モジュールとか関数は使ってはいるんだよね???
215:デフォルトの名無しさん
15/04/22 18:44:49.23 VE7nrKA9.net
>>210
モジュールは使ってるけど、Static クラス扱い
あとVB関数ってどこか使うとこある?いらないじゃん
216:デフォルトの名無しさん
15/04/22 21:05:19.38 fYa+b5tV.net
>>201は極めて正しいけど、それができるならC#使ったほうが幸せになれるんじゃない?
217:デフォルトの名無しさん
15/04/22 21:19:46.20 jkp6++rG.net
>>211
Cxxx変換関数とか、文字列操作とか
VB関数使わんのならそれこそC#で良いわ
なんて未だにVB使ってるの?
218:デフォルトの名無しさん
15/04/22 23:09:04.06 lkbyJSkm.net
↑ 初心者用プログラミング言語だからです。
IT土方が弄る言語ではありません。あしからず!
219:デフォルトの名無しさん
15/04/22 23:10:14.86 qOFDFxcG.net
お偉いさんがVB好きなんやろ
MSがVB切らないから…
220:デフォルトの名無しさん
15/04/22 23:46:37.12 bceytHgv.net
unsafeじゃないならC#も変わらないだろ
ILに変な処理入ったりして実行効率は僅かに悪いが気になる程でもないし
221:デフォルトの名無しさん
15/04/23 00:21:59.04 XWDL07gH.net
>>216
C#を分かってる人がVB使えば同じかもしれないが、逆なら全然違うだろ
VB関数とかデフォルトインスタンスとかOn Error Gotoとかモジュールとか頭の悪い機能は一切無いんだから
222:デフォルトの名無しさん
15/04/23 00:27:49.44 J7PhUCRs.net
デフォルトインスタンスや標準モジュールを問題にするならまだわかるが
VB関数を問題にする意義がわからん
ILコードを問題にするのは、高級言語やめてアセンブラ使えよという理論と同じだぜ
223:デフォルトの名無しさん
15/04/23 00:38:37.02 XWDL07gH.net
・いい加減な動作をするものが多いからバグの原因になりやすい
・同じことをするのに複数のやり方があり、C#との間に限らずVBerの間でもコミュニケーションを阻害する
そもそもVB関数の多くは昔のVBに似せるために存在しているだけで
.NETの標準の機能で簡単に代替できるものがほとんどだよ
224:デフォルトの名無しさん
15/04/23 00:51:17.20 6GsGzyLx.net
もうVBの役割は2005までで終わった。
ラムダ式なんかVBで使ってられるかって。
225:デフォルトの名無しさん
15/04/23 06:31:01.80 ByhSkjeb.net
VBのラムダ式はアンチタイプセーフみたいな機能があるしな…
226:デフォルトの名無しさん
15/04/23 08:11:17.60 gr9AedHH.net
書く人間の品質がおなじならC#よりコードが読みやすい
227:デフォルトの名無しさん
15/04/23 08:16:35.83 IqIQY88q.net
それはC#が優れてるというより、C#ならVB専の無能が排除されるから
228:デフォルトの名無しさん
15/04/23 10:43:38.65 rJvB44DV.net
>>213
案件の仕様です
まあ、俺にとってはC#もVBもあまり変わらん
C#は好きだけど、VBも嫌いじゃないよ
229:デフォルトの名無しさん
15/04/23 10:48:49.39 gPb+ikvR.net
とにかくC系は{}見ただけで吐き気がする
230:デフォルトの名無しさん
15/04/23 11:10:26.73 JbeTZyD4.net
逆にVBはEnd~を{}にするだけで見づらいと言う人はだいぶ減ると思う
231:デフォルトの名無しさん
15/04/23 11:23:13.60 gr9AedHH.net
Endのが遥かに見やすい
C#も{}なんてやめればいいのに
232:デフォルトの名無しさん
15/04/23 11:29:58.01 XtTem2iL.net
じゃあ、両方の良い所をとって、両方ともなくそうよ?(´・ω・`)
で、閉じ位置がわかりにくなるからインデントだけでチェックするように変えようよ?(´・ω・`)
233:デフォルトの名無しさん
15/04/23 12:15:49.43 XWDL07gH.net
C系アレルギーの人ってC#はともかくJavaもJavaScriptも使えないの?
言語の違いなんてくだらないことで仕事の幅狭めすぎじゃね
234:デフォルトの名無しさん
15/04/23 12:43:33.97 rJvB44DV.net
>>229
まったく
Lispに比べりゃ遥かに簡単じゃんかw
235:デフォルトの名無しさん
15/04/23 12:46:40.36 p3JJN9OR.net
VBと比べろw
236:デフォルトの名無しさん
15/04/23 12:46:51.27 rJvB44DV.net
VB・C#・JS・XAML・SQL・HTML・CSSがある程度使えれば、当面食い扶持維持できると思われ
237:デフォルトの名無しさん
15/04/23 12:47:41.56 MOJZs/rD.net
>>229
なんか、必要以上にポインタだけが、Cは難しいと煽り立てられてる気がする
んだよね。
238:デフォルトの名無しさん
15/04/23 12:48:28.64 CXFWU6dL.net
C#はポインタ使えないだろ?
Cぽい実質VBにしか見えないんだが・・・
239:デフォルトの名無しさん
15/04/23 12:49:01.77 MOJZs/rD.net
>>232
loTの時代が到来しつつあるので、C言語でもまだ一花咲かせられる
と思うよ。
なので、そこにCとpythonも入れておくといい。
240:デフォルトの名無しさん
15/04/23 13:28:55.33 JbeTZyD4.net
>>234
使えるよ
241:デフォルトの名無しさん
15/04/23 13:36:07.58 MOJZs/rD.net
>>234
C#とかObjective-Cとかって、派生だから、基本踏襲してるよ。
なので、Cでプログラミングする事もできなくもないし、流儀も使える。
242:デフォルトの名無しさん
15/04/23 14:50:17.82 rJvB44DV.net
>>236
VBにもunsafeあると面白いのにね
実際使う奴はいないと思うがw
243:デフォルトの名無しさん
15/04/23 14:55:03.57 gPb+ikvR.net
>>232
FORTRAN77,N80Basic,RPG3,VBA,VB.netとある意味王道な俺w
244:デフォルトの名無しさん
15/04/23 15:07:54.14 MOJZs/rD.net
>>239
COBOLやってりゃ今頃、独り占めできただろうに
245:デフォルトの名無しさん
15/04/23 23:22:50.44 gr9AedHH.net
C#と殆ど差がないんじゃ存在価値無いよね
どうせならネイティヴコンパイラのまま進化させればよかったのにね
WinRTコンポーネントを作るのに特化するとか
246:デフォルトの名無しさん
15/04/24 00:16:58.55 kgseXIuS.net
VBのイラっと�
247:キるところは文字列リテラルの不便さと、キーワードの多さ&大文字小文字無視による変数名の制限 後、ラムダ式のコンパイルエラーの箇所が分かりにくい
248:デフォルトの名無しさん
15/04/24 10:09:50.60 +go0MIdK.net
>>242
確かに
VbCrLf は何とかして欲しいw
249:デフォルトの名無しさん
15/04/24 10:20:46.15 Ca+nUuiT.net
>>241
VB6はネイティブじゃなくて中間コードをexeに埋め込んでるだけだ
ランタイムも別途必要だし、仕組み的には.NETの出来損ないでしかない
250:デフォルトの名無しさん
15/04/24 10:51:29.25 nCVnS6lK.net
それはp-codeじゃない?
VB5.0からネイティブコンパイルもできたはず
251:デフォルトの名無しさん
15/04/24 11:52:16.47 Kfq7fsbo.net
凄いね?いまだにVB5以前の知識で得意げに書き込む人がいるんだ…(´・ω・`)
252:デフォルトの名無しさん
15/04/25 00:00:33.88 8bp8M7rm.net
安定
URLリンク(bbs.wankuma.com)
253:デフォルトの名無しさん
15/04/25 00:19:05.01 Go1UaBnQ.net
httpもろくに知らない奴が回答とかしてんのかよ
お笑いだなw
254:デフォルトの名無しさん
15/04/25 10:47:42.28 C4UvtqeN.net
VB6から移行する場合Variantってどうすればいいの?
255:デフォルトの名無しさん
15/04/25 10:52:47.22 O8tJX/gW.net
そもそもVariantに限らずほとんど互換性無いから書き直しだよ
256:デフォルトの名無しさん
15/04/25 12:59:47.32 UFa534xR.net
>>249
原則的にはObjectだろうね?(´・ω・`)
でも型が特定できる所は、型を指定するようにした方がいいよ?(´・ω・`)
257:デフォルトの名無しさん
15/04/25 19:07:35.94 NETpxFvP.net
レガシーシステムから呼び出される上になんの型の値やオブジェクトが渡されるか予測出来ない場合はどうしますか?
オーバーロードでは手も足も出ません…
258:デフォルトの名無しさん
15/04/25 19:08:57.20 O8tJX/gW.net
それをVariantで受けたから解決だという思考は危険すぎるだろw
259:デフォルトの名無しさん
15/04/25 19:14:01.04 UFa534xR.net
>>252
だから、原則的にはObjectだろうと言ったはずだけど?(´・ω・`)
もしかしてVB.NET使ったことないの?(´・ω・`)
260:デフォルトの名無しさん
15/04/26 16:54:22.25 TSTvOAjs.net
レイトバインディングで決められた名前でメソッド呼ぶようなパターンだな
Option Strict OffでObject型使えば出来る
ダイナミック使った事ないからどうなってるかしらんが
この辺が唯一のVBがC#に勝るところかもしれんw
まあ、お勧めされるやり方ではないのだろうけど
261:デフォルトの名無しさん
15/04/26 18:35:44.33 QHx5/qoX.net
VB.NETやってるとjavascriptがどうも慣れない
型指定がないから、呼び先で型の確認が面倒くさい
262:デフォルトの名無しさん
15/04/26 19:10:15.25 gPWJqI6O.net
俺は既定のプロパティとVariant/Objectの合体攻撃で移行を諦めた
263:デフォルトの名無しさん
15/04/26 20:11:02.82 7jnYXfIp.net
>>255
レイトバインディングは今はdynamicがあるからC#の方が優れてるよ
Optionみたいに影響範囲が無駄に広がることなく型で明示的に指定できるからな
264:デフォルトの名無しさん
15/04/26 20:14:25.75 p04q7aSG.net
>>258
VBにはレイトバインドの他に暗黙的な型変換の機能が(良くも悪くも)充実しているから
Officeオートメーションなんかやる時だけはまだVBの方がちょっと便利。
265:デフォルトの名無しさん
15/04/26 20:18:47.03 i+fN/dbB.net
充実って言うのか?
無法地帯なだけだよ
266:デフォルトの名無しさん
15/04/26 20:24:19.26 p04q7aSG.net
>>260
そんなこと言ったって、例えばエクセルのRange.Valueの値は「無法地帯」(Variant)なんだからしょうがない。
267:デフォルトの名無しさん
15/04/26 21:04:56.24 EKpVXEVk.net
Option Strictのせいでdynamicが導入できないんだよな
ついでObject型から拡張メソッド使えない
268:デフォルトの名無しさん
15/04/26 21:09:41.77 4wueFLg7.net
VBは負の遺産多過ぎて笑える
269:デフォルトの名無しさん
15/04/26 21:13:41.04 7jnYXfIp.net
>>267
ついでにOption Infer OnでOption Strict Offだと、
明示的に型指定しない限り全部Objectとして推論されるという破綻した仕様だ
こんなもんコンパイルエラーにすりゃいいのに
270:デフォルトの名無しさん
15/04/26 22:59:36.69 TSTvOAjs.net
>>264
>明示的に型指定しない限り全部Objectとして推論されるという
誰にレスしてるのか知らんが、推論って解ってるか?
Dim a = "test"
これは明示的に型を指定していない(Stringとはどこにも書いてない)がStringだと推論できる
すくなくとも2013で試したけどちゃんとそう推論されてString型になってる
型を指定しない変数がObjectになるのは、型推論以前の話
Dim a
これがObjectになるのは、旧VBでVariantになってたものとの整合性のためだ
これはOption Inferに関係ない話
271:デフォルトの名無しさん
15/04/27 06:12:22.49 jIpV3z07.net
>>265
Option Infer On
Option Strict Off
Dim a = “test”
a = 12345
Console.WriteLine(a.GetType())
272:デフォルトの名無しさん
15/04/27 15:51:30.37 ebWiZqjs.net
>>266
2013で試したけどちゃんとStringだけど?
暗黙の変換が理解できないのか?
もしかして、aの型が途中で変われとか思ってるのか?
273:デフォルトの名無しさん
15/05/01 18:14:37.18 8HUHn2mm.net
.net経由でエクセルに一括で出力したいんですけど、
対応してるのって多次元配列だけですか?
ジャグ配列でもいけますか?
最初に作ったジャグ配列だとエラー出たのでダメかと思ったんですがどうなんでしょう
多次元配列がめんどくさいです
274:デフォルトの名無しさん
15/05/01 18:20:19.20 8HUHn2mm.net
ジャグ配列と言っても長さは一定です。
ただの配列の配列の方です
VBAだとVariant型の配列に配列を格納したままセルに出力出来た気がしたので、そんな感じでできないのかと迷ってます。
.netは今回が初なので、変な表現はご容赦を
275:デフォルトの名無しさん
15/05/01 18:24:39.50 GljsCVrU.net
一括出力って何よ。
Range.Valueの型は確かObject(,)。
ちょっと上にも書いたけど、VBなら暗黙の型変換でDouble(,)とかString(,)でもいける。
(Option Strict Off時)
これがVBのもはやほとんど唯一のアドバンテージ。
276:デフォルトの名無しさん
15/05/01 20:00:22.62 y/e0hWAT.net
>>269です
>>270
一括入力というか範囲にまとめて値を設定するやつです
Range(”A1:E10”).Value=二次元配列※1みたいな。
で、この二次元配列を弄るのが面倒なので何か便利なモノはないのかなと
理想はArrayListか Dim D1()() As Stringみたいな多段階配列?を
※1の二次元配列代わりに使いたいのですが可能でしょうか
277:デフォルトの名無しさん
15/05/01 23:14:37.72 k6prZlnl.net
バカっているんだなぁ
ジャグ配列を二次元配列に変換してセットするだけじゃん
数行のコード書くだけじゃん
278:デフォルトの名無しさん
15/05/01 23:39:27.23 8mLYD2sr.net
DataTable使えばいいんやで
279:デフォルトの名無しさん
15/05/02 00:08:31.90 PqHK/vYT.net
>>272
や、その変換がよくわからないので質問しに来たんですが
自分ではfor文で1個1個格納するような不細工な方法しか思い浮かばないです
280:デフォルトの名無しさん
15/05/02 01:30:39.30 PqHK/vYT.net
達人がどいつもこいつも遠いのなんとかならんのかね
281:デフォルトの名無しさん
15/05/02 01:31:29.52 PqHK/vYT.net
誤爆すいません
282:デフォルトの名無しさん
15/05/02 01:40:31.69 1CAzIfIH.net
達人BOMB思い出した
283:デフォルトの名無しさん
15/05/04 13:52:14.31 kOp9hxOl.net
vb.net2010でchartを使用しています。
グラフタイプlineでマーカーを有効にしているのですが
そのマーカーの座標を取得したいです。
恐縮ですが、やり方を教えて頂けないでしょ
284:うか。
285:デフォルトの名無しさん
15/05/04 16:01:43.50 zVlualTP.net
URLリンク(www.atmarkit.co.jp)
286:デフォルトの名無しさん
15/05/05 18:25:45.94 H1bD3y4l.net
>>278
無理。座標なんて取れない。
287:デフォルトの名無しさん
15/05/07 20:26:36.93 4bBKCkvW2
VB.netで簡単なストリーミングラジオが出来るソフトを作りたいと思ってるのですが
検索しても中々サンプルのような物が見つかりません
最近プログラムを勉強し始めたレベルなので漠然としておりどう作ればいいのかわかりません
マイク音声入力→Web上で聞けるようストリーミング化→アップロード?みたいな形でしょうか?
なにか参考になるサイトなどあれば教えていただければ幸いです
お願いします。
288:デフォルトの名無しさん
15/05/11 08:13:09.61 v4XvWVJo.net
Object配列をDAOのRecordsetにまとめて書き込むあるいはまとめて取得するといった事は出来ないのですか?
Valueの呼び出し回数が多くなると相互運用のオーバーヘッドが無視できないボトルネックになります
OleDbなど他のDBライブラリに出来れば良いのですが要件の都合でDAO3.6しか使えません
289:デフォルトの名無しさん
15/05/11 16:38:05.91 9dKsED28.net
VB6では下のような事が出来たのですが、VB.NETではエラーになります。
Const では定数に定数を定義する事はできないのでしょうか?
Public Const AtoC As String = "ABC"
Public Const AtoF As String = ABC + "DEF"
Public Const NNN As String ="123" + AtoF
290:デフォルトの名無しさん
15/05/11 16:43:55.00 e/BHH/Kz.net
&
291:デフォルトの名無しさん
15/05/11 17:34:21.37 9dKsED28.net
>>284
お陰様で出来ました、ありがとうございました。
292:デフォルトの名無しさん
15/05/13 13:14:23.74 5xa6PfnQ.net
何でGUIでのコントロール配列をやめたんでしょう?
せめて名前だけでもコピペで継承してくれれば配列化も楽になるのだけど...
293:デフォルトの名無しさん
15/05/13 13:50:06.10 iFFXrGSK.net
>>286
今頃かよ
294:デフォルトの名無しさん
15/05/15 09:42:18.61 ckFkjZay.net
C#のコードをVB.NETに変換しています。(VS2013)
t型の変換部分がわかりませんので教えてください。
private static T ClientInstantiation(BasicHttpBinding bindings, EndpointAddress endpoint)
{
return (T)Activator.CreateInstance(typeof(T), bindings, endpoint);
}
↓
Private Shared Function ClientInstantiation(bindings As BasicHttpBinding, endpoint As EndpointAddress) As t
Return CType(Activator.CreateInstance(Type.GetType(t), bindings, endpoint)(), t)
End Function
Type.GetType(t)でコンパイルエラーになります。
295:デフォルトの名無しさん
15/05/15 10:27:45.88 bEqOBE9Q.net
C#のtypeof演算子はVBではGetType演算子
Type型のGetTypeメソッドとは無関係
296:デフォルトの名無しさん
15/05/15 11:14:44.51 ckFkjZay.net
>>289 有難うございました。
Private Shared Function ClientInstantiation(Of t)(bindings As BasicHttpBinding, endpoint As EndpointAddress) As t
Return CType(Activator.CreateInstance(GetType(t), bindings, endpoint)(), t)
End Function
でいけました。
297:デフォルトの名無しさん
15/05/18 00:59:31.50 rTM0gfmR.net
記号の扱いについてなんですが・・
ファイル名の先頭に &#9654; 記号が付いていて、
ファイルアドレスをテキスト出力すると ? に変わってしまうのです。
VBだと扱えない記号なんでしょうか?
298:デフォルトの名無しさん
15/05/18 09:44:09.65 /sgh0iRS.net
Shift_JISには扱えない記号だよ
299:デフォルトの名無しさん
15/05/18 09:57:18.58 J+RVXlhZ.net
下の�
300:Gラーメッセージをイミディエイトウインドウに表示させない方法ってありますか? 型 'System.FormatException' の初回例外が mscorlib.dll で発生しました
301:デフォルトの名無しさん
15/05/20 03:37:09.35 mVhKy64b.net
<br>を<br />と書くとなんの得が?
302:デフォルトの名無しさん
15/05/20 07:48:59.08 bF5wz0wT.net
本職でないのに会社の業務アプリを作れと言われ困っています。
sqlサーバーとvb.net で開発しているのですが、
検索条件が4つほどあり、where 列名 1 = コンボボックス1の値 and 列名2 = コンボボックス2 and ~ と繋げていきたいのですが、コンボボックスが未選択の場合にはこの検索条件を飛ばしたいのです
ストアドでは、where 列名 =isnull(コンボボックス1,列名)and でnullの場合、これで検索条件を飛ばせたのですが、vb上でコンボボックスにnull値を引き渡しする方法がわかりません。
どなたかヒントを頂かないでしょうか
どうか宜しくお願いいたします
303:デフォルトの名無しさん
15/05/20 07:55:58.80 wfRY8uO9.net
.NET SQL パラメータ でググる
304:デフォルトの名無しさん
15/05/20 09:19:51.93 KFMNcacm.net
ここで教えてしまうと本職である俺たちの仕事が
なくなるから教えるべきではないな
305:デフォルトの名無しさん
15/05/20 10:13:18.99 RDldFDFb.net
>>296
ありがとうごさいます 調べてみます
vb.net 上からストアドのパラメータを呼び出す、といったニュアンスでよいのでしょうか?それをコンボボックスに関連づけるというか。
306:デフォルトの名無しさん
15/05/20 20:11:05.93 lRuCF4Ch.net
WHERE (コンボ1 IS NULL OR 列1 = コンボ1)
AND (コンボ2 IS NULL OR 列2 = コンボ2)
これでやるんやで
307:デフォルトの名無しさん
15/05/21 08:21:54.17 nwV8enKl.net
>>294
なんの特もないですよ。
308:デフォルトの名無しさん
15/05/24 19:59:50.15 /sU8qY7S.net
ITってなんの意味?
309:デフォルトの名無しさん
15/05/25 09:02:50.26 qKSZBXD7.net
>>301
愛しての略
310:デフォルトの名無しさん
15/05/25 12:31:28.98 NZqOS5P9.net
>>301
ファ(゚Д゚) it=それ、だろ。
311:デフォルトの名無しさん
15/05/26 01:18:56.89 ZIvupKeH.net
マジレスすると?
312:デフォルトの名無しさん
15/05/26 07:25:36.64 SdQfWS5U.net
君に
313:デフォルトの名無しさん
15/05/26 07:58:25.86 OOq91dGH.net
とどけ
314:デフォルトの名無しさん
15/05/26 10:59:39.93 xTPEmHT9.net
>>305
会いてぇ
315:デフォルトの名無しさん
15/05/27 15:12:54.34 C+NhLOwD.net
なぜVBはC#と比べて駄目なのか
URLリンク(crapp.hatenablog.com)
316:デフォルトの名無しさん
15/05/27 16:31:16.22 dh78sdoF.net
コピペマン参上!まで読んだ。
317:デフォルトの名無しさん
15/05/27 17:44:04.76 Ypi1XDkX.net
VS2013Expressにはインストーラが無いと思いますが、ビルドしたEXEファイルを直接実行すれば問題なく動くんでしょうか?
その場合、EXEファイルの保存場所はどこでも良いのでしょうか?
318:デフォルトの名無しさん
15/05/27 20:05:56.17 +reV9d8N.net
NET Frameworkがインストールされていれば動きます。
保存場所はどこで良いです。
319:デフォルトの名無しさん
15/05/27 20:25:17.31 x3esSDVw.net
>>311
ありがとうございます。
VB6のときは、DLLやら何やらをsystemフォルダにコピーしたりしないとダメだったり、
ディストリビューションウイザードでインストールしないと正常に動作しなかったりした
ので不安に思っていました。
NET Frameworkがその役目をしてくれてるんでしょうかね。
320:デフォルトの名無しさん
15/05/28 09:29:56.22 7fXQTxbZ.net
VB.NETのプログラムをビルドして起動してWindows8.1のタスクマネージャーで見てみると
(32ビット)
321:って表示されちゃうけどVB.NETアプリって32ビットなのかしら?
322:デフォルトの名無しさん
15/05/28 09:46:54.31 x+MFk+ux.net
プロジェクトのプロパティでどっちでもできるけどデフォルトは32bit
COM回りとかAPI呼び出しとかで(プログラマ原因の)問題がちょくちょくあったから
どうせ一般的なアプリケーションなら特に差はないし
323:デフォルトの名無しさん
15/05/28 10:48:36.74 7fXQTxbZ.net
じゃあこのままでいいや
324:デフォルトの名無しさん
15/05/28 11:26:36.87 qrMVO/gn.net
64bitでも動くようにしてそのいろいろ出る問題を体験したほうが
スキルアップするよ。
325:デフォルトの名無しさん
15/05/28 13:16:07.98 7fXQTxbZ.net
自分用のファイル名変換ソフトぐらいしか作らないし
326:デフォルトの名無しさん
15/05/28 13:42:59.96 qrMVO/gn.net
自分用なんてもったいない。
327:デフォルトの名無しさん
15/05/28 13:55:46.80 7fXQTxbZ.net
ファイル一覧をメモリ内データテーブルにコーラムとローウを作って格納して
image1.png
image2.png
image3.png
という他社画像ソフトが付ける名前に不満があるから
abc0001.png
abc0002.png
abc0003.png
ぐらいの変換趣味プログラミングしかしないし
328:デフォルトの名無しさん
15/05/28 16:29:00.09 8cEiN+lf.net
そんなもんスクリプト言語なら一瞬でできるだろ
VBで作るのは馬鹿の一つ覚え
329:デフォルトの名無しさん
15/05/28 16:38:07.41 8cEiN+lf.net
つかVBで作るにしても、ファイル名の連番部分を正規表現でキャプチャして数字取り出すだけだよね
非常に単純な処理のはずだけど、データテーブルなんて一体何に使うんだ
まあそもそも出来合いのリネームツールを使えという話ではあるが
330:デフォルトの名無しさん
15/05/28 17:39:11.21 C/2xaBAg.net
それなら叩く必要はないと思いますよ
331:デフォルトの名無しさん
15/05/28 21:26:57.35 yn+5JefU.net
コーラムとローウっていい方初めて聞いた
332:デフォルトの名無しさん
15/05/28 21:46:01.90 a+Bx53X2.net
業界用語的な?
333:デフォルトの名無しさん
15/05/28 21:49:15.77 M5z1Z18K.net
もしかしてcolumnとrowか
334:デフォルトの名無しさん
15/05/28 22:31:28.53 NCErZJE8.net
まぁ、自分の知ってる言語で作るのが一番楽だろうな
335:デフォルトの名無しさん
15/05/29 10:37:52.85 DZBpB2ug.net
なんか適当なリネームツールの使用方法覚えたほうがよくないか?
コマンドラインで実行して変換したいとかならツールが対応する必要があるからあれだけど。
それにしたってコマンドラインのツールを探せばいいわけで。
336:デフォルトの名無しさん
15/05/29 11:06:31.58 sDxhOSq1.net
リネームするだけでもSQL Server Compactにいったんファイル名を格納したくなったりするはずなんだがなー
337:デフォルトの名無しさん
15/05/29 14:50:06.66 GbyQSdJL.net
コレクションをソートするだけのためにデータテーブルを使う、VBerならではの発想だね
338:デフォルトの名無しさん
15/05/29 15:52:47.47 /inCidIH.net
実装方法は人それぞれですよ
リネームツールならパフォーマンスの大部分はI/Oが占めるでしょう
>>328 さんの様に DB を使う人もいるでしょうし
表示に DataGridView を使っているのかもしれませんよ
339:デフォルトの名無しさん
15/05/29 17:12:48.39 PvfnbxNC.net
コーランとウーロンは、それぞれイスラムとチャイナの宝ですから、
馬鹿にするとスレが荒らされますよ。
チャイナは13億人もいるんです。
13億人が一斉に一つのスレに書き込むかと思うと・・・
気を付けたほうが良いです。
340:デフォルトの名無しさん
15/05/29 17:42:25.72 1KgUqQ09.net
でもウーロン茶って現地にないんだろ
341:デフォルトの名無しさん
15/05/29 20:42:46.13 5IDPfqL5.net
ギャルのパンティ生成するプログラムください
342:デフォルトの名無しさん
15/05/30 02:07:28.73 Pbtwhgcb.net
パンティ100枚も生成してやったぞ
For i=0 to 100
TextBox1.Text="パンティ"
Next
343:デフォルトの名無しさん
15/06/01 10:15:38.
344:50 ID:SmRnjqJZ.net
345:デフォルトの名無しさん
15/06/01 10:59:50.21 UEpvKTDA.net
>>334
それ動かしたら1枚あまりますた
346:デフォルトの名無しさん
15/06/01 13:49:02.48 cXFUMQbT.net
>>334
グラフィックで生成できなのがVBの弱さだなw
347:デフォルトの名無しさん
15/06/01 15:21:45.68 xAgLifG+.net
暑くなってきたから気違いが湧いてもしょうがないか…
348:デフォルトの名無しさん
15/06/01 19:54:10.94 06FjfYqT.net
独創性の欠片もない発想
しかもパンティは一つしか表示されない
その上ループ回数も間違っている
これがVBerクオリティ
349:デフォルトの名無しさん
15/06/02 09:08:36.68 ZuKbpm2s.net
見えない愛が隠れてるんでしょ。
350:デフォルトの名無しさん
15/06/02 09:51:08.43 0sX2qVRz.net
Dim i As Long
If i=1 then
Label1="中森明菜のぱんてぃ"
ElseIf i=2 then
Label1="坂井泉水のぱんてぃ"
ElseIf i=3 then
Label1="柏原芳恵の空港押収物"
ElseIf i=4 then
Label1="榊原郁恵のぱんてぃ"
ElseIf i=5 then
Label1="柏原芳恵と榊原郁恵のちがいがわからない"
ElseIf i=6 then
Label1="河合奈保子のビキニ"
ElseIf i=7 then
Label1="森口博子のぱんてぃ & VbCrLf & 大当たり & VbCrLf & 確変突入"
End if
351:デフォルトの名無しさん
15/06/02 10:44:13.22 iYJy6KLA.net
>>341
どうも古代のアイドル歌手みたいだね^^;
352:デフォルトの名無しさん
15/06/02 12:54:02.20 34fEE81iw
井森美幸が無いとはけしからん
353:デフォルトの名無しさん
15/06/02 13:44:55.84 YfkW139T.net
>>341
VBだと初期値i=0だからLabel1には何も代入されないな
354:デフォルトの名無しさん
15/06/02 20:40:42.54 eyZriIExf
初期値なんてオプション設定でどっちにもなる
355:デフォルトの名無しさん
15/06/03 23:50:48.67 xLp6v6Vl.net
vb.netではuncheckedなキャストは出来ないの?
356:デフォルトの名無しさん
15/06/05 12:39:52.47 Yzlip4+C.net
For i = -1 to -3
Next
これを動かした場合のiの様子って?
357:デフォルトの名無しさん
15/06/05 12:45:42.25 WT8vsoFD.net
N-BASIC からやりなおせ
358:デフォルトの名無しさん
15/06/05 12:49:23.70 Yzlip4+C.net
-1のつぎって0にいっちゃうからたぶんエラー
359:デフォルトの名無しさん
15/06/05 12:51:13.22 Yzlip4+C.net
いや、そもそもForステートメントって自然数しか使えないから
0からintegerの最大値までしか記述できないかも
360:デフォルトの名無しさん
15/06/05 13:04:27.29 7es6a0tW.net
なんだこいつ
361:デフォルトの名無しさん
15/06/05 13:30:33.96 IO2ptGx3.net
step -1
362:デフォルトの名無しさん
15/06/05 14:37:22.68 D1WIZkL1.net
正解早すぎ
363:デフォルトの名無しさん
15/06/05 15:20:36.81 BaaBUArV.net
>>352
それだ!
364:デフォルトの名無しさん
15/06/05 17:18:27.33 3UseM3t2.net
>>350
>Forステートメントって自然数しか使えないから
そんなことはありません
URLリンク(msdn.microsoft.com)(v=vs.80).aspx
>データ型 counter のデータ型は、通常は Integer にします。
>しかし、以上 (>=)、以下 (<=)、加算 (+)、減算 (-) の各演算子をサポートするものならば任意のデータ型を指定できます。
>これらの演算子をサポートしていれば、ユーザー定義型を指定してもかまいません。
やりたい事はStep -1だろうけど
そのままでどうなるかってなら、たぶんiがオーバーフローするまでループするんじゃないかな
365:デフォルトの名無しさん
15/06/05 17:34:19.30 Yzlip4+C.net
For、loop
の中にAprrication.DoEvent
書いとかないとフリーズする
マメな
366:デフォルトの名無しさん
15/06/05 17:37:35.78 IO2ptGx3.net
お豆
367:デフォルトの名無しさん
15/06/05 18:10:43.42 7es6a0tW.net
>>356
あぁそれ一番やっちゃダメなやつな
368:デフォルトの名無しさん
15/06/05 18:22:30.10 Yzlip4+C.net
Whay? ほわーい
369:デフォルトの名無しさん
15/06/05 23:09:45.96 TGIdieIs.net
VBのForで混乱するならEnumerable.RangeとかEnumerableEx.Generate使おうぜ
370:デフォルトの名無しさん
15/06/05 23:38:30.84 ArINQc3s.net
そんなものを使いこなせる子はVBなんて使いません
371:デフォルトの名無しさん
15/06/06 18:06:40.79 wx4+GI5s.net
Select Case だとIf文と違って「~以上」「~以下」「~ または ~」
ができない
マメ知識な
372:デフォルトの名無しさん
15/06/06 18:16:49.18 rCO6kXww.net
そんな低速なイテレータをお遊び以外で使うんじゃあないっ!
373:デフォルトの名無しさん
15/06/06 18:20:41.25 F9D1Moux.net
さらっと嘘つくなよ
「Is」と「,」がある
374:デフォルトの名無しさん
15/06/06 19:13:20.17 rCO6kXww.net
もしかしてVB6のdoubleと.NETのdoubleって別物?
375:デフォルトの名無しさん
15/06/06 20:13:44.55 NlzRnH5v.net
表現は同じだけど計算結果が厳密に同じとは限らない
VB6と.NETの間に限らず浮動小数点というのは環境に依存するものだから、
よく理解してないんならDecimal使っとけ
376:デフォルトの名無しさん
15/06/07 05:29:43.99 yMbx5XXH.net
>>365
エイリアスだから全く同じもの
377:デフォルトの名無しさん
15/06/07 05:31:12.90 yMbx5XXH.net
あぁ失礼、VB6でしたか...
別物として扱った方が良いと思う
378:デフォルトの名無しさん
15/06/07 11:27:26.39 n58mUdnf.net
URLリンク(qa.atmarkit.co.jp)
文字列が作成以降変更できない事によると言うのが誤解を招くと言われてるようなのですが、これはどう言うことか分かる人いるでしょうか?
文字列が変更できないから変わらない、と言うわけではないという事でしょうか?
聞いてみたいんだけど、なんかこう手を触れてはいけないというか、関わりたくないのです…
379:デフォルトの名無しさん
15/06/07 11:30:47.49 NaIbOULp.net
これだからC言語をやったことのないやつは
380:デフォルトの名無しさん
15/06/07 11:33:28.63 8NCQzbFC.net
>>369
この回答は確かにおかしいね。
Item1への再代入はStringオブジェクトの内容を変更してるのではなくて、
新しいStringオブジェクトで参照を置き換えている。Stringオブジェクトが不変であるかどうかは無関係。
381:デフォルトの名無しさん
15/06/07 11:55:57.62 8NCQzbFC.net
たとえばItem1の型をStringBuilderに、Item1の右辺をnew StringBuilder(文字列)に置き換えても結果は変わらないよ。(StringBuilderは不変ではない)
だって、>>369のどこにも文字列オブジェクトの内容を変更しようとしている箇所はないから。
実際には変更したくてもStringは不変なので変更する手段がないんだけど、それはここでは無関係。
繰り返すが、代入は文字列オブジェクトの内容を変更するんではなくて参照を上書きすることでオブジェクトそのものを入れ替えるんだよ。
382:デフォルトの名無しさん
15/06/07 12:29:08.59 XmKcFN/K.net
>なんかこう手を触れてはいけないというか、関わりたくない
その直感は正しい
383:デフォルトの名無しさん
15/06/07 13:02:10.36 n58mUdnf.net
>>372
あ、文字列が可変だとしても同じ事が起こると書かれてた意味が分かりました。
384:デフォルトの名無しさん
15/06/07 15:50:21.45 MiXsiH0m.net
ネイティヴAPIにStringのポインタを渡して文字列の内容を書き換えられたらどうなるんですか?
385:デフォルトの名無しさん
15/06/07 16:47:19.61 QuOebb6f.net
>>375
やってみて。
Stringを値渡しした場合はマーシャラーが期待するような結果が得られるように
うまく計らってくれる。
もちろんその場合でも元のStringのインスタンスが変更されるわけじゃない。
386:デフォルトの名無しさん
15/06/09 15:08:46.49 D64qsf7W.net
ピクチャーボックスにグラフを描いてるんですが、下端の3ピクセルは描画出来ないのは仕様ですか?
ボーダースタイルを3Dにすると5ピクセルくらいに増えます。
ピクチャーボックス上のマウスカーソルの座標も表示していますが、同様に下端数ピクセルは座標を取得出来ません。
387:デフォルトの名無しさん
15/06/09 21:25:31.38 nZTbfKL1.net
ホントにそこはピクチャーボックスか?
388:デフォルトの名無しさん
15/06/10 09:22:52.62 hop0dLBx.net
>>378
そこは間違いないです、どのみちスケーリングするので隠れちゃう分をオフセットして計算する事にしました。
389:デフォルトの名無しさん
15/06/10 11:21:33.73 ipeElURN.net
俺も今ピクチャボックスでグラフかかされてるけどならないな
ボーダースタイルはnoneで
390:デフォルトの名無しさん
15/06/10 11:32:18.66 hop0dLBx.net
>>380
noneだと線はheightまで引けますね、カーソル座標はheight-1まで取得出来ました。
391:デフォルトの名無しさん
15/06/10 20:18:24.12 SnRvHhfo.net
URLを他のブラウザやエクスプローラにドラッグ&ドロップしたいのですが
下記のようなコードではうまくいきません。
エクスプローラからドラッグされるほうのサンプルは結構見つかるのですが
逆がなかなか見つからないのですが、分かる方いましたらお願いします。
Dim urls As String() = {"URLリンク(www.yahoo.co.jp"})
Dim dataObj As New DataObject(DataFormats.FileDrop, urls)
Dim dde As DragDropEffects = list.DoDragDrop(dataObj, DragDropEffects.Copy Or DragDropEffects.Move)
392:デフォルトの名無しさん
15/06/10 21:15:13.20 uWw81rVG.net
>>382
エクスプローラにドロップする例ならすぐ見つかったけど
URLリンク(www.atmarkit.co.jp)
393:デフォルトの名無しさん
15/06/10 21:33:36.74 /kHDwUM2.net
フォーマット文字列は"UniformResourceLocatorW"ってやつかな
データは文字列でいいみたいだけど。
394:デフォルトの名無しさん
15/06/10 22:22:22.89 SnRvHhfo.net
>>383, 381
ありがとうございます。
どうもうまくいきません。うーむ。
395:デフォルトの名無しさん
15/06/11 01:20:58.90 iZ7vIhbG.net
vb6資産をvb.netに変換する最強のツール教えてよ
396:デフォルトの名無しさん
15/06/11 06:24:30.10 tam4srza.net
ドカタ
なおVB専はクォリティに問題があるのでやめたほうがいい模様
397:デフォルトの名無しさん
15/06/11 08:27:10.43 8Aoh8+SR.net
>>386
VisualStudio .NET
旧プロジェクトをそのまま開き変換
1から作った方が早いかもしれない
398:デフォルトの名無しさん
15/06/11 11:31:44.34 IOeYT4Pu.net
変換したらウインドウ内がまっさらになりました
399:デフォルトの名無しさん
15/06/11 11:41:04.00 yDtVU6wD.net
>>389
どうせ、プロジェクトの参照設定で、外部OCXとか使ってんだろ。
400:デフォルトの名無しさん
15/06/12 01:09:47.33 3YbxguOD.net
変換の最大の障害は糞VBプログラマの吐いた糞コードなんだよね
マトモなコードなら別言語でもリファクタリングは容易い
401:デフォルトの名無しさん
15/06/12 03:32:13.57 iIwQDcxZ.net
移行とリファクタリングは基本的には別の話
実際のとこ旧VBの移行で一番のネックは標準も含めたOCX類
402:デフォルトの名無しさん
15/06/12 06:16:36.21 NH0O2bSS.net
会社の建物の外に出てタバコ吸ってるの見つかった場合どーすれば
403:デフォルトの名無しさん
15/06/12 07:48:39.24 p1Cq9OqG.net
>>392
そゆこと。
404:デフォルトの名無しさん
15/06/12 20:16:32.20 3YbxguOD.net
>>393
適度な休憩は生産性を上げるってレポートを書いて提出
405:デフォルトの名無しさん
15/06/13 00:19:30.07 3YEnVwLl.net
ヘー
406:デフォルトの名無しさん
15/06/13 06:29:48.75 KSn5zbP7.net
喫煙厨はそう言い訳するけど、ニコチン摂取でようやく最低限になるだけなんだよね
マイナスから0付近に戻るというだけ
407:デフォルトの名無しさん
15/06/13 15:36:33.54 j6dTAmDO.net
>>392
移行ってリファクタリングの事だ
408:と思ってた 逆にリファクタリング無しにどうやったら移行出来んだ
409:デフォルトの名無しさん
15/06/13 15:53:04.03 CvpFt6eB.net
動かないものを動くように直すのはリファクタリングとは言わんよ
VBerは保守性なんて気にしないから、場当たり的にとにかく動くように最低限直してそれでおk
410:デフォルトの名無しさん
15/06/13 16:00:20.61 j6dTAmDO.net
そりゃそうしたいけど場当たり的に最低限じゃ動かないよ
411:デフォルトの名無しさん
15/06/13 16:03:49.64 CvpFt6eB.net
>>400
文字読めないの?
動作を変える変更はリファクタリングではない
動作を変えずにソースを変更するのがリファクタリング
412:デフォルトの名無しさん
15/06/13 16:16:28.64 j6dTAmDO.net
動作変えるなんて誰も話してないだろ
旧資産と同じ挙動を維持しながら移行するのにリファクタリングというプロセス無しでどうやるんだって話
413:デフォルトの名無しさん
15/06/13 16:36:41.41 CvpFt6eB.net
言いたいことは分かるが、移植作業がリファクタリングだなんて聞いたことないわ
VB6のソースを.NETに持ってきていったん動かなくなった時点で、
それを再び動くようにするのは一般的には「動作を変える作業」と見做すのが普通だろう
414:デフォルトの名無しさん
15/06/13 16:39:58.93 WFf0i5wd.net
移行と言うと内部構造の見直し、改善は含まないイメージ
415:デフォルトの名無しさん
15/06/13 16:42:52.02 NLRO2E1s.net
移行とリファクタリングは別物でしょ
他のスレでも聞いてみ?
416:デフォルトの名無しさん
15/06/13 18:49:43.91 bwYtYS6A.net
例えばデータアクセス層をマイグレーションするとしたら、O/Rマップのインターフェースを維持したまま、内部実装を分析整理して、ADO相互運用からADO.NETに置き換えて、コードの品質を高めるんだろ
後はユニットテストも加えたら、これってまさにリファクタリングのプロセスじゃん
417:デフォルトの名無しさん
15/06/13 19:23:11.75 NLRO2E1s.net
まあどこにでも方言はあるか。
418:デフォルトの名無しさん
15/06/13 20:47:40.46 KSn5zbP7.net
VB厨がどんな用語を使おうが構わないよ
またなんか言ってらで終わるから
419:デフォルトの名無しさん
15/06/13 22:36:21.19 ds8D2Sdy.net
移行で必要なのはせいぜい元コードの解析まで
移行なら整理する必要はないし、品質も高める必要はない
元システムのバグはそのまま再現すべし、という移行だってあるんだよ
解析のプロセスがリファクタリングと同等だと言うならまあそうかもしれんが
420:デフォルトの名無しさん
15/06/13 22:43:22.35 bwYtYS6A.net
あんた、移行したことないだろ?
整理しなくても良い、動けば良いって言うけど整理しなきゃまともに動かないよ普通
421:デフォルトの名無しさん
15/06/13 22:50:35.74 NLRO2E1s.net
リファクタリングが移行の中で必須だとしても
それは移行の中の一部なのだからことさら
移行=リファクタリングもたく言うのは違う気がする。
俺のなかではリファクタリングは言語や実行環境を
変えないでソースを整理するイメージ。
422:デフォルトの名無しさん
15/06/13 23:11:29.16 ds8D2Sdy.net
>>410
整理しないとまともに動かないようなコードの保守ばかりしてるんだな
ごくろうさん
423:デフォルトの名無しさん
15/06/13 23:40:43.37 SUtBR6oW.net
VB6→VB.NETは言語が別物なので、リファクタリングの次元を超えています
たぶん、移植後に気づいた部分をリファクタリングする、という事を伝えたかったのでしょう
移植とリファクタリングを同時に行う事もあり得ますが、別々に考えるべきですね
424:デフォルトの名無しさん
15/06/14 07:46:31.61 hXolqezD.net
>>410
まともに動かないものを動くようにするのはリファクタリングではありませんね
そんな意味で使ってるのはあなただけでしょう
425:デフォルトの名無しさん
15/06/14 18:02:56.65 bi3meJ29.net
移植とリファクタリングがごっちゃになってるなんてVB厨らしくていいじゃないか
>>408の言うとおり
426:デフォルトの名無しさん
15/06/14 19:04:52.98 yMz9ArtB.net
普段「動けばいい、動いてるものは触らない」が常識だと思って仕事してるからこその勘違いだな
メンテナンス性の改善のためだけの修正なんて全く頭になかったんだろう
まさにVBerだわ
427:デフォルトの名無しさん
15/06/14 21:08:25.35 0rCloUb+.net
お前らがどうやって移植してるかわっかんね
①解析ツールで.NETに構文変換
②バグ取り
③テスト
④要件で不許可のActiveXの置き換え
普通に考えて④がリファクタリングだろ
ActiveXは全てそのままにしておくのか?
428:デフォルトの名無しさん
15/06/14 21:14:45.07 yMz9ArtB.net
④がリファクタリングなら例えば
客「うちの~システムで使っているパッケージのサポート期限切れが迫っている。リプレースしたい。」
リファクタリング君「リファクタリングしましょう。」
というわけか
429:デフォルトの名無しさん
15/06/14 21:15:03.95 hXolqezD.net
駄目だこりゃ
430:デフォルトの名無しさん
15/06/14 21:15:58.17 hXolqezD.net
まさかリファクタリングで金取らないよな?w
431:デフォルトの名無しさん
15/06/14 21:23:23.28 0rCloUb+.net
>>418
リファクタリングだよ
リプレースに必要な要件と作業を挙げてみろよ
①呼び出し規約と動作仕様の同一性を保証する境界を決める
②テストケースを書く
③より品質のよいコンポーネントを前提に再設計する
④テストドリブンでコードを修正する
どう見てもリファクタリングです
本当にありがとうございました
432:デフォルトの名無しさん
15/06/14 22:39:53.41 Ftg9kCWs.net
金は取ろうよ
修正なんだし・・・
433:デフォルトの名無しさん
15/06/14 23:25:30.56 WUSI3X0V.net
>>417
挙げられた例だと④までが移植ですね
全部テストまで終わった後にやるのがリファクタリングです
434:デフォルトの名無しさん
15/06/15 00:22:59.70 vOFoOiO1.net
>>423
リファクタリングってのはむしろコードを書きながら逐次必用に応じてやるものですw
435:デフォルトの名無しさん
15/06/15 00:58:21.96 ZuE8FanD.net
>>424
それはリファクタリングではなくコーディングですね
ユニット単位などで完成後に動作を変えずコード保守性を上げるのがリファクタリングです
436:デフォルトの名無しさん
15/06/15 01:06:15.55 ZuE8FanD.net
と書きましたが、コーディングしながらリファクタリングの様な事も確かにやりますよね
リファクタリングという言葉の定義の問題でしょうか
437:デフォルトの名無しさん
15/06/15 01:08:57.16 hbk3ZQ5q.net
>>425
だから、「完成後」じゃなくてオンザフライでそれをやることの方が多いし、
それをリファクタリングって言うんですよw
完成するまでやらないなんて余程腰の重いグズだけ。
438:デフォルトの名無しさん
15/06/15 03:30:50.81 LHg/6D6Y.net
コードレビューで却下されたコードの修正もリファクタリングとか言いだすのだろうか
439:デフォルトの名無しさん
15/06/15 08:01:04.73 Li2oe29u.net
>>397
スレ違いだ
失せろ
440:デフォルトの名無しさん
15/06/15 08:02:19.92 Li2oe29u.net
>>417
普通はフルスクラッチから作り直しますよww
441:デフォルトの名無しさん
15/06/15 13:10:14.95 IxrUgLS7.net
>>429
2日も前のレスに失せろだなんて、かっこい(^_-)-☆
442:デフォルトの名無しさん
15/06/15 18:20:29.40 blTMn1gP.net
達人によるとリファクタリングとはガーデニングらしいな。
ソースコードは、要求により変化するもの、変化によっては悪い状態のソースコードもある、
それを、常にいい状態に保つために手直しをし続ける。
443:デフォルトの名無しさん
15/06/16 15:58:14.79 v1JWf5ds.net
>>417
④も移植作業だろ
移植作業中にリファクタリングすることもあるけどな
もちろんコーディング中にリファクタリングすることもある
まあコーディング中のリファクタリングはコーディングに含まれるだろうけど
444:デフォルトの名無しさん
15/06/16 20:04:02.20 5k5zCgWs.net
新規作成から最初の保存まで以外は全部リファクタリング
445:デフォルトの名無しさん
15/06/23 14:07:34.26 CMci6Bpa.net
If form1.Visible = True Thenを実行しただけで、
エラー:オブジェクト参照がオブジェクト インスタンスに設定されていません。
が表示されてしまいます。
下のようにしても同じなのですが、何か回避策はありますでしょうか?
Try
If form1.Visible = True Then
form1.Close()
End If
Catch ex As Exception
End Try
446:デフォルトの名無しさん
15/06/23 14:3
447:0:58.35 ID:6iVsGbQf.net
448:デフォルトの名無しさん
15/06/23 14:31:56.21 j07RYUoJ.net
form1とやらをNewしてないんだろ
回避とか言う問題じゃない
449:デフォルトの名無しさん
15/06/23 14:46:36.10 CMci6Bpa.net
>>436-437
自分自身ではないです。
もし、form1が表示されていたら一旦閉じてからロードしたいのです。
今まではこれで動いていたのですが、form1に宣言文を追加したらこのエラーが出てしまうようになりました。
その宣言文が非共有メンバーなためにこのエラーが発生するのではないかと考えています。
Newでロードすると同じフォームが何枚も表示されてしまうので使わなかったのですが、Newを使った上で多重表示を回避する方法を考えてみます。
ありがとうございました。
450:デフォルトの名無しさん
15/06/23 15:27:28.30 vVXy/YjI.net
>>437
ところがVBには既定のインスタンスってのがあってな...
>>438
form1に何をどう追加したんだ?
まあそれが直接の原因かどうかも解らんが、普通メンバーを追加しただけでそのへんの動作は変わらん