X



VB.NET質問スレ(Part43) [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0003デフォルトの名無しさん
垢版 |
2016/06/15(水) 19:45:19.21ID:G76GMmEr
乙.py
0005デフォルトの名無しさん
垢版 |
2016/06/16(木) 19:16:54.33ID:btqH8ipC
0006デフォルトの名無しさん
垢版 |
2016/06/16(木) 19:22:25.92ID:cHK7lzHs
やっぱみんな最新の使ってる?
俺は未だに2005だけど(新しいのにしなきゃいけない理由が見当たらない)
0008デフォルトの名無しさん
垢版 |
2016/06/16(木) 22:26:15.32ID:mb8wywpH
VBの場合は新しい機能を使うと他の連中に理解できなくなる(というか理解しようとしてもらえなくなる)から、
実際新しいものを使う理由はないよ
VBは変化を拒否する人達のための拠り所なのだから
0009デフォルトの名無しさん
垢版 |
2016/06/16(木) 22:33:24.32ID:Oc+4dwCe
VB2008以降は開発方針が変わって(格下げされて)C#の方言になっちゃったから、
変化を拒否する人達の味方としてのVBは2005まで
2008以降は機械的にC#に合わせるだけでVBerに見向きもされない虚しい機能拡張ばかり
0010デフォルトの名無しさん
垢版 |
2016/06/16(木) 22:53:20.88ID:WRcGE86S
vb.netも今はしっかりした言語だと思うけどなぁ。

なんで嫌われちゃうかわからんから、理由が知りたいけど。

未だにオブジェクト指向って何??って人もいないと思うけど。
0012デフォルトの名無しさん
垢版 |
2016/06/21(火) 07:51:56.56ID:pCx5oIjk
age
0014デフォルトの名無しさん
垢版 |
2016/06/21(火) 15:33:01.83ID:REn2K5Xx
ライブラリ的な汎用性の高いものを作るときはC#のほうがいいし
実際にC#で書いてるけど、特定の客むけ業務アプリはVB使うなぁ

C#でガチガチに書くと保守できる人いなくなっちゃうし
客のファジーな要求仕様に対しては、きちんとクラス継承して設計するよりもコピペで実現したほうがいい場面も多い。
0016デフォルトの名無しさん
垢版 |
2016/06/21(火) 19:39:41.14ID:s0xSal8K
ラムダがもう少し書きやすければな
後は各種初期化子も短くしてほしい
他に不満はないかな
0019デフォルトの名無しさん
垢版 |
2016/07/02(土) 01:24:41.31ID:zGWMAOI9
>>14
今時の業務アプリをなんでVBで書いちゃうかなあ
保守できないのは言語のせいじゃねーだろ
0024デフォルトの名無しさん
垢版 |
2016/07/03(日) 07:49:30.52ID:a7dDnFnC
VBと比べてC#が圧倒的に勝っているポイントはλが書きやすいところかな
この他には明確な差はない
0025デフォルトの名無しさん
垢版 |
2016/07/03(日) 07:52:30.52ID:dqZh4yhX
VB関数がないとかMyがないとかデフォルトインスタンスがないとかOnErrorGotoがないとか色々あるだろ
まあ一番違うのはプログラマの平均品質だけど
0027デフォルトの名無しさん
垢版 |
2016/07/03(日) 08:02:35.54ID:a7dDnFnC
>>25
どっちみち使わない機能を差異としてカウントするのはナンセンスだよ
c#で日常的に使う機能とvbで日常的に使う機能ではλの書きやすさ以外に致命的な差はない
0028デフォルトの名無しさん
垢版 |
2016/07/03(日) 08:07:56.54ID:jvF65JbL
>>27
C#目線ならそりゃ一緒だろうさ
VBしかやってなくて他に知ってる言語はCOBOLくらい、なんていう連中が
VBには腐る程いるんだぞ
仕事ならそういう連中がひねり出した糞の山をうんざりするほど見ることになる
0029デフォルトの名無しさん
垢版 |
2016/07/03(日) 08:14:09.67ID:qk7lGSjH
>>27
たとえばASP .NET CoreのテンプレをYeomanで作成し、Macで開発してAzureにデプロイするってのをわざわざVB.NETでやりたいとは思わんね。Referenceの差は致命的。
0032デフォルトの名無しさん
垢版 |
2016/07/03(日) 11:00:19.65ID:g38/oc0e
>>31
使いにくいって指摘が伝わってないなこいつ。第一.NET CoreにVB.NETはまだ対応してないし。C#との差は歴然としてる。
0033デフォルトの名無しさん
垢版 |
2016/07/03(日) 12:53:14.88ID:a7dDnFnC
>>28
今は人の話も過去の資産の話もしてない
純粋に言語として比較したらどうなのという話な
そしてその決意はλ以外大差ねえなって事ね
0034デフォルトの名無しさん
垢版 |
2016/07/03(日) 19:36:03.21ID:QeKzFvfB
VB.NETとビジュアルスタジオつかってデスクトップアプリ作りたいのですが、
プルダウンから選択したり数値入力して、そんで出力ボタンおすと、
エクセルに計算結果とかもろもろ自動で入力したものが出るようなのを作りたいのですが、
こういうのに特化した参考書とかありませんか?
ネットで調べながらでもいいのですが、できれば本でやってみたいと思っています
0036デフォルトの名無しさん
垢版 |
2016/07/04(月) 20:40:01.39ID:LOf4uuq2
最終的には、プルダウンで選んだ条件で出力する表のかたちと画像を代えたいんですけど、
エクセル単体でもできますかね?それならそれでいいですが・・・
0040デフォルトの名無しさん
垢版 |
2016/07/07(木) 07:45:27.32ID:9nALhBhc
中学校は執筆者自身のスキルに難があるからな
「初心者向け」を自分が理解してないことの免罪符にしてる印象
JavaやC#だと本人が完全に理解してる上で初心者向けにかいつまんでるのが多いんだけど、VBでとなると俺は知らないな
0044デフォルトの名無しさん
垢版 |
2016/07/13(水) 22:26:23.47ID:NVocMmQN
未だにVB6使ってるし、vs2015でもVB.NET使ってるが
そろそろc#への移行どきかねぇ
今やネットでの情報はほとんどc#でのコーディングだし
そうなると初心者向けっていう利点が無くなるし
0045デフォルトの名無しさん
垢版 |
2016/07/13(水) 23:08:17.35ID:IHteYO+A
できることは変わらないんだから無理に移行する必要はないような
移行というより選択肢を増やすという意味ではJavaやるのがいいんじゃないか?
Javaに慣れたら自然に.NETでもC#を使いたくなるだろう
0047デフォルトの名無しさん
垢版 |
2016/07/14(木) 15:49:33.75ID:o/KrP/8p
(純粋に技術的に可能か不可能かで言えば)できることは変わらない→せいかい
(プログラマの能力的に)できることは変わらない→まちがい
0051デフォルトの名無しさん
垢版 |
2016/07/15(金) 16:13:26.77ID:iSfUktoe
チェックボックスのFalse/Trueに対応してリストボックスが有効/無効になるイベントドリブンがあるんですが
コレが10コとか20コある場合、同じだけイベントプロシージャを作らないとダメですか?
もっとスッキリさせる方法があれば知りたいです。
0052デフォルトの名無しさん
垢版 |
2016/07/15(金) 16:14:00.44ID:DCcmFlXk
どっかのブログでVB.NETは複数行のコメントが出来ないと書いてあったが、
#if 0 then
~
#endif
で出来るじゃん。
0054デフォルトの名無しさん
垢版 |
2016/07/15(金) 19:31:07.65ID:CgTB7XPU
>>51
全部ハンドルしてsenderで分岐
0055デフォルトの名無しさん
垢版 |
2016/07/15(金) 20:07:33.34ID:DCcmFlXk
どこが痛いのかな?
デバッグ用のコードを埋め込むさいに
よく使われる手法なんだが・・・
0056デフォルトの名無しさん
垢版 |
2016/07/15(金) 20:21:13.97ID:2BxGkjsb
お前らVB.Netなんかやってるの?

俺なんか今の仕事場VB6.0だぞ。
CPUはPen4でOSなんかまだXP。
XPはマズいので何か機会が有ったら通報してみようかと思ってる。
0059デフォルトの名無しさん
垢版 |
2016/07/15(金) 22:53:00.93ID:P5LMS7dI
>>58
教えてください
明治時代のVSのバージョンはいくつだったんですか?
Windowsのバージョンは?
CPUは何だったんですか?
ビル・ゲイツは生まれてなかったと思うんですがマイクロソフトはあったんですね?
0061デフォルトの名無しさん
垢版 |
2016/07/16(土) 00:34:50.26ID:x1AhYluy
>>58
VB6.0の時代、ベテランプログラマーがそう書いてたから真似した。
今もそのクセが抜けない。
0062デフォルトの名無しさん
垢版 |
2016/07/16(土) 09:09:16.76ID:w6ElOsX+
>>60
じゃあ知能レベルの高い()煽りを御享受ネカ゜得るかな?
知能レベルが高いなら出来るよねw
0063デフォルトの名無しさん
垢版 |
2016/07/16(土) 12:22:45.14ID:3oB/Pjks
なんなら俺が最高峰の煽りを見せてやろうか?
0065デフォルトの名無しさん
垢版 |
2016/07/16(土) 16:47:05.11ID:XRI+XgN5
フォームにボタン1つ設置して、そのボタンおすと新しいエクセルのファイルが作られるようにしたいのだけど、どうやればよいですか?
参照の追加から、ライブラリ?を追加することをしなければならないのはネットで理解したのですが、
さしあたりサンプルコードなどをコピペしてみても、エラーに泣てうまくいきません
0066デフォルトの名無しさん
垢版 |
2016/07/16(土) 17:12:58.61ID:w6ElOsX+
ファイル作るだけなら空のファイル用意しといて名前つけてコピーするだけじゃんw
0068デフォルトの名無しさん
垢版 |
2016/07/26(火) 12:49:23.36ID:9fHSiM6q
ASP.NETなんですが、

フォーム認証をやってますが、ログインフォームで、
System.Web.Security.FormsAuthentication.SetAuthCookie(userID, True)
という風に、永続化させたとします。

んで、次回からはクッキーが削除されない限り、ログインフォームに来ないで
前回のログイン情報が生きてるように見えます。(Context.Userに値が入ってきてる)

ここまでは全く問題ありませんが
ログインフォームでは、userIDに応じたユーザー名(漢字)もDBから取得していて
Session("userName") へ格納しています。

永続化させると次回からはログインフォームに飛んでこないようになるため
この仕組みが通らず、Context.User に値は入ってるけど、Session("userName")は空という事態が起きます。

永続化させた後にも、ログインと同等の処理がglobal.asaxの中のどっかを通ると思うんですが
Context.Userの値でDB検索して漢字名をSession("userName")にセットするにあたり
global.asaxのどこへ書くといいですか?
0069デフォルトの名無しさん
垢版 |
2016/07/26(火) 21:07:32.60ID:9v81EC5I
Sessionが認証状態を超えるなら考えないといかんが
とりあえずSession_Startあたりで良いんじゃね
0070デフォルトの名無しさん
垢版 |
2016/08/15(月) 21:51:30.36ID:B7Nw7mUX
・商品がカテゴリ分けされていて階層で管理されている (例. カテゴリ1 → カテゴリ1-1 → カテゴリ1-1-1 → 商品A)
・商品管理画面にカテゴリの階層構造をツリーとして表示する(顧客からの要望)
・管理する商品件数は1000件程度
・ツリー内の好きな位置で新しい商品を追加したり、商品を削除したり、カテゴリ(ツリー構造)を変更したりする
・ツリー内容は全展開する(顧客からの要望)

上記のような機能を実装しているのですが、
1000件程度でもツリーにノード追加したり、階層構造を変更したりすると時間が掛かってしまいます。

BeginUpdateで描画更新をとめる処理を入れるのは既に試していますが、
レスポンスが悪いと感じております。

そこでTreeViewでBeginUpdate以外の方法で処理を早くする方法もしくは、
階層構造が表現できて1000件程度でも高速であるTreeView以外の代替コントロールはありますでしょうか?
007270
垢版 |
2016/08/17(水) 05:55:50.00ID:Cm/M2Pe6
>>71
レスありがとうございます。
グリッド関連ででツリー構造をうまく表現できるものがあるか調査してみたいと思います。
0073デフォルトの名無しさん
垢版 |
2016/08/19(金) 13:22:10.36ID:WvWYXZXO
パネルを敷いて、その上にボタンを貼り付けるとします。
ボタンの位置、上左を起点にして位置決めしたとします。

んで、ボタンの上と下の余白とが同じになるように
パネルの大きさを弄ってますが、これが極めて面倒
(プロパティウィンドウでサイズを数値で打ったほうが早いレベル)

デザイナでマウス使って、簡単に位置合わせできないもんでしょうか。
0074デフォルトの名無しさん
垢版 |
2016/08/19(金) 13:29:16.02ID:SITb9Fi/
>>73
同じ物(パネルの中にボタンがある)が複数あるのならコピペすりゃいいんじゃないの?

そもそも本当にパネルの中にボタンが一つだけ(と言ってるように聞こえるけど)しかないなら
パネルが必要あるように思えないんだけど。
0075デフォルトの名無しさん
垢版 |
2016/08/19(金) 21:27:55.12ID:xxHTQg5s
>>73
a) プロパティウインドウでサイズを打つ
b) デザイン時は適当に配置して実行時にサイズ変更する
c) VisualStudio のアドインを作る
0076デフォルトの名無しさん
垢版 |
2016/09/01(木) 22:14:52.74ID:32zBwDCY
これから自作の業務ソフトを作る為に勉強始めようと思うのですが、まともなコーディング出来るまでどれくらい時間かかるもんでしょうか
VBAをちょこちょこやってるレベルです
会社に出来る人はいないので独学しかないです
いい勉強方法などあれば教えていただきたいです
0078デフォルトの名無しさん
垢版 |
2016/09/01(木) 22:53:09.46ID:4TKfOi4K
>>76
目的のものがあれば調べまくってとりあえず、動くものを作る。
ちゃんと動けば楽しくなって、更に深く調べる。
こんな繰り返しでだんだんと上達してくるんじゃない?

最初からキレイで無駄のないコードを書くのは難しいよね。
どのくらいの期間かは、本人の努力でいかようにも短くなるんじゃない?
0079デフォルトの名無しさん
垢版 |
2016/09/02(金) 20:43:57.57ID:TnXBqpSE
>>77>>78
ありがとうございます。
.NETで一通りコーディング出来たらC#で同じもの作ってみたいと思ってます
とりあえずやってみるしかないですよね。作りたいものは決まってるので頑張ってみます
クラス設計出来るようになるだろうか。。
0080デフォルトの名無しさん
垢版 |
2016/09/02(金) 22:14:27.15ID:LsVX2JMM
VBは情報の質が低いから初心者は変な癖が付きやすい
まともにオブジェクト指向を解説してる書籍なども少ない
どうせC#もやるつもりなんだったら最初からC#でいくほうが近道だよ
0082デフォルトの名無しさん
垢版 |
2016/09/03(土) 00:43:38.63ID:iqP+pTRw
まぁC#でもjavaとかに比べるとObject指向の本とか少ないけどな。VBよりマシってくらいで。
C#もjavaも似たような構文してるから両方やっとくといい。
ついでにC#とVBも構文じゃなくて中身がそんなに変わるもんじゃないから一緒にやっとくといいよ。
0083デフォルトの名無しさん
垢版 |
2016/09/03(土) 08:27:57.79ID:NvN4PBVL
VBはオープンソースプロジェクトがほぼ皆無だからなあ
「スキルの高い人が正しく使えばこうなる」というものに触れる機会が無いのは致命的
0084デフォルトの名無しさん
垢版 |
2016/09/03(土) 12:35:14.12ID:lH1/+nJg
vbは構文が破綻しかけてるからこれからプログラミングを始める人がやるべき言語ではない
0085デフォルトの名無しさん
垢版 |
2016/09/03(土) 12:40:16.59ID:IeofIhBF
.NETがとっつきやすそうだったのでクラスがどういったものがあるか勉強しながらC#に移行出来ればと考えてたんですが
.NETだとオブジェクト指向らしくないコーディングをする癖がついてしまうでしょうか
C#に移行すればそんなこともいってられないくらい矯正できますかね?
0086デフォルトの名無しさん
垢版 |
2016/09/03(土) 12:42:48.70ID:IeofIhBF
>>84
マジすか。。素直にC#から入ろうかな
0087デフォルトの名無しさん
垢版 |
2016/09/03(土) 12:59:42.87ID:HDnGX34n
いや、VBの方がC#より簡単とか今はないよw
宗教論争抜きでもうあえてVBを選択する理由はないから、素直にC#にした方がいいと思う。
0090デフォルトの名無しさん
垢版 |
2016/09/03(土) 13:47:15.45ID:FSQOfEYz
VBは大文字小文字の区別がないからパンチが雑になる
VBやったあとにC#触るとあれっ?てなる

かっこで条件をかかなくていいのはVBの唯一好きな点だな
0092デフォルトの名無しさん
垢版 |
2016/09/03(土) 14:50:51.90ID:zuYDJ0Q0
>>87
c#を選ぶ理由も無いのにc#をゴリ押しするのは宗教戦争でなくて何?
c系は見た目が嫌だから嫌いって俺みたいなのもいるんだが?
0093デフォルトの名無しさん
垢版 |
2016/09/03(土) 15:11:32.11ID:HDnGX34n
>>92
気付いてないみたいだけど、まさにお前さんがやってるようなことが宗教論争なんだよw

見た目なんて慣れの問題だよ。多くの人がそう言ってるでしょ。
本当に致命的に欠点があるのならこんなにC#が支持されてるわけないじゃん。

そういう個人の好みは置いといて、今から始める人がどちらを選んだ方が得をするか、
そういう話でしょ。

ユーザー数や公表されるサンプルコードの数でC#が勝るのは客観的事実だし、.NETの標準がC#なのも事実。
要するにC#を選んだ方が圧倒的に得なのは動かしがたい事実だよ。
0096デフォルトの名無しさん
垢版 |
2016/09/03(土) 16:49:33.83ID:NvN4PBVL
一番の違いはC#を覚えればVBは自動的に使えるようになるけど逆はそうでもないという点だな
そして初学者にとっての学習コストはC#のほうが低いんだからVBを選ぶ理由がない
C#使える人でVBにコンプレックス持ってる人はまずいない
その逆は見ての通りだ
0097デフォルトの名無しさん
垢版 |
2016/09/03(土) 16:53:33.28ID:HDnGX34n
>>96
>C#を覚えればVBは自動的に使えるようになる
さすがにそれはないよw
っていうかその程度にはVBerもC#使えるでしょw
0098デフォルトの名無しさん
垢版 |
2016/09/03(土) 19:28:47.71ID:b8f1NloR
まあ、ホントに全く新規で始めるのにVBかC#かってなら俺もC#を勧めるが
>初学者にとっての学習コストはC#のほうが低い
には同意できん

よい教材か、正しい指導者が居るなら同程度かVBが勝る
ただし、それに当たる確率はC#の方が多いけどな
0099デフォルトの名無しさん
垢版 |
2016/09/03(土) 19:35:40.75ID:HDnGX34n
>>98
いやC#の方が覚えること少なくて初心者向きだと思うよw

VBはなまじ今となっては使わない方がいいレガシー機能とかあってとっつきづらいと思う。
WitheventsとHandlesでとりあえずデリゲートを理解しなくてもイベントが使えるとか、例外もあるけどねそりゃ。
0100デフォルトの名無しさん
垢版 |
2016/09/03(土) 21:04:33.37ID:b8f1NloR
覚えるのが少ないって
キーワード増やしたくないって結果が
+=でイベントハンドラ割り当てたり、拡張メソッドにthis指定しろとか言う言語だからなぁ

ちがう機能には違うキーワード割り当てる方が初心者むきだぞ
今となっては使わない方がいいレガシー機能とか初学者に教える必要ないし
0102デフォルトの名無しさん
垢版 |
2016/09/03(土) 21:37:06.88ID:NvN4PBVL
そうかな
雰囲気が似てるだけの全くの別物だから、ちゃんと「プログラミング」として入門し直すにはVBAの知識なんか邪魔になるだけだと思うが
0103デフォルトの名無しさん
垢版 |
2016/09/04(日) 02:55:14.23ID:oi9Vguju
なんで初心者でない体の物言いばかりなの?
まるで説得力が感じられない
自分の身の丈に合った目線で話せば良いのに
0104デフォルトの名無しさん
垢版 |
2016/09/04(日) 03:25:42.67ID:Gen1hrWU
<sammary>タグ中に<para>いれてもxmlドキュメントで改行できないんだけど、仕様?
VS2012ね
0105デフォルトの名無しさん
垢版 |
2016/09/04(日) 03:32:24.20ID:X56x4opT
自分の場合AccessVBAですが、その知識が邪魔になった事はありませんね
VB6というかVisualStudio6.0の知識(仕様)が邪魔になった事はあります
基本的にVBAやVB6で培った知識は役に立ってますよ
また、似てる似てないはVBAからVB.NETへの移植をやると似てるのが良く分かります
稀なケースですが関数の中身をそのまま新メソッドに張り付けるだけで動く事もあります
0106デフォルトの名無しさん
垢版 |
2016/09/04(日) 07:58:22.83ID:S0F7Ntiy
まぁVBとVBAは全くの別物ってことはないな。
ただ、まずVBAだけやっていた場合はクラスを使って
ポリモーフィズムで、
とかそんなところにすら至れない人が多い。

.NetやっててVBAの改修作業とかたまにやると
まるでコードのステップ数の多さをドヤ顏で自慢するかのような関数とか平気で作られていて
ストレスが溜まることもよくある。

ただ、今の仕事場でjavaで作られているシステムは1メソッド5000行とか有ったりするので
改修するとき作った奴に殺意を覚えたりするけどね。
0107デフォルトの名無しさん
垢版 |
2016/09/04(日) 08:33:24.52ID:jyxhfMV3
>>104
xml自体から消えることはないはずだからそれをどう表現するかは使う側次第
とりあえずインテリセンスに影響しないのは仕様
0108デフォルトの名無しさん
垢版 |
2016/09/04(日) 12:24:52.05ID:Gen1hrWU
>>107
インテリセンスにこそ影響しないと論外なのにな…
というかC#だと改行されるみたいだね
仕方ないからユーティリティ系(そもそもこんなものを作りたくないが)はC#で組むことにするよ
0109デフォルトの名無しさん
垢版 |
2016/09/04(日) 17:33:53.38ID:XyhAhLc0
VB.NETもC#も、東北弁と九州弁の違いでしかないだろ
似たり寄ったり

C++も使える俺だけど、C#ってもVBみたいに感じる
特に変数の扱い(解放)に不安を感じる
0112デフォルトの名無しさん
垢版 |
2016/09/04(日) 18:11:43.89ID:EvCJbTcD
>>110
むしろあってもいいけどなくてもいい機能だねw
オブジェクト初期化子が使えるケースが大半だろうし。

WithevemtsとHandlesの仕組みはC#にもあったら便利だと思う。
C#の==の既定の実装は変だと思う。これはVBの仕様の方が優れてるね。

あと、細かいことだけど、C#はフィールドを宣言と同時に初期化する時、インスタンスメンバーを
使えないとか、構造体のプロパティをコンストラクタで初期化できないとか(回避方法はあるが)
もちろん理由はあるんだろうけど奇妙な制約があるけど、VBにはそれがないのはいいね(もちろん弊害もあるんだろうが)


>>111
My爺さんはリソースぐらいしか使わないし、使わない方がいいと思うよw
あえて使う理由がない。
あんなのVBが馬鹿にされる理由の一つになってるだけw
0114デフォルトの名無しさん
垢版 |
2016/09/09(金) 01:12:27.23ID:1/vZZaq6
VB.net固有ではないかもしれませんが、
VB.netを学習しているのでこちらで質問させていただきます。

Linq to EntityでJoinやGroupJoinなど
リレーションを定義したメソッド用意しようと思っています。
(Linqでリレーションを毎度記述するのはめんどくさいので一か所で済ませたい)

その際、IQueryableで返したいんですけど例えば2つのテーブルを結合したときに、
IQueryable(匿名型)は返せないしIQueryable(Of Tuple(Of Table1,Table2)も無理そうなので
Table1とTable2のプロパティを持ったJoinTableクラスみたいなのを作って
IQueryable(Of JoinTable)にすればできるんですが、
これだけのためクラスを作るのは何となくしっくりこないんです。
この方法しかないでしょうか?

(Code Firstでのテーブルクラスの外部キーでのリレーションや
Fluent APIでのリレーション以外で)
0116デフォルトの名無しさん
垢版 |
2016/09/09(金) 20:33:17.26ID:VuAPiSR8
ふつうリレーションがあるなら、そのエンティティにリレーション定義すると思うんだが
何がしたいのか全く分からん
0117114
垢版 |
2016/09/11(日) 22:13:12.60ID:09WdZpzt
ちょっと質問がイミフでした。
MVCとかMVVMのMでEntityFrameworkを使って
DB関係のロジックをうまいことコーディングしたかったんだけど
もうちょっとアプローチを変えてきちんと整理してから
改めて質問いたします。すいませんでした。
0118デフォルトの名無しさん
垢版 |
2016/09/22(木) 21:07:27.78ID:lsqp5FOM
カスタムコントロールにビジネス上の知識を持たせるのって有りですか?
商品コードは特定の正規表現を満たす文字列であるというビジネスルールがあるとします

@正規表現による検証ができるテキストボックスを作り商品コードを扱う各画面に配置してデザイナで商品コードの正規表現を設定する
A商品コード専用のテキストボックスを作る

@はコントロールがビジネスルールを直接知らなくて良いのでUIとビジネス層が疎結合ですが各画面に商品コードの正規表現を設定する手間がかかります
Aは製造もメンテナンスも楽ですがUIがビジネスの知識を持つ必要があり結合が強まります
0119デフォルトの名無しさん
垢版 |
2016/09/22(木) 21:55:50.74ID:khANt+EO
ドンチュー シンク ソー インディーズ レキシカル コンストラント アンド ビジネスルール?
0120デフォルトの名無しさん
垢版 |
2016/09/22(木) 21:57:28.36ID:ouE1p1JD
検証するコントロールなりクラスなり作って、必要ならそれがテキストボックスの参照持つのが本筋の気はするけど

どこまでUIとロジックの分離をするのかと
ビジネスロジックと定型フォーマットチェック程度の一般的なロジックなのかの切り分けどう考えるかじゃね

個人的にはビジネスロジックを含んだUIパーツがあってもよいと思うけど
0121デフォルトの名無しさん
垢版 |
2016/09/23(金) 02:12:52.23ID:gxk7d5Lf
>>118
@のカスタムコントロールAを作って
それを継承して正規表現を設定済みのカスタムコントロールBを作る
0122デフォルトの名無しさん
垢版 |
2016/09/23(金) 02:31:01.60ID:h98BTTsU
>>118
どっちもよくないと思うよ。

入力の検証に必要なルール(この場合は正規表現バターン?)はあくまで
ビジネスルール側から提供されるようにすべきだし、それで何の問題もないでしょ。
0123デフォルトの名無しさん
垢版 |
2016/09/23(金) 02:34:00.44ID:h98BTTsU
あ、ちょっと説明が足りなかったけど、要するにこの場合は
カスタムコントトールがビジネスロジック側の適当なクラスにある、検証に必要な正規表現パターンを返す
静的プロパティか何かを参照するだけ。
0124デフォルトの名無しさん
垢版 |
2016/09/23(金) 12:43:42.35ID:O2gBGGU9
>>123
>カスタムコントトールがビジネスロジック側の(略)静的プロパティか何かを参照するだけ
UIパーツ(カスタムコントロール)がビジネスロジッククラスに依存するのはどうなのよ
0126デフォルトの名無しさん
垢版 |
2016/09/23(金) 12:53:21.42ID:o2Q2dMOD
そもそも正規表現で制御出来るような単純な字句的制約はビジネスルールとは言わん
それとも数値専用のテキストボックスですらビジネスルールだからUIから分離すべきとでも言う気か
0128デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:27:44.13ID:nupyc52F
>>126
正規表現が使えないならビジネスロジック側に検証用の述語メソッドを用意してもらう。

コントロールをより汎用的なものにするために、>>118にあるように
コントロールに検証用の正規表現パターンのプロパティ(あるいはPredicate<T>の
プロパティ)を持たせてもいいけど、その場合もデザイナで正規表現パターンを
設定しちゃうのはまずい。

検証用の正規表現パターン、あるいは述語メソッドはあくまでビジネスロジック側から
受け取るようにしなきゃ
0129デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:31:47.45ID:nupyc52F
あと、数値だって上限下限があるとか、特定の数値は不可とか、
固有のルールはいろいろありうるよね
0130デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:35:38.72ID:o2Q2dMOD
>>128
なぜそれレスを俺にするのかよく分からんな
俺は
そんなものはビジネスルールではない
と言っているのだぞ
0131デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:37:43.52ID:o2Q2dMOD
>>129
そういう制約はビジネスルールに入る場合も多いが
単純に数値であるという字句的な制約はビジネスルールとは独立したものだ
0132デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:45:53.84ID:nupyc52F
>>130
よくわからんこと言ってるけど、例えば正規表現で簡単にフィルターできる、
「ユーザーIDは半角英数字で8〜20文字、ただし先頭の文字は半角英字のみ」
だって立派なビジネスルールだ。
0133デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:49:14.26ID:k2scBugP
画面に配置する度にテキストボックスに何が入力されるのかを判断してデザイナから正規表現を設定したりLoadイベントで検証オブジェクトを注入したりはめんどくさい
型が分かってるなら○○型用テキストボックスを作って配置するだけにした方が簡単だと思う
でもなんとなくUIが知識を持ちすぎてるように感じて気持ちは良くない
0134デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:49:46.76ID:o2Q2dMOD
>>132
こう言えば分かるか
ビジネスルールが興味があるのはあくまでもValue
UIコントロールが制御するのはValueとして評価される前のTextのValidation
0136デフォルトの名無しさん
垢版 |
2016/09/23(金) 13:58:45.95ID:o2Q2dMOD
>>135
そうか、じゃあこれはどうだ
ユーザーが入力したものはあくまでもキャラクタコードの羅列にすぎない
当然ビジネスロジック側が扱える値として評価出来ないようなデタラメなものも含んでいる
それをビジネスロジックが望む値として評価出来るようにするまでがUIコントロールのもつ役割

それ以降の値の持つ意味的な制約をコントロールするのはビジネスロジックの仕事
0137デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:08:32.32ID:nupyc52F
>>136
言いたいことはわからないでもないが、例えば現実の問題としては
入力したユーザーIDが不適切な場合はダイアログのOKボタンをクリックする前に
ErrorProviderか何かで通知するか、そもそも入力できないようにして欲しい、
という要望があったりする。

繰り返しになるけど、そもそも論として、ビジネスロジック側がUIに依存したらおかしいが、
UIがビジネスロジックに依存しても何もおかしくない。
0138デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:17:08.23ID:o2Q2dMOD
>>137
いや俺が言ってるのはどっちが依存したら良いとか悪いではなくて
validationにもUI側が受け持つべき部分とビジネスロジック側が受け持つべき部分の
2種類あるという事だ
そして元々>>118が言ってる商品コードを表す文字列のルールはUI側が受け持つべき部分であり
ビジネスロジック側が扱うのは商品コードとして有効な値に評価された後でよい
という事な
0140デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:20:55.08ID:AqTRNsCZ
入力項目をファクトリから生成するようにして
ロジックの配下におけばいい
0141デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:22:49.17ID:o2Q2dMOD
>>139
うーん
ビジネスロジックが知っているのは値の持つ意味
特定の文字列が特定の形式、これはむしろクラスと考えても良いが
に合致するかどうかってのはビジネスロジックが知る必要はない
0142デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:31:36.51ID:k2scBugP
>>141
コード値のプレフィックスを見て処理を分岐するとか
文字列の形式がビジネスロジックに影響する例は探せばいくらでもあると思うけど?
もちろんプログラム設計が悪いとかじゃなくそういう要件が現実にあるって話で
0143デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:34:06.56ID:nupyc52F
>>138
そんな分類はプログムを綺麗に書きたいプログラマ側の都合に過ぎないよ。
何の意味もない。
ユーザーから見たら怠惰なプログラマのただの身勝手に過ぎない。
0144デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:38:06.66ID:o2Q2dMOD
>>142
その例の場合は、たまたま、というか確かに現実的に多用される手法だけど

値の意味を文字列の形式で表わす様に設計されたコードである

為にロジック的に文字列の形式を評価して分岐しているように見えるというだけで
原則的にビジネスロジックが判断してるのは値の意味なんよ
0145デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:38:15.25ID:nupyc52F
今時webのUIだって、入力した値が不適切なら入力した段階で教えてくれるよね。
0146デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:39:23.90ID:o2Q2dMOD
>>143
おいおいプログラムを綺麗に書きたくて議論してたんじゃないのかよw
0147デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:42:38.64ID:nupyc52F
>>146
こちらはプログラムを綺麗に(可読的かつ後の修正に耐えるように)
UIがビジネスロジック側から提供される入力検証用のロジックを参照せよと言っている。

君が言っているのは、そもそもUI側でビジネスロジックべったりの入力検証なんかするなという話。
それはただの現実の要求を無視したただの怠惰だ。
0148デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:47:02.61ID:o2Q2dMOD
>>147
別にお前の意見
> UIがビジネスロジック側から提供される入力検証用のロジックを参照せよ
これを批判するような事を言ってるつもりは全くないのだが
なんか言い方が悪かったか?
0149デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:48:40.29ID:k2scBugP
>>144
たまたま文字列じゃなくて
まんまドキュメントにナントカのIDは先頭がこの文字で何桁のハイフン区切りでハイフンの後ろを取り除いたら親ナントカのIDに一致する文字列ですみたいなことが書いてあったりする
これはプログラミングで必要だからそうなったものではなく実際にエンドユーザーがそういう認識でナントカIDを認識、運用している
これはどうみたって見た目の問題じゃなくビジネスロジックじゃないかな?
0151デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:54:34.72ID:o2Q2dMOD
>>149
うん、ユーザーは字句表現と値の意味を区別するって意識がそもそもないからな
でも開発者はそこから字句表現と値の意味を分離してビジネスロジックの本来的な意味を
読みとらないとゴチャゴチャと整理されないままの融通の利かないいわゆる
「使えないシステム」が出来あがる
0152デフォルトの名無しさん
垢版 |
2016/09/23(金) 14:58:31.27ID:o2Q2dMOD
>>150
少し話が展開しすぎたから俺もよくわからんw
0153デフォルトの名無しさん
垢版 |
2016/09/23(金) 17:47:43.12ID:O2gBGGU9
>>137
>UIがビジネスロジックに依存しても何もおかしくない
別にお前の意見に意義があるわけでなないんだが
UIパーツ(全体としてのUIではなく、あくまでUIを構成するパーツな)の再利用性についてどう考えてるのか教えてくれ
0154153
垢版 |
2016/09/23(金) 17:51:38.54ID:O2gBGGU9
×意義
○異議
な。意義がないとか、全否定してるみたいだから訂正しとく
0155デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:00:12.62ID:pqhQamNt
>>153
もう書いてますよ>>128

汎用的に作った方がいいか、どの程度汎用性を持たせるかはケースバイケース。
別に一つの目的にしか使えないコントロールがあっても何も悪くない。
0156デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:04:25.83ID:O2gBGGU9
>>152
お前の意見はビジネスロジック以前の単純なチェックはUI自身でやらせろってことだと思うが
じゃあ、ビジネスロジックにかかわる入力チェックを行うUIパーツはどうあるべきだと思うの?
0157デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:16:24.17ID:O2gBGGU9
>>155
>別に一つの目的にしか使えないコントロールがあっても何も悪くない
なるほど。おおむね同意だが、さすがに>>128からこれを読み取るのは難しいw

まあ、これを許すのなら
>デザイナで正規表現パターンを設定しちゃう
ようなものや、いっそコントロール自体に検証パターンをハードコーティングしたようなものも
許されていいんじゃないかという気もするけどな
まあ、その辺の加減はまさに
>どの程度汎用性を持たせるかはケースバイケース
って話ではあるが
0159デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:29:52.08ID:o2Q2dMOD
>>156
どういう意図の質問なのかいまいちよく分からんが

俺が言っているのは
UIで行なうべきはレキシカルなvalidation
ビジネスロジックが行なうべきはセマンティックなvalidation
だから原則的に
ビジネスロジックにかかわる入力チェックを行なうUIパーツ
というのは存在しない

ただし俺はジョンレノンと違って現実見てる人だから
UI側でセマンティックなvalidationをした方が実装的に都合が良い
というのであればそれはそれで全くかまわんよ
0160デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:40:12.83ID:O2gBGGU9
>>159
実装の都合じゃなくて、ユーザビリティ的に当然にそれを求められるわけなんだが...

セマンティックなvalidationを行うためのUIコントロールはどうあるべきかって話をしてたと思ったんだが
ちょっと違う次元の話をしてらしたのね
0161デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:45:07.36ID:o2Q2dMOD
>>160
いや元の質問はレキシカルなvalidationについての質問なんだが
それをお前らがセマンティックなvalidationであるかの様に話してるから
いやそれは違うぞ、と
こういう流れやね

で、ユーザビリティの為にセマンティックなvalidationをUIが受け持つ必要は全くない
そこはあくまでも実装上の簡便性と拡張性とのバランスの問題
0162デフォルトの名無しさん
垢版 |
2016/09/23(金) 18:58:27.30ID:O2gBGGU9
>>161
>カスタムコントロールにビジネス上の知識を持たせるのって有りですか?
>商品コードは特定の正規表現を満たす文字列であるというビジネスルールがあるとします

正規表現っていうのはあくまでビジネスルールの例として出されたものであって
UI(カスタムコントロール)とビジネスロジックの関係が主題だと読み取るのが当然だと思うんだがな

わかってて論点をずらしてるのか、わからないから論点がずれてるのか
ま、これ以上はまともな議論になりそうもないからこの辺で俺は引っ込むわ
0163デフォルトの名無しさん
垢版 |
2016/09/23(金) 19:01:43.37ID:o2Q2dMOD
ただの負けずぎらいだったかw
0165デフォルトの名無しさん
垢版 |
2016/09/23(金) 22:31:30.97ID:ytBluy/j
VBで何言ってんの
イベントハンドラにベタ書き、
レビューで文句言われたらモジュールにそのまま移動するだけ
これがVBやで
0167デフォルトの名無しさん
垢版 |
2016/09/23(金) 22:46:35.09ID:h+j53T+k
どこもそうやで
コントローラーとか作ってもいいけど、何書くか迷う人続出
0169デフォルトの名無しさん
垢版 |
2016/09/27(火) 00:38:43.68ID:oI7fJQ/J
だってうちの会社Linq使うなっていうんだもん…
8000行の画面のカスタマイズ(クラス名はfrm00100000020)を押し付けられても困るし…
0170デフォルトの名無しさん
垢版 |
2016/09/27(火) 00:43:58.16ID:rJ2xXuAE
メソッドチェーンなら誤魔化せるだろ
それか非拡張メソッド形式で呼び出し
まさかメソッド禁止ってこたないだろうし
0171デフォルトの名無しさん
垢版 |
2016/09/27(火) 11:47:43.35ID:woj1K1Xu
フォームにコンテナ(たとえばGroupBox)を張って
そのコンテナの中にテキストボックスを数個おいて幅などを調整

最後に、そのテキストボックスがセンターになるように
コンテナの幅や高さを弄っているのですが、きちっとセンターになりにくいです。
(手間がかかる)

コンテナに含まれるコントロールに応じて
コンテナサイズを自動的に調整する手段はないのでしょうか。
0172デフォルトの名無しさん
垢版 |
2016/09/27(火) 12:04:25.39ID:K+U0Izbl
>>171
率直に言ってどこが手間かさっぱりわからん。
っていうか、あんたいつも質問だけしてトンヅラしちゃう人だよねたぶんw
0174デフォルトの名無しさん
垢版 |
2016/10/08(土) 09:07:35.92ID:vL+1Z5yj
VBやってる奴が、VB消えてC#やるくらいならJAVAやると言ってたけど
絶対にC#やるね

VB以外使う気のない向上心の低い人間が
eclipseやnetbeensなんぞ
使える筈がない
0175デフォルトの名無しさん
垢版 |
2016/10/08(土) 09:11:21.14ID:vL+1Z5yj
VB6のプログラムをVB.NETにリプレースするとか話があるんだけど
たぶん、VB6のお作法を可能な限り再現したいんだろうな。

goto文とか。。。
0176デフォルトの名無しさん
垢版 |
2016/10/08(土) 10:18:06.75ID:xglEW1n9
>>174
向上心があってもC#だとおもうけどな
最近Iavaの仕事入ったけど何が良いのか分からない
昨日javaやってる人の話では
取り敢えずNull許容型も使えないし
OrElseやAndAlsoも使えないらしいじゃないか
この調子で行くと実はvb6と大して変わらないんじゃないか?
0178デフォルトの名無しさん
垢版 |
2016/10/08(土) 10:22:45.61ID:vrZNWqvT
>>174
向上心もクソも、Javaのドカタ開発なんか決まりきった枠組みの中でコピペ垂れ流すだけやぞ
コボラーやペチパーからDDDとかやってるガチな連中まで誰でもウェルカムなJavaと違って
.NETはVBがカスの受け皿になってるためにC#は比較的意識高い空気があるからむしろVBerには馴染みにくいと思われる
0179デフォルトの名無しさん
垢版 |
2016/10/08(土) 11:53:52.07ID:lglHWhKO
>>175
弊社でも同じような要件で仕事をたまにやってるけどうまくいった試しがない
コードや作法を維持するために不要なハックコード・パッチコードを大量に追加しなければならない
VB6のコードも酷いけどそのせいでむしろ保守性が悪くなる
リプレースの前にVB6のままリファクタリングすればうまくいくんだけどな
0180デフォルトの名無しさん
垢版 |
2016/10/08(土) 20:58:07.90ID:c2XSdclF
弊社てwこいつアホだろw
0181デフォルトの名無しさん
垢版 |
2016/10/08(土) 22:09:50.82ID:160QOg/G
>>178
JavaもC#も大差なく素人から達人まで幅広くいる
VBが圧倒的に地を這っているのは確かだがそれでC#erを持ち上げるようなことはないよ
0182デフォルトの名無しさん
垢版 |
2016/10/08(土) 22:15:48.56ID:50+P0fkb
>>175
リプレースっていうのはそういうもんだ
せっかくだから・・・といろいろと色気を出すとドツボにハマる
0186デフォルトの名無しさん
垢版 |
2016/10/09(日) 00:13:11.37ID:wwPMkRFM
>>183
ツールやライブラリのサポート打ち切りが多い
まだまだ余裕で動くんだけど公式にサポートが無いという状況を恐れているお客さんは少なくない
0187デフォルトの名無しさん
垢版 |
2016/10/09(日) 01:31:29.79ID:r1p0JkFt
>>185
意識高いかどうかはともかくC#やJavaくらい使えて当然だろ?
まさかVBerはみんな自分みたいにC#使えないのが当然だとでも思ってるのか
0188デフォルトの名無しさん
垢版 |
2016/10/09(日) 01:49:02.64ID:B/N5a+DZ
>>187
使える人もいるし、使えない人もいるよ
家に閉じこもってないで、もっと外の世界を見よう
0193デフォルトの名無しさん
垢版 |
2016/10/09(日) 12:31:22.13ID:gnTrYliV
単純にBASICのネーミングを嫌う人が多いよね
IFとかFORのブロックをEND〜から{}に変えるだけで格段に読みやすくなるのになぁ、とは思う
0194デフォルトの名無しさん
垢版 |
2016/10/09(日) 14:00:15.61ID:u4wAPfrW
俺はそこはむしろ逆だな
単純な見易さで言ったら波カッコよりキーワードの方が見易い
そしてキーワードよりインデントのpython形式の方が見易い
0195デフォルトの名無しさん
垢版 |
2016/10/09(日) 14:51:08.11ID:7VtbLppb
だよなw
{}の方が見やすいとかどんな脳してるんだw
あとインデントは必要だけどそれだけだったらページ跨いだ時にどうもならん
0197デフォルトの名無しさん
垢版 |
2016/10/09(日) 15:57:49.59ID:u4wAPfrW
>>195
でもページまたぐようなブロックってクラススコープだけだろう
1画面以内(多くても15行ぐらい)のメソッド以外書いた記憶最近じゃもうないわ
0200デフォルトの名無しさん
垢版 |
2016/10/09(日) 18:08:02.87ID:r1p0JkFt
>>199
ページ跨ぐ長大なメソッドを生産するのがVB脳で
適当に分割するのがC#脳だとしたらそのレスは文字通りの賞賛の意味になるがお前はそれでいいのか
0201デフォルトの名無しさん
垢版 |
2016/10/09(日) 18:48:02.41ID:B/N5a+DZ
C#使ってる人はなんでこんなにマウンティングしたがるの?
VBに親でも殺されたの?
0203デフォルトの名無しさん
垢版 |
2016/10/09(日) 19:04:24.18ID:4RubojJS
今のVBはBASICの文法と後方互換性を保ったまま機能を追加しすぎてるから
C#に比べて単純に書きにくいし読みにくい
俺にとっては最も難しいプログラミング言語の一つ
0204デフォルトの名無しさん
垢版 |
2016/10/09(日) 19:07:05.46ID:qa3paDEf
やたら関数化する人のソースって見づらいよねって言われました
VBだと例えばボタンを押したときの機能は1つの関数にまとめるのが良いのでしょうか?
0206デフォルトの名無しさん
垢版 |
2016/10/09(日) 19:51:46.57ID:yh5soZNP
>>201
C#erだけど
Cの系譜じゃないからVB嫌い

読めばだいたい解るけど、
1ヶ月もやると変な癖が付くから解りたくない

でも、.NETのひとくくりで
VB任されたりするから
いち早く死んで欲しいんだ
0207デフォルトの名無しさん
垢版 |
2016/10/09(日) 19:59:53.11ID:B/N5a+DZ
>>206
VBの仕事断ればいいよ
断れないなら、C#で書いてVBに変換したらいい
あと癖っていうか、それはその言語に慣れてるだけで、別に悪いことじゃない気がするわ
0209デフォルトの名無しさん
垢版 |
2016/10/09(日) 20:18:58.29ID:yh5soZNP
>>207
出来ないことはないけど
やりたくない

が通用するほど
世の中が甘くないのが悪い

VBが.NETじゃなければ通用するかも知れんけど
不幸なことにVBは.NET
0211デフォルトの名無しさん
垢版 |
2016/10/09(日) 21:57:54.02ID:yh5soZNP
VBユーザを引き続き取り込むためにVB.NETは生まれ
その役割は果たしたでしょ
J#と一緒に消えてよかった存在

それをダラダラ延命したせいで
混乱してる

アップル陣営はObject-CとSwift

JAVA陣営はJAVAとScala

なのに.NET陣営はVB.NETとC#とF#

多すぎて.NET陣営は敬遠したくなる

洗練されてないよね
0212デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:03:08.35ID:yh5soZNP
Pythonみたいにインデントで書けるなら
VB.NET見直す

ENDとか、このご時世にタイピング多過ぎ
0215デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:06:59.03ID:qa3paDEf
記号だと覚えるの面倒じゃん
言語によって記号の意味が微妙に違ったりするしな

記号による混乱といえばC言語のポインタが元祖じゃないかとおもってるけど
最近の言語だって配列が丸カッコと角カッコで違ったりと無駄な暗記力が要求される
0216デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:08:52.54ID:qa3paDEf
>>213
1関数2000行〜3500行で1ファイル1万行超えとか普通なの?
COBOLは知らないけど事務処理系の言語だから共通してるのかな
0217デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:14:42.21ID:yh5soZNP
>>215
VBの配列ってカッコ使わないの?

使うなら、他言語するなら
結局無駄な暗記力が要求されるんじゃね?
0219デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:17:33.80ID:yh5soZNP
VBのリプレイスをしましょう!
VB.NETで

この絶望感はキツイ

クライアントが同じような言語だから
簡単前提で話してくる

ここが、VB.NETの害悪だと思ってる
0220デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:20:28.57ID:B/N5a+DZ
そこは簡単じゃないって訂正するか、別の案をだしたらいいんでは?
言語に限らず馬鹿なクライアントの仕事はろくなもんじゃないよ。金持ってたら別だけど
そんなのと仕事をしなきゃいけない自分の立場を恨むしかないね
0223デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:46:22.52ID:qa3paDEf
>>218
1万行ぐらいなら余裕で動いてくれるよ
その点はVBすごいって思うよ

>>219
来週からVB6からVB.NETへのリプレース案件やるよ!
しかも客側の担当者はそのアプリを使ったことがない人だよ!!
市販コントロール使ってるからビルドすら出来ないよ!!
0224デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:50:12.51ID:yh5soZNP
>>222
で、簡単にVB時代のコードを書くんだから
VB.NET使いはバカにされる

時代は関数型言語に入ってるのに
構造化プログラミング止まりだもんな
0225デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:52:07.63ID:yh5soZNP
>>223
VBリプレース
グレープシティとの合わせ技は
威力抜群だよな

で、WPFとか要求されたら
VB使い死ぬんじゃね?
0226デフォルトの名無しさん
垢版 |
2016/10/09(日) 22:55:46.79ID:yh5soZNP
VB6のアプリ8画面
一ヶ月でリプレースして

同じVBだから簡単でしょ?

こんな糞案件全力で拒否したかったのに
営業が取ってきやがった!!!
0227デフォルトの名無しさん
垢版 |
2016/10/09(日) 23:17:49.10ID:yh5soZNP
VB6のプログラムとか
Windows10でも動くんだから
無理に.NETなんかにしなくて良いだろ

windows終了後に
Scalaで作りゃ良いよ
0229デフォルトの名無しさん
垢版 |
2016/10/09(日) 23:43:38.69ID:B/N5a+DZ
>>224
関数型なんて普及しないからどうでもいいよ

質問スレなのに、チラシの裏になってるのは如何なものか
0232デフォルトの名無しさん
垢版 |
2016/10/11(火) 10:58:49.29ID:TGkxV+I0
C#よりVBが優れているところ
  ・関数内でStatic変数が書ける
  ・With 〜 End With
  ・拡張メソッドで、拡張元を参照でき、その内容を書き換えることが可能

VBが残念なんところ
  ・拡張メソッドで、Object型を拡張できない
0236デフォルトの名無しさん
垢版 |
2016/10/11(火) 20:57:51.30ID:k359FhBZ
ん?
俺は2008でVB見切り付けてもう使ってないけど、ちょっと前にC#スレで
話題になってたみたいにVBは拡張メソッドでthisを参照で渡せるみたいだから、
IncとかPostIncとか適当な拡張メソッド追加したらC#みたいな感じにできるでしょ

っていうかVBにも加算代入演算子はあるでしょw
0241デフォルトの名無しさん
垢版 |
2016/10/12(水) 07:34:22.83ID:uoNvbxNE
素人がインクリメントで
混乱しちゃうから
ポリシーでできない
初学者用として良い思想だと思う

学習用のVB
仕事用のC#
0243デフォルトの名無しさん
垢版 |
2016/10/12(水) 07:39:44.75ID:uoNvbxNE
学習用のVBを仕事で使うから
多次元配列配列とか
main関数だけのシステムが
出来あがる

VBは悪くない
0248デフォルトの名無しさん
垢版 |
2016/10/12(水) 21:25:37.07ID:85o/Yoqy
VB6以前にあったVariant型って完全撤廃されたけど
C#にはvarっていうのがあるんだね。
一度値を入れると入れた値の型で確定するっぽいけど
これって昔のVB6みたいに配列でも入れられるのかなぁ。
VB6のVariant型はそれこそ何でも突っ込めるユルユルな危険な型だったけど
C#のvarの緩さってどのくらいのもんだろ?
俺の肛門くらいかな。
0251デフォルトの名無しさん
垢版 |
2016/10/12(水) 21:36:02.40ID:XzbrdxqH
varは別にVariantとは関係ないよ
varって型があるわけでもない
var obj = new Hoge();
Dim obj As New Hoge()
これが意味合い近い
右辺は型が自明だから、その代入される変数も型は自明
なので変数の型の記述を省略できるねってだけ
var obj; みたいに代入(初期化)が存在しないとコンパイルエラー
0252デフォルトの名無しさん
垢版 |
2016/10/12(水) 21:57:17.32ID:sdd9b4H+
varは型じゃなくて、「型は推論してね、なければ今だけその型を作ってね」というコンパイラへのメッセージ
var自体は型じゃない
0254デフォルトの名無しさん
垢版 |
2016/10/12(水) 22:17:04.44ID:9oDwxE2X
実際VBは>>248みたいなアホの子ばっかりだから現実には使えんよ
未だにExplicit付けろだのStrictわからんだの言ってるレベルだから浸透するまでには10年はかかるんじゃないかな
0256デフォルトの名無しさん
垢版 |
2016/10/12(水) 22:41:38.09ID:sdd9b4H+
今更だけど >>284 の質問に答えると
「何でも入れていいのよ」と言っておきながら、いざ入れようとすると
「それは入れられません」だの
「入れるって言ってたものと違います」
と拒絶するんだから、まぁ、たぶん、>>284 の肛門と同じくらいだと思うよ
0259デフォルトの名無しさん
垢版 |
2016/10/13(木) 01:20:39.30ID:YFhpRSU4
>>256
>「何でも入れていいのよ」と言っておきながら
今更の上に大嘘こくとかもう
varはコンパイル時に型が決まってるから何でもは入らんわ

型を明示してないDim文は、Optionの組み合わせでどの型になるか変わる
なんでも入れたいならVBならObject型つかっとけ
0264デフォルトの名無しさん
垢版 |
2016/10/15(土) 23:13:41.57ID:wRrM2+Dz
リプレース案件に配属されたんだけどリプレースのやり方がわかりません
リプレーステクニックを教えてください
0265デフォルトの名無しさん
垢版 |
2016/10/16(日) 00:38:20.58ID:FoYCot45
上司に頼んでお前自身をリプレースしてもらったら?
大炎上を未然に防ぐ最強のリプレーステクニックだと思うよ
0268デフォルトの名無しさん
垢版 |
2016/10/16(日) 13:41:38.70ID:XpgX501Q
画面も無く条件分岐と四則演算だけで
構成されたVB6アプリなら
VB.NETでリプレースした方が良いけど
画面があるならWPFとC#のが
良いだろ

後々を考えたらね
0270デフォルトの名無しさん
垢版 |
2016/10/16(日) 16:48:29.74ID:43exmUNo
Formにビジネスロジックもデータアクセスもベタ書き
コードの書き方も下手なので処理の副作用が多くイベント発生順序がちょっと狂うだけで正しく動作しなくなる
リプレース前のUIコンポーネントは再利用できないからイベント発生順序をどうしても維持できなくなりバグが発生する
リプレース案件の問題を集約するとほぼ全部これなんだよな
0272デフォルトの名無しさん
垢版 |
2016/10/16(日) 17:52:06.07ID:7MDcSmyp
>>270
> イベント発生順序をどうしても維持できなくなりバグが発生する
こういうのはバグでなくリプレースするスキルがなかったと言ってくれ
0273デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:32:51.71ID:43exmUNo
>>272
リプレースするスキルがなくてバグが発生するんじゃないか?
納めた物が期待通り動作しなければバグだろう
0275デフォルトの名無しさん
垢版 |
2016/10/16(日) 18:52:10.28ID:43exmUNo
>>274
当然だけど事前に合意をとったテスト仕様は全部クリアした上で納めるよ
でも他になんのバグも出さずに納品ってのは不可能
0277デフォルトの名無しさん
垢版 |
2016/10/16(日) 19:38:47.95ID:7MDcSmyp
>>273
バグは紛れこむものでスキルには関係ない
お前が言っているのはスキル不足による必然的な誤り
0280デフォルトの名無しさん
垢版 |
2016/10/16(日) 21:15:16.07ID:7MDcSmyp
>>279
そもそも設計が出来ていないものはバグとはいわんし
テストとはそんなものを無理矢理つじつま合わせる事でもない
そんな事ばかりしてたらそりゃお前らの言う「バグ」は限りなく湧いて出るけど
要するにそれは未完の不安定な何かであり完成した製品には永久にならない
0282デフォルトの名無しさん
垢版 |
2016/10/16(日) 21:35:21.06ID:7MDcSmyp
>>281
但しコーディングに限る、とは誰も言ってないけど
正しさの中に紛れこんだ誤りがバグ
>>270のはそもそも正しさ自体が未定義の状態
0285デフォルトの名無しさん
垢版 |
2016/10/16(日) 21:44:56.02ID:7MDcSmyp
>>284
一部の仕様が未定義であるとわかるのはあるべき正しい仕様が定義されているからであり
あるべき正しい仕様というものが定義されていない状態では未定義の仕様というものは存在しない
0286デフォルトの名無しさん
垢版 |
2016/10/16(日) 21:53:13.50ID:43exmUNo
ボタンはあるけど押した時の処理の仕様がない
メソッドの引数が不正な場合の仕様が決まっていない
ファイルがない時の仕様が決まっていない
データベースがオフラインの場合の仕様が決まっていない

現実世界では未定義の仕様は幾らでも存在します
0287デフォルトの名無しさん
垢版 |
2016/10/16(日) 21:58:29.40ID:7MDcSmyp
>>286
未定義である事は正しい仕様が存在するからわかるのだと言っているのだが
どうも噛みあわんな
というかお前の言ってるのは仕様じゃなく詳細設計のもれじゃないか
そもそも未定義の仕様ですらない
0288デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:02:19.33ID:FoYCot45
>>287
賢いこと言ってるつもりかもしれないけど、そもそも君の言う正しい仕様というのはどういう意味?
そこを具体的に定義しないまま偉そうなこと言っても全部ブーメランだということに気付いてる?
この板で特に定義を明示しないまま「正しい仕様」というと一般的には
漏れなくミスなく実装すれば開発の目的を達成できる仕様ということだろうから
その意味では>>286は正しい
0289デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:06:09.37ID:7MDcSmyp
>>288
既に目的を見失ってるな
問題なのは正しい仕様がなにかではなく
正しさ自体が未定義の状態の事をバグとは言わない
という事なのだが
0291デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:17:40.80ID:7MDcSmyp
てかお前らスキルなくて何も出来てないだけって言われたのが他人事に思えなかっただけだろ
今まで反論の体をなしてるレスは1つもなかったよ
0293デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:32:36.67ID:iJDqhd9/
バグというのは仕様書に対して異なる実装が行われた時の動作のこと
仕様が不足しているのは仕様漏れ。仕様バグという言い方もないわけじゃないが方言といっていいだろう
設計レベルの成果物、実装レベルの成果物で何と何が紐づいてるかぐらい
おまえらだって知らないわけじゃないだろう
基本情報レベル、新人教育レベルの常識だ
0294デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:38:09.46ID:skNQwynR
すべての元凶
>バグは紛れこむものでスキルには関係ない
>お前が言っているのはスキル不足による必然的な誤り
0295デフォルトの名無しさん
垢版 |
2016/10/16(日) 22:38:42.66ID:FoYCot45
>>289
だからその正しさというのは一般的には目的を達成できるかどうかでしょ
まあシステムの目的なんて考えずに仕様書の通りにコード書くことだけが仕事の人なのかもしれないけど、
だからって納品時に「仕様書に書いてないからここは空白にしました」なんて言うのか?
そうじゃないとしたらお前は何をもって仕様がおかしいとか抜けているとか判断してるんだ?
結局その物差しは目的だろ
俺が言いたいのは、正しさというものをあえて君が定義しない限りは ID:43exmUNo のように
「目的に合わないのは欠陥」という暗黙の前提で話をしてしまうのはそんなに不自然じゃないだろということ
0296デフォルトの名無しさん
垢版 |
2016/10/17(月) 05:17:16.90ID:kp8H+gVW
昔の、ホストコンピュータな世界ではたしかに、仕様不備(設計ミス)とバグ(コーディングミス)とを分けてた
プログラマは仕様書書かなかった時代の話だ
いまどきその感覚で話してるやつとは、すくなくとも.NET案件は一緒にやりたくないなぁ
0297デフォルトの名無しさん
垢版 |
2016/10/17(月) 06:25:20.96ID:urBt226A
仕様書を書いて顧客に納品する理由は合意形成の意味が大きい
この仕様書の通りに作るけど良いんですよねって念押しするために仕様書を納品する
仕様書を納めた以上は仕様書と違うコードを書いてバグが出たら製造責任
だけど仕様書そのものがバグってるなら合意とってっますよねってゴネることができる
開発はボランティアじゃないからな
コーディングのバグか仕様書のバグかを見極めるのはそういう意味で非常に重要
0298デフォルトの名無しさん
垢版 |
2016/10/17(月) 07:11:26.89ID:0a7DR5WO
お前らどうしても理解できないみたいだな
問題にしているのはそれがバグなのか必然的に動かないだけなのか
動かないものをなんでもバグと言えばいいってもんじゃない
0299デフォルトの名無しさん
垢版 |
2016/10/17(月) 08:02:52.00ID:8eStTtOD
>>298
そんなことを問題にしているのはお前だけ
他はみんな「目的を果たせないのは原因が何であれ欠陥」という前提は常識的に理解している
その責任の所在がどこにあるかは別問題だしこの板で議論することではない
0301デフォルトの名無しさん
垢版 |
2016/10/17(月) 12:43:57.00ID:3c5khzr2
>>299
何故お前ら意味もわからず明後日の方向いた頓珍漢なレスばかりするのか?
それぞれ勝手な方を向いて居ない敵と戦ってるのばかりだよ議論なんかどこにもない
0303デフォルトの名無しさん
垢版 |
2016/10/17(月) 18:33:39.09ID:0a7DR5WO
最初からハッキリそう言ってるんだけどなw
0306デフォルトの名無しさん
垢版 |
2016/10/17(月) 21:32:08.76ID:kp8H+gVW
たまに実際に現場にいるからなぁ

俺ならとりあえずバグって言葉を使わないようにするけど
0307デフォルトの名無しさん
垢版 |
2016/10/17(月) 21:54:25.47ID:0a7DR5WO
>>306
どうしてそういう嘘つくのかな?
仕事うけるレベル以下の人が同じプロジェクトで働くなんてありえないよ普通
それともなんか身の丈にあわないプロジェクトに潜りこむ裏技でも持ってるのお前?
そんな事してどんな得があるのかよくわからないけど
0309デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:19:04.66ID:kp8H+gVW
>>307
技術力の足りないやつが現場にいて困るなんて言ってないけど
たまにいて困るのはお前みたいなやつだって話だよ

ああ、お前の技術力が仕事受ける以前だからそう思ったのかw
0311デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:32:53.21ID:0a7DR5WO
>>309
だからどうしてそう脊髄反射で頓珍漢なレスすんのかね?
お前が>>306で言ってるのは言われた事がわからなくてもとりあえず相手にあわせるって事だよ
それに対して俺が言ってるのは話が通じない程レベルが違う人が同じプロジェクトで仕事をする事はないって事
つまり俺が「技術力の足りないやつが現場にいて困る」なんて事はありえないと言ってるんだけど
むしろお前がその「技術力の足りないやつ」の立場で言ってるのが>>306なんだよ
少しは考えてものを言う様にした方がいいぞお前
0312デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:37:23.00ID:0a7DR5WO
>>310
つまりお前が考えてるのと同じ事を多分同じプロジェクトのやつらがお前に対して感じてるって事だよ
客観的にレベルが違いすぎる人が同じプロジェクトで働ける事なんてありえないんだから
0314デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:47:57.62ID:0a7DR5WO
>>313
きっとお前と俺が考えてる幅が違うんだろうな
そりゃプロジェクト全員がほぼ同じレベルなんて事は現実的に不可能だからある程度の違いは当然あるさ
俺が言ってるのは話が通じない程っていう限定付きだからね
高いか低いかは問わずそこまでレベルが違う人同士が同じ仕事をする事ってないよ
0315デフォルトの名無しさん
垢版 |
2016/10/17(月) 22:57:41.88ID:tlSX7NCP
>高いか低いかは問わずそこまでレベルが違う人同士が同じ仕事をする事ってないよ
あるんだな、これが
自分の話が通じないのを相手のせいにしてる時点でお察しだわ
友達少ないんだろうな・・・
0316デフォルトの名無しさん
垢版 |
2016/10/17(月) 23:00:57.79ID:0a7DR5WO
>>315
いやだから俺は自分のプロジェクトに話が通じない人は居ないと言ってるんだけど?
相手のせいにしてるのはお前なんだろ?お前も頓珍漢なやつだな
0317デフォルトの名無しさん
垢版 |
2016/10/17(月) 23:05:24.27ID:tlSX7NCP
これでアスペルガーって確定したな
周りに迷惑かけないように頑張ってくれよ
0319デフォルトの名無しさん
垢版 |
2016/10/18(火) 03:19:21.44ID:sMICGAt6
人材派遣会社の営業に連れられて、色んなSE・プログラマーが、
会社へ面接に来るけど、たいてい1日も持たない

即、突っ返すのが多い
0322デフォルトの名無しさん
垢版 |
2016/10/19(水) 00:49:29.93ID:pTqLrw7j
仮にも派遣会社が何人もつれてくるのに、そのことごとくが1日で逃げたすということは
つれてくる人に問題があるんじゃなくて、つれてこられてるところに問題があると判断するのが妥当じゃね
0324デフォルトの名無しさん
垢版 |
2016/10/19(水) 20:59:04.22ID:arYWyhLn
そりゃコードもろくに書かないような素人が机上の空論を何重にも積み重ねて作り上げた設計をもとに作るものがまともになるわけがないよね
0325デフォルトの名無しさん
垢版 |
2016/10/19(水) 21:00:45.97ID:4EiJpNnx
確かに言語の問題ではないかもしれないな
今javaの仕事場にいるが取り敢えず数千行に及ぶメソッドとかやめて欲しい
VBAですらこんなひどいのは見たことない。
ああ早く辞めたい。
0327デフォルトの名無しさん
垢版 |
2016/10/19(水) 22:19:41.31ID:ZxcZNVlw
それをやりすぎて身動き取れなくなったのが日本のIT業界
世界から取り残される
0328デフォルトの名無しさん
垢版 |
2016/10/22(土) 01:03:30.18ID:FTu1fQ9L
適性ないやつは初日に追い返すほうがいい
数週間やった後だとお互いに無駄になってしまう
派遣側からみれば、客であるおまえらにむかって気に入らないから帰るとはなかなか言えない
0329デフォルトの名無しさん
垢版 |
2016/10/22(土) 11:57:55.47ID:T7KUESS5
派遣に限った話じゃないな
適正ない奴はクビにする
これを疎かにすると業界が腐っていく
重要な社会インフラを担う業界が腐れば国が腐るのは東電の件で分かっている筈だ
このまま放置すれば日本は後進国になる
0334デフォルトの名無しさん
垢版 |
2016/10/23(日) 12:10:00.53ID:LLV8Wwru
WinFormsなら簡単な方法はない
コントロールを全部オーナードローするよりはWPFやASP.NET MVCでGUIを作り直した方がマシ
0335デフォルトの名無しさん
垢版 |
2016/10/23(日) 20:05:42.68ID:VycPUQK1
strict offのVB.NETのプロジェクトでstrict onにした時にctype系の修正だけでも
一気にやってしまうことってできないでしょうか?
一個一個直すのが大変で。
0336デフォルトの名無しさん
垢版 |
2016/10/23(日) 22:54:07.00ID:Pb3uCFNH
strict onにしてもキャストが多いままだったらあまり意味がないよ
素直にoffにしとけば?
0338デフォルトの名無しさん
垢版 |
2016/10/24(月) 00:00:16.72ID:b4iOClrl
無くはないでしょ
いかに糞コードかが視覚的にわかるだけでも反省のきっかけになる
0342デフォルトの名無しさん
垢版 |
2016/10/24(月) 08:04:52.19ID:jSed6172
な訳ねーだろだまされんなw
0344デフォルトの名無しさん
垢版 |
2016/10/24(月) 09:20:41.69ID:++IEAJ3W
document completeイベントなどのイベントってCPU負荷が大きくなったときに
発生したりしなかったりという現象がおこる原因のひとつになりえますか?

win10 i7-2600k メモリ:16GBで
タスクマネージャーでしばらく見ていると平均でCPU負荷が60-70%以上あり、
時々95%を超えていたりします。

うまく動かないときがあるのであるので、document completeイベントを拾ってる箇所に
デバックログを取ってみると、出ているときと出ていないときがあり、なかなか原因が
特定できません。

navigatingイベント、navigatedイベントまでは出て、document completeイベントが出ていない
という状態です。
0346デフォルトの名無しさん
垢版 |
2016/10/24(月) 12:38:57.71ID:csInVVUs
>>345
それはキャストや変換を明示的に行おうが暗黙だろうが同じこと。
明示的にキャストや変換したらコストが高くなるとかそんなわけないでしょw
0347デフォルトの名無しさん
垢版 |
2016/10/24(月) 12:41:53.82ID:b4iOClrl
>>345
Strict Offが無駄な変換やボックス化をしてないとでも?
前後の型が分かってれば高速に変換できるケースは多いぞ
0348デフォルトの名無しさん
垢版 |
2016/10/24(月) 12:47:19.62ID:b4iOClrl
>>346
たぶん345は値の読出元と変換後の代入先の型がObjectならアンボックス化やボックス化が発生しないと思ってるんだろ
実際には、値の型で分岐→アンボックス→変換→ボックスという極めて非効率な操作になる
0350デフォルトの名無しさん
垢版 |
2016/10/24(月) 19:43:19.47ID:e8s5GSpS
それぞれがギリギリのラインで知ってる事を言いあってるだけだから会話としては成り立ってない
0351デフォルトの名無しさん
垢版 |
2016/10/24(月) 20:33:38.21ID:YenCzEnx
とりあえずCtypeよりはDirectCast使おうよ。
暗黙の変換を行うつもりは無いんでしょ?
0352デフォルトの名無しさん
垢版 |
2016/10/25(火) 19:52:34.47ID:/tmEVYbK
Ctypeでも状況によってはDirectCastと同じコード吐くらしいけどな
VB.NETのコンパイラさんは結構がんばってるぜ
0353デフォルトの名無しさん
垢版 |
2016/10/26(水) 00:46:20.68ID:+x2Xcmzl
そんなにキャストって使う?
tryparseすら使わんのだが
使うとしたらDirectCast(sender, コントロールの型)
くらいだわ
0354デフォルトの名無しさん
垢版 |
2016/10/26(水) 01:38:21.10ID:LebVIXiL
キャストの話題でなぜ突然tryparseすらという言葉が出てくるのか謎なのだが
vbだと文字列を数値として評価するような事もキャストって言うの?
0355デフォルトの名無しさん
垢版 |
2016/10/26(水) 01:56:35.02ID:KQmoHA4r
テキストボックスやSPREADに表示用の値をよく代入するから
キャストは頻繁に行う
また、カンマ区切りの数字を取得するのはキャストとはまた微妙に違うがけっこう面倒臭い
0357デフォルトの名無しさん
垢版 |
2016/10/26(水) 02:17:47.08ID:Hu8g6Oi9
>>354
C系言語もその辺はいい加減だと思うよ。
例えば
int x = (int)3.14;
は普通に考えれば変換だけど構文はキャストそのものだし普通にキャストと呼ぶでしょ?
0358デフォルトの名無しさん
垢版 |
2016/10/26(水) 06:48:15.05ID:LebVIXiL
>>357
キャストって型変換の事だが
むしろそれがキャスト
0359デフォルトの名無しさん
垢版 |
2016/10/26(水) 08:26:59.08ID:KQmoHA4r
>>356
toStringが定義されてたらいいけど
どういう振る舞いをするのか確認するのも面倒なので
CTYPEやCINTあたりを使ってるよ
DirectCastのほうがミスを減らすためにもいいんだろうなぁ・・・
0360デフォルトの名無しさん
垢版 |
2016/10/26(水) 08:35:34.34ID:KQmoHA4r
ちょっと真面目な質問したいんだけど
DirectXのDLLってどこいったの?
参照の追加をしようと思ったら見当たらない
0363デフォルトの名無しさん
垢版 |
2016/10/26(水) 12:33:23.43ID:wESs4v7p
>>362
それも誤解
directcast見てそう思ったのだろうけど
型変換は全てキャストだし逆に型変換でないものはキャストではない
本来とかそういう問題でもない
0364デフォルトの名無しさん
垢版 |
2016/10/26(水) 12:56:23.78ID:EekeRq3r
>>363
言っちゃ悪いけど、それお宅がキャストと変換の区別がついてないだけね。

計算機にとっては文字列の"123"をintの123にするのも、doubleの3.14をintの3にするのも
同じ「変換」だが、Cでは後者だけがキャストの扱いになっていて混乱している。
0366デフォルトの名無しさん
垢版 |
2016/10/26(水) 19:32:18.87ID:LebVIXiL
>>364
vbしか知らないのに無理してcで例えなくてもいいよw
ちなみに
キャストは型変換であり、変換ではない
文字列→数値の場合文字列の表わす値を数値として評価しているのであり、変換ですらない
二重に間違ってるよお前
0367デフォルトの名無しさん
垢版 |
2016/10/26(水) 19:56:05.00ID:Kd62j3g9
>>366
お前さんのやってることは変換を評価と言い換えただけ。
そういうのを言葉遊びという。馬鹿じゃないの。

(1) ポインタ変換
(2) double→intの変換
(3) 文字列→intの変換

(1)と(2)の間の差異は(2)と(3)の間の差異より大きい。

(1)は呼び名こそ「変換」となっているが、実際は単にコンパイル時にどの型として扱うかを変更しているだけで
実行時のメモリー上のデータは何も変わってないからだ。

本来のキャストとはこの(1)だけを指す。
0368デフォルトの名無しさん
垢版 |
2016/10/26(水) 20:07:53.96ID:LebVIXiL
>>367
いやだから型変換だってばw
せっかく教えて貰ってんだから素直に聞けばいいだろw
そのオレオレ理論を意固地に貫いてもお前に何のメリットもないよ
0369デフォルトの名無しさん
垢版 |
2016/10/26(水) 21:02:06.42ID:X0t3H/iP
おまいら根拠にしてるソースURLなり書籍名なりplz

出せずに慣例だの常識だので曖昧に誤魔化して逃げる俺様定義絶対合ってる匿名マンなんてただの荒らしでしかない。
スルーして過疎スレに戻ろうず
0371デフォルトの名無しさん
垢版 |
2016/10/26(水) 23:28:49.10ID:KQmoHA4r
ポインタ変換って何なんだ?
ググっても全くヒットしないんだがコンパイラ業界では隠れた隠語なのか?
0373デフォルトの名無しさん
垢版 |
2016/10/28(金) 00:19:57.23ID:8f+wXH5p
マジレスすると
キャスト(cast)は変換や型変換のことじゃないよ
英単語としてのcastの意味のそのまんまの「配役、役の割り当て」って意味だよ
0375デフォルトの名無しさん
垢版 |
2016/10/28(金) 12:39:29.03ID:4C9WQUMb
なんでVBの拡張メソッドはModuleなんだ
グローバルメソッドとしても使えちゃって気持ち悪いんだが
0377デフォルトの名無しさん
垢版 |
2016/10/28(金) 20:11:10.63ID:wjrX//6G
たかだか記法の問題をいちいち気にする方がどうかしてる
0378デフォルトの名無しさん
垢版 |
2016/10/28(金) 20:42:45.43ID:ch5b/kiY
>>377
たかが記法の問題?本当にそう思う?
名前空間汚染の問題と単なる記法の問題の区別がつかないのがVBerらしいね
0379デフォルトの名無しさん
垢版 |
2016/10/28(金) 21:17:37.68ID:wjrX//6G
>>378
グローバルな識別子=汚染
ではないのだよ
「汚染」てのはライブラリが定義する意図しないグローバルな識別子が問題になるから
悪意を込めて使う言葉で自分で定義したりそれを望む場合には汚染て言葉は使わんよw
字面だけでなくちゃんと言葉の意味を覚えてから使おうね
0383デフォルトの名無しさん
垢版 |
2016/10/28(金) 22:55:03.12ID:ch5b/kiY
>>379
VBerは揚げ足取りしかできないのか
仮に汚染という言葉が不適切だったとしても単なる記法だけの違いではないのは確かだろ?
別に俺はモジュールは名前空間を汚染するから如何なる場合でも使うなと言っているわけじゃなく、
それが問題になるケースはあるから単なる記法の問題ではないと言っているだけだ
実際>>375は気持ち悪いと言っているのだから少なくとも>>375にとっては「汚染」だろう
0384デフォルトの名無しさん
垢版 |
2016/10/29(土) 00:37:53.79ID:vKDUHJSk
汚染の定義と使用法はどうでもいいんだが
グローバルメソッドの定義を教えてくれ

拡張メソッドが通常のメソッドとして呼び出せることが問題だっていうならわかるが
C#の拡張メソッドだって、利用可能な名前空間内に存在する必要があるわけで
モジュールうんぬんは意味がわからん
0385デフォルトの名無しさん
垢版 |
2016/10/29(土) 00:57:42.29ID:9Fs7N4rN
VBのモジュル内のメソッドはグローバル
クラス内の静的メソッドみたいにクラス内の名前空間内に存在しているわけではない。

まあ、ラムダ式といい、もう2008以降はVB使わない方がいいよっていうメッセージでしょ。
少なくとも俺はそう受け取って2005まででVBは見限った
0386デフォルトの名無しさん
垢版 |
2016/10/29(土) 01:22:39.12ID:vKDUHJSk
>VBのモジュル内のメソッドはグローバル
そのグローバルの意味が分からんのだが?
VBだとデフォルトでプロジェクト名の名前空間内に属してるはずだが
その名前空間を超えると?
0387デフォルトの名無しさん
垢版 |
2016/10/29(土) 02:08:01.24ID:9Fs7N4rN
正直長年VB使ってた中で一度もモジュールなんて使ったことなかったけど、
一応モジュールも名前空間の中(ルート名前空間に限らず)に定義できるんだな。

それはいいけど、モジュール自身が名前空間を構成しないから、
そのメンバーはモジュールが存在する名前空間を参照しただけで丸見えになっちゃうわけで
普通に考えれば拡張メソッドはC#と同様に静的クラス(VBにはないけど)に定義する方がよかったね
0388デフォルトの名無しさん
垢版 |
2016/10/29(土) 07:10:41.84ID:ddj4bzvw
>>384
モジュールはそれを含む名前空間をImportしただけ(or 同じ名前空間にあるだけ)で
モジュールのメンバが全てトップレベルのスコープにインポートされるだろ
拡張メソッドは オブジェクト.メソッド名 の形式でしか呼び出せないから、
トップレベルで参照可能な名前が増えるわけではなく影響は小さい
C#は最近のバージョンで using static が入ってクラスのstaticメンバをトップレベルにインポートできるようになったが
名前空間単位ではなく対象のクラス名を直接指定しなきゃいけないからやはりモジュールに比べれば影響は小さい
0389デフォルトの名無しさん
垢版 |
2016/10/29(土) 08:03:59.22ID:UEy06zu0
先頭にusingが列挙してあるC#のソースの見づらさと言ったら
しかも書いた人によってか、usingの羅列が違うという
0390デフォルトの名無しさん
垢版 |
2016/10/29(土) 08:14:31.49ID:ddj4bzvw
VC#には 未使用のusingの削除・整理 という機能があってだな
それでも見づらいようなロクに責務分割できてない長大なコードなら
usingが無かろうが見づらいから安心しろ
0392デフォルトの名無しさん
垢版 |
2016/10/29(土) 10:30:39.20ID:dpmyBZLi
Moduleがないとリプレースしたときにお客様がModuleがClassに変わってるんですけど使いにくいんですけどってご立腹なさるのでModuleは必要
0393デフォルトの名無しさん
垢版 |
2016/10/29(土) 11:44:59.26ID:cpi9mNqo
>>389
そこは(普通のプログラマが普通にプログラミングしてれば)VB使っても同じになるはずなんだけどw
むしろあんたはどういうコード書いてるのかとw
0396デフォルトの名無しさん
垢版 |
2016/10/29(土) 20:16:52.74ID:ddj4bzvw
>>393
ところがVBには、プロジェクトの設定で指定した名前空間を全てのソースで暗黙的にImportするというゴミのような機能がある
0398デフォルトの名無しさん
垢版 |
2016/10/29(土) 22:52:27.70ID:UEy06zu0
>>396
そのほうが自然じゃないのか
プロジェクト内のソースごとにまちまちなほうが違和感を感じるが
0400デフォルトの名無しさん
垢版 |
2016/10/29(土) 23:03:06.39ID:i+DlxK4w
コードをプロジェクトの外に持ち出したら何が書いてあったかわからなくなるというほかは
デメリットが思いつかない
0401デフォルトの名無しさん
垢版 |
2016/10/30(日) 00:15:39.58ID:oo8ByUW6
>>399
おれ、いつも System.Linq だけ有効にして、残りは切って使ってるので
一括して名前空間の設定が出来て便利

usingのほうが不便
0403デフォルトの名無しさん
垢版 |
2016/10/30(日) 00:27:55.69ID:ALtsNIP3
>>396
ああ、そういやそんな機能あったね

BCLのほとんど必須の名前空間だけならありかなとも思うけど、
コード上に明示されないのはやっぱり気持ち悪いな

VBはあの有難迷惑のルート名前空間も鬱陶しいね
0404デフォルトの名無しさん
垢版 |
2016/10/31(月) 16:51:00.87ID:jCI7ny/t
ディクショナリーのキー取得時に dicHoge.Keys(intIndex) の様に書くと
VisualStudioでは問題無いのに、ideone上でエラーになってしまいます。
何か他に書き方があるのでしょうか?
0405デフォルトの名無しさん
垢版 |
2016/10/31(月) 17:17:30.13ID:OqD2s4Cc
うわ何これキモい
暗黙にElementAtOrDefaultに変換するのか

教科書的には
Dictionaryは順番を持たないコレクションだからインデックスでアクセスするのは変
0406デフォルトの名無しさん
垢版 |
2016/10/31(月) 17:35:37.71ID:SAEZOlIl
別にキーで要素を検索できることと要素が順序を持つことは何も矛盾しないと思うけどねw
0411デフォルトの名無しさん
垢版 |
2016/11/02(水) 08:50:07.47ID:t5KdzDu6
VB久しぶりに触る機会があったけどc#よりちょびっとインテリセンスが馬鹿じゃないか?って感じた
0412デフォルトの名無しさん
垢版 |
2016/11/03(木) 14:55:47.96ID:8QV9xAcD
>>411
気のせいだよ。
それより末尾に";"つける癖から早く卒業しましょう。
0413デフォルトの名無しさん
垢版 |
2016/11/03(木) 15:08:37.98ID:I4v6hDq5
すぐ上の話題で答え出てるじゃん
ソースのトップレベルに出現する可能性のある識別子の数がC#に比べて遥かに多いからだよ
モジュールと既定のインポートのせい
0414デフォルトの名無しさん
垢版 |
2016/11/07(月) 19:08:16.41ID:CxfskhGH
誰かいる? 質問良いですか?
今RichTextBox派生のカスタムコントロール作ってて、
ちょっと詰まってる所があるから詳しい人教えてほしい
0417デフォルトの名無しさん
垢版 |
2016/11/08(火) 02:11:19.46ID:crOcTVn5
誰も居ないのかと思った。質問して良いなら質問させてもらいます

当方、数か月前からVB.NETを始めた初心者なので、
コードが意味不明とか手法が悪いとかあれば、それも含めて指摘頂けるとありがたいです

RichTextBoxにOnPaintで文字を描写しようとして試行錯誤してるんですが、
WndProcでIMEを監視して、変換が確定するまでの間OnPaintが動作しないようにする事で、
都度TextChangedで日本語の文字入力の確定はされないようにできたんだけど、
今度はIMEに入力中の文字が真っ白で表示されない

なので、入力中の文字を表示するのに、
ImmGetCompositionStringで取得した文字をDrawStringで書いてみようかなと思っているのですが
取得が上手くできません
0418デフォルトの名無しさん
垢版 |
2016/11/08(火) 02:13:54.72ID:crOcTVn5
WndProc内で、

Select Case m.Msg
Case WM_IME_STARTCOMPOSITION
ForIME = True

Case WM_IME_ENDCOMPOSITION
ForIME = False

Case WM_IME_COMPOSITION
If (CUInt(m.LParam) And CUInt(GCS_COMPSTR)) > 0 Then
Dim intLength As Integer
Dim Imc As IntPtr = ImmGetContext(Handle)

intLength = ImmGetCompositionString(Imc, GCS_COMPSTR, Nothing, 0)
Dim IMEstr As StringBuilder = New StringBuilder(intLength)

ImmGetCompositionString(Imc, GCS_COMPSTR, IMEstr, IMEstr.Capacity)

ImmReleaseContext(Handle, Imc)
End If
End Select

こんなかんじで書いてみているのですが、
intLength = ImmGetCompositionString(Imc, GCS_COMPSTR, Nothing, 0)
↑この部分でDLL 'imm32.dll' の 'ImmGetCompositionString' というエントリ ポイントが見つかりません。というエラーが出てしまいます。
0419デフォルトの名無しさん
垢版 |
2016/11/08(火) 02:15:58.84ID:crOcTVn5
ImmGetCompositionStringは、
Private Declare Function ImmGetCompositionString Lib "imm32.dll" (ByVal hIMC As Integer, ByVal dwIndex As Integer, ByVal lpBuf As StringBuilder, ByVal dwBufLen As Integer) As Integer
と宣言しています。
0421デフォルトの名無しさん
垢版 |
2016/11/08(火) 02:35:47.42ID:crOcTVn5
他の、ImmGetContext等のhWndが入る部分はIntPtrにしているのですが……(+_+)

Private Declare Function ImmGetCompositionString Lib "imm32.dll" (ByVal hIMC As IntPtr, ByVal dwIndex As Integer, ByVal lpBuf As StringBuilder, ByVal dwBufLen As Integer) As Integer
これでもエラーが出るみたいです
0422デフォルトの名無しさん
垢版 |
2016/11/08(火) 03:01:24.83ID:crOcTVn5
やばい寝落ちそう……

質問板は出した質問は絶対閉めろというルールがある場所多いですがここはどうなんですかね?

1時間くらいは粘りたかったけど、眠いのでいったん引き上げます
もう一回試行錯誤して、どうしても駄目ならまた改めて来ます
>>420さん答えてくれてありがとう
0425デフォルトの名無しさん
垢版 |
2016/11/08(火) 07:35:37.22ID:ic1oOtKi
そもそもRichTextBoxにOnPaintで文字を描写って意味がわからん
それRichTextBox使う意味あるのか?
0427デフォルトの名無しさん
垢版 |
2016/11/08(火) 09:05:00.96ID:crOcTVn5
おはよう

うーん、わかるかどうかと言われれば微妙なので調べながらやってんですが、
スペルミスかなと思ったけど違うみたいで
関数の大文字小文字の違いって可能性もあるんですね。
後で時間できたら見てみよう……

>>425
ルーラや行番号や空白や改行等の特殊文字が表示されて、
かつ文字色も変えられるようなテキストエディタが作りたくて

普通は違うのでやるんですかね? 例えばPictureBoxに描くとかですか?
もっと効率良い方法とかってあります?
0429デフォルトの名無しさん
垢版 |
2016/11/08(火) 10:18:57.02ID:Tr1jXB8d
>>427
imm32.dllの中にImmGetCompositionStringが無いよって言ってるんだから
ImmGetCompositionStringAかImmGetCompositionStringW探せって言ってるんだけど…
0430デフォルトの名無しさん
垢版 |
2016/11/08(火) 11:11:17.92ID:crOcTVn5
Declare Function ImmGetCompositionString Lib "IMM32" Alias "ImmGetCompositionStringA" (ByVal hIMC As Integer, ByVal dwIndex As Integer, ByVal lpBuf As StringBuilder, ByVal dwBufLen As Integer) As Integer
に変えたら解決しました。ありがとうございます(*^-^*)

>>428
なるほど、確かにそうやって勉強できますね!
探してみます。ありがとう
0431デフォルトの名無しさん
垢版 |
2016/11/08(火) 11:49:04.58ID:h2p8PH96
ん?
いちいちAとかWとかつけなくても自動的にUnicodeバージョンが選択されるように
なってるはずだと思ったけど、VBは違うのか?
0432デフォルトの名無しさん
垢版 |
2016/11/08(火) 12:11:48.40ID:h2p8PH96
DllImport使わずにDeclareなんてVBのレガシー機能使ってるからかな。
ちなみに、デフォではANSIバージョンが選択されるんだな記憶違いだった
0433デフォルトの名無しさん
垢版 |
2016/11/08(火) 13:57:55.49ID:VtVauF4w
わざわざAliasなんて付けるから自動選択が働かない
なんでか知らんけどDeclareのサンプルはほとんどAlias付けてるんだよな
VB6だと必須だったのかね?
0437デフォルトの名無しさん
垢版 |
2016/11/09(水) 00:41:48.78ID:NSJDTbF5
>>416
駄目です。
0438デフォルトの名無しさん
垢版 |
2016/12/06(火) 23:28:37.80ID:qDbNXMxz
テキストボックスとかコントロールをコピーしたいんだけど、簡単にできませんかね?
0442デフォルトの名無しさん
垢版 |
2016/12/20(火) 21:56:31.88ID:f9HTxJj+
データベースから大量のデータを取得するときってDataTableとDataReaderどっちがいいの?
0443デフォルトの名無しさん
垢版 |
2016/12/20(火) 22:13:21.49ID:wmh5vlKz
DataTableはオンメモリだから処理できるデータ量には限界があるし、
DataTable.Loadだと全部のロードが終わるまで処理を始められないので
ロード中のIO待ちの時間が無駄になる。
もし大量データ処理時のメモリ使用量やスループットが問題になっているなら
DataReaderでストリーミング処理することで性能を大幅に改善できるはず。
0444デフォルトの名無しさん
垢版 |
2016/12/20(火) 22:40:05.78ID:gUOuUtAj
youtubeを開くと
一番上の検索ボックスがさ
入力無しだとグレイ文字で検索って表示されてて
(この検索文字にカーソルは移動しない)
何かを入力するとグレイ文字が消える
これってどうやって実装するんすかね?
パッと思いつかんのだが。。。
0445デフォルトの名無しさん
垢版 |
2016/12/20(火) 22:43:07.08ID:TSG9jdVQ
パッと思いつかん時はジックリ考えろ
それでも思いつかんかったらソープ行け
0448デフォルトの名無しさん
垢版 |
2016/12/23(金) 17:17:30.06ID:89cvwMZr
時々テキストボックスを監視して、空の時だけ重ねた別のテキストプレーンにSearchとか表示させるとか…
他にも色々方法はあるやろ
0449デフォルトの名無しさん
垢版 |
2016/12/23(金) 17:58:29.05ID:89cvwMZr
言った手前
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
If textBox1.Text = "" Then
textBlock1.Text = "Search"
Else
textBlock1.Text = ""
End If
End Sub
0450デフォルトの名無しさん
垢版 |
2016/12/23(金) 18:19:03.14ID:jhZLEzKr
カレットが入るまでは淡色の文字表示しとってカレットが入ったら背景画像に差し替える
文字が入ったら白背景とかw
0451デフォルトの名無しさん
垢版 |
2016/12/29(木) 07:29:02.60ID:qvNXwZDz
データベースをアクセスするプログラムってACCESS以外は、埋め込みSQLとC言語を使ってUNIX上でしかやったこと無いロートルですが、
VB.NETでDBアクセスって今は何が主流なん?
ADO.NET関係の書籍って、アマゾンでも結構古いのが多いんだけど、ADO.NETって過去の遺物なん?
0453デフォルトの名無しさん
垢版 |
2016/12/29(木) 11:13:15.20ID:BD9K+jOv
ADO.NETは過去の遺物だけど現役だよ
新機能の拡張が期待できないってだけ
Entity FrameworkやサードのフレームワークもADO.NETに依存してる
ADO.NETは抽象的なフレームワークで実装はプロバイダごとに異なる
MSならSqlClient、OracleならODP.NET、ポスグレならNpgsql
ODBCドライバやOleDbドライバ用の実装もある
0454デフォルトの名無しさん
垢版 |
2016/12/29(木) 11:15:53.14ID:KEC+z4ay
>>441
コピーできましたが、コンボボックスのデータソースなどがコピーされませんでした。
完璧に同じ物をコピーすることって簡単にできないでしょうか? 
0456デフォルトの名無しさん
垢版 |
2016/12/29(木) 17:42:29.56ID:qvNXwZDz
>>452>>453
d。
かなり古い書籍だけど教科書としては十分といことですね。
何冊か尼でポチってみます。
0457デフォルトの名無しさん
垢版 |
2016/12/29(木) 18:11:55.59ID:ICm4kcbN
今時ADO.NETなんて括りに意味はないぞ
Entity FrameworkとかもADO.NETに含まれているらしく、
もはや「.NETのデータベース関連の機能」というだけのふわっとした総称でしかない
単純に低レベルAPI使って普通にSQL投げたいだけならDbConnectionのあたりを適当にググれば十分
0460デフォルトの名無しさん
垢版 |
2017/01/02(月) 12:24:29.63ID:sj4687w4
VBに限らずだけど、ORMっていうの?オブジェクトに対してSQL生成してくれる
機能あるけど、SQL書かないってそんなにメリットあるんですかね?
複雑なSELECT文ならORMでは対応しずらいので結局SQL書くだろうし、その他の
INSERT・UPDATE・DELETE・MERGEなんてバリエーションが限られるだろうから、
テーブル名と列名さえあれば、ExcelVBAとかVBSとか自作VBツールとかで自動生成可能なはず。

「SQL書いてないけど、Insertできたよ!」っていうコーディングの感覚は
実際にやってみて新鮮だったけど、Insert文ぐらい書けよ、とも思う。
0462デフォルトの名無しさん
垢版 |
2017/01/02(月) 14:08:47.76ID:CPceoiNS
>>460
DRY
ツールで自動生成するんならORMでもいい、生成されたSQLを管理しなくて済む、と考えることもできる
自動生成は生成物を直接弄らないことを徹底できるならいいけど、大抵は自動生成コードが独り歩きして破綻する
そうして変更時の修正箇所がどんどん増えてくんだよ
0463デフォルトの名無しさん
垢版 |
2017/01/02(月) 16:02:44.86ID:CCmbcSgt
460です。

>>462
すみません、「自作ツールで自動生成」って紛らわしいこと書いちゃったけど、
VB側にSQLを記述する(=SQLを構築するのSharedなFunctionをたくさん作る)ってのが
前提にあって、INSERTとかは手打ちするのもアレだから自作ツールにSQL生成させて
それをVBなりPHPなりJavaなりで使えるようにテキストエディタのキーマクロでも使って編集し、
そいつをコピペする、ってことです。
なので、「SQLを管理しなくて済む」というより「しっかり管理したい」
ということなんですね。

で、この手順なら(Select以外の)SQLをPG言語側のソースに落とし込むのに
少なくとも手打ちよりかはスムーズにできるので、今更言語側でブラックボックス化
してもらう必要ないのに、と思うわけであります。

まぁうちの案件規模が小さいからそう思えるのかも。
0464デフォルトの名無しさん
垢版 |
2017/01/02(月) 16:07:50.85ID:CPceoiNS
>>463
世の中には、コードの重複を極力避けて変更しやすくするという開発スタイルもあるんだよ
VBにあるかは疑問ではあるけど
0466デフォルトの名無しさん
垢版 |
2017/01/02(月) 16:30:50.83ID:CPceoiNS
ORMの意義はSQLコマンドを生成することよりもむしろ
テーブルの行とオブジェクトをマッピングすることにある
いちいちカラムとプロパティの対応付けを猿のように手書きしなくても
自動でやってくれるツールだと割り切って使えば悪いもんじゃない
0467デフォルトの名無しさん
垢版 |
2017/01/02(月) 16:45:34.53ID:GHxiRgy/
EFって綺麗にモデリングされてる前提じゃないの?
正規化やキー設定もまともにできない我々日本人には厳しいと思う
ダラダラ残業して腐ったスキーマに愚痴言いながら頭悪いSQL書いてDapperで手軽にタイプセーフにするぐらいがちょうどいいよ
0468デフォルトの名無しさん
垢版 |
2017/01/02(月) 17:19:12.57ID:CCmbcSgt
>>466
>いちいちカラムとプロパティの対応付けを猿のように手書きしなくても

これに関してはリフレクションを使えば解決するかなと。
0469デフォルトの名無しさん
垢版 |
2017/01/02(月) 17:22:48.96ID:mABnUerH
>>468
クエリもマッピングも自動化したら、それはもうORMだろ
お前は自分自身でORMが必要という結論に達したわけだ
0470デフォルトの名無しさん
垢版 |
2017/01/02(月) 18:09:41.42ID:vlUjiKZm
>>460
ORMは、RDBのデータをオブジェクトとして使うためのものだ
SQL書かなくていいのは必要な結果に過ぎない

つかインピーダンスミスマッチでググれ
0472デフォルトの名無しさん
垢版 |
2017/01/08(日) 15:10:33.24ID:mLyjhJYP
C#スレのVBキチガイはよ引き取って
VB.NETerってガイジしかいないのか?
0474デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:24:13.54ID:OuvvCRzR
ああああああああああああああああああああああああああああ
あいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい

うううううううううううううううううううううううううううううううううううううううううううううううう

ええええええええええええええええええええええええええええええええええええええええええええええ
0475デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:32:49.65ID:NUbhUDcn
ああああああ
0476デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:33:24.09ID:NUbhUDcn
ああああああああああああああああああああああああああああああああああああ
0477デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:34:28.71ID:NUbhUDcn
あああああああああああああああああああああああああああああああああああああああああ
いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
うううううううううううううううううううううううううううううううううううううううううううううううううううううううう
ええええええええええええええええええええええええええええええええええええええええええええ
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
かかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかか
きききききききききききききききききききききききききききききききききききききききききききき
くくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくく
けけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけ
こここここここここここここここここここここここここここここここここここここここここここここここ
http://http://http://http://http://http://http://http://http://http://http://http://http://http://
0478デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:36:20.68ID:NUbhUDcn
あああああああああああああああああああああああああああああああああああああああああ
いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
うううううううううううううううううううううううううううううううううううううううううううううううううううううううう
ええええええええええええええええええええええええええええええええええええええええええええ
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
0480デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:38:00.89ID:C+ssGhBJ
>>1-1000
0481デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:38:48.36ID:C+ssGhBJ
>>1-1000
0482デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:39:02.17ID:TQyidl81
>>1-1000
0483デフォルトの名無しさん
垢版 |
2017/01/20(金) 21:19:52.47ID:rk0wOt7y
My.Computer.FileSystem.WriteAllText  連続で使うとだめなのかなぁ。
30行目あたりでロックかかったまま、削除もできない。
0484デフォルトの名無しさん
垢版 |
2017/01/20(金) 21:53:51.85ID:gkjLNWs8
Fileクラスの方のWriteAllTextを使ってみたら?
Myは基本的に糞なので、使う前に標準の.NETのAPIで同じようなのがないか確認したほうがいいよ
0485デフォルトの名無しさん
垢版 |
2017/01/21(土) 16:11:14.78ID:q70X02VY
Fileクラス側を使ったらうまくいった! 
今回はたまたま見つけたからいいけど、見逃してたらわからないかも・・
0486デフォルトの名無しさん
垢版 |
2017/02/03(金) 20:50:22.69ID:IoUjw6fZ
VB2010で作ったやつが↓の3ソフトでことごとくウィルス判定されるんだが・・・どういうこと?
Bkav:[.NET executable]
CrowdStrike Falcon:(ML)malicious_confidence_100% (D)
Qihoo-360:HEUR/QVM03.0.0000.Malware.Gen
0489デフォルトの名無しさん
垢版 |
2017/02/07(火) 08:56:41.61ID:/DttlwM1
スリープからの復旧をSystemEvents.PowerModeChangedイベントで取得してるんだけど
Windows7やWindows8.1のデスクトップPCでは正常に動作するけどWindows8.1版のSurface Pro3だと動作しない

解決方法ご存じないですか?
0491デフォルトの名無しさん
垢版 |
2017/02/08(水) 10:12:32.24ID:AcXEhNH6
datareaderで数万件のデータをデータベースから取得したいんですが数十秒くらいかかってしまいます
どうにかはやくできないでしょうか?
0494デフォルトの名無しさん
垢版 |
2017/02/08(水) 22:02:33.67ID:AcXEhNH6
単純なSELECTなんですよ
30000件で15秒もかかってしまいます
最後までread回しただけなのに…
0495デフォルトの名無しさん
垢版 |
2017/02/08(水) 22:07:06.15ID:qO3OS2QJ
ディスクやネットワークが糞なんだろ
あと見落としやすいのがDBサーバーのメモリ量
繰り返し読むならキャッシュヒット率が全然違ってくる
いずれにしてもVB関係ない
0496デフォルトの名無しさん
垢版 |
2017/02/08(水) 22:11:04.89ID:qO3OS2QJ
まずはVBを介さずにDBクライアントを使って直接コマンド実行してアンロードしてみたらどうだ
それでも遅かったらVB関係ないとわかるし、遅くなかったらVBでの読み方がまずいんだろう
一番にその程度の切り分けはやれよ
0497デフォルトの名無しさん
垢版 |
2017/02/08(水) 23:05:47.54ID:jRyNzfB1
ListViewのアイテムをすべて選択するコードなんですが
5万件くらいで重いのですが軽くする方法は無いものでしょうか。

For i As Integer = 0 To lvMain.Count - 1
lvMain.SelectedIndices.Add(i)
Next
0498デフォルトの名無しさん
垢版 |
2017/02/08(水) 23:15:30.62ID:qO3OS2QJ
>>497
前提がおかしい
全件に対して処理をすることが最初から想定されてるんなら全件処理のコマンドを用意しとけば済む話だろう
ListViewに読み込む必要も選択する必要もない
0499デフォルトの名無しさん
垢版 |
2017/02/08(水) 23:58:47.11ID:Bd3hz3fH
>>497
lvMain.BeginUpdate() 〜 lvMain.EndUpdate() で囲えば多少改善するかもしれない
それでもダメなら VirtualMode を使う
0500デフォルトの名無しさん
垢版 |
2017/02/09(木) 07:08:33.82ID:nszO0639
>>499
残念ながらBeginUpdate()では改善しませんでした。
ListViewは既にVirtualModeです。
どうもSendMessageでLVM_SETITEMSTATEを送ってやればよさそうという
ところまで来ました。
0502デフォルトの名無しさん
垢版 |
2017/02/10(金) 12:28:40.22ID:izdz/JI9
全選択なんて組み込みのメソッドで用意されててもよさそうなものだけどないんだねw
今まで気づかなかった
0506デフォルトの名無しさん
垢版 |
2017/02/21(火) 19:33:45.43ID:zN7/wz8g
経過時間を設定したContent.Timeで割って余りが0の時にReload()を実行するようになってるんですが、
Reload()を何回も実行するんです。
minuteをContent.Timeで割った回数実行してしまうようなんですよね。

何かおかしいでしょうか?

Sub _Check()
'1分過ぎた
minute += 1
'すべてのページをチェック
For Each Content As Contents In List
'指定した時間が過ぎていたら
If minute Mod Content.Time = 0 Then
'確認=>表示 再生
If Content.ReLoad() Then
0507デフォルトの名無しさん
垢版 |
2017/02/21(火) 19:35:31.07ID:zN7/wz8g
>>506
補足ですけど、minuteが1進む毎(1分)に、minuteをContent.Timeで割った回数実行してしまうみたいです。
0512デフォルトの名無しさん
垢版 |
2017/02/25(土) 08:49:36.06ID:Z1WBMYZL
dllのロードに関して質問がございます。

---------- ディレクトリ構成 -------------------------------------------------------
[1]C:\AppDir\Main.exe 実行ファイル
[2]C:\AppDir\Parts.dll 実行ファイルから参照設定される

[3]C:\AppDir\SubDir1\Function.dll [1]の実行ファイルからAssembly.LoadFromで呼ばれる
[4]C:\AppDir\SubDir1\Parts.dll [3]から参照設定される

[5]C:\AppDir\SubDir2\Function.dll [1]の実行ファイルからAssembly.LoadFromで呼ばれる
[6]C:\AppDir\SubDir2\Parts.dll [5]から参照設定される
--------------------------------------------------------------------------------

[3]のdllと[5]のdllを実行ファイルで選択した内容によって切り替えてロードするのですが、
[4]と[6]のdllを参照せずに、実行ファイル起動時に自動でロードされる[2]のParts.dllを読み込みに行きます。

機能追加やデータ構造の変更に伴うメソッドの修正で[2]と[4]と[6]の内容が一致していない場合に、
MissingMemberExceptionが発生してしまいます。

[2]のParts.dll に修正が発生した段階で、[4]と[6]をビルドし直して配布する必要があり、
出来れば[2]のParts.dll の修正と切り離して管理したいと考えております。

既に実行ファイル起動時に[2]がロードされている状態で、
[3]をロードする場合は[4]を、[5]をロードする場合は[6]を参照するような方法はございますでしょうか?
0515512
垢版 |
2017/02/25(土) 21:04:10.95ID:Z1WBMYZL
>>514
ありがとうございます。
プラグインという発想はなかったので、
MEFについて知識が乏しいので調べて見ます。
0518デフォルトの名無しさん
垢版 |
2017/03/04(土) 17:05:37.98ID:jyXc82yN
シリアル通信で受信処理について教えてください
パケット構造が固定長で"STX" + 10BYTE + "ETX"の12バイト構造となっています
ReadByte()で1バイトずつ取得して配列に格納しているのですが、
連続受信中何かの拍子に配列がずれて1バイト目が"STX"や12バイト目が"ETX"とならない場合があります
こうなった場合、以降の受信も配列が崩れて処理ができなくなります
一般的にどのような対策をするのでしょうか
配列の1バイト目、12バイト目が"STX","ETX"でなければ何か処理をすればよいのだと思いますが・・・
0519デフォルトの名無しさん
垢版 |
2017/03/04(土) 17:28:05.56ID:4F1kG7wq
1バイト目とか12バイト目とか意識するのがまずいのでは?
STXが来たらバッファに詰めていくETXが来たらそれを取り出すで
問題ないと思う。
0520デフォルトの名無しさん
垢版 |
2017/03/04(土) 18:24:21.25ID:W250mNnr
>>518
単純なステートマシンで対処できるでしょw

っていうか、教えられなくてもそれぐらいのこと思いつくようでないと
実用的なプログラムなんて何も書けないよw
0521デフォルトの名無しさん
垢版 |
2017/03/04(土) 18:51:32.79ID:NAI/204b
何バイト目かを意識するのがまずいのもあると思うけど
そういうのってエラー検知して再送じゃないの?
0522デフォルトの名無しさん
垢版 |
2017/03/05(日) 03:05:35.57ID:L54Sdfag
>>519
それにしたってバッファは無限なわけじゃないし
ETXが来るかバッファをオーバーしたら、 だな
バッファオーバーのチェックはさぼらない癖つけとくほうがいいぞ

>>521
>>518はエラー検知が出来なくて困ってるわけだが
0524デフォルトの名無しさん
垢版 |
2017/03/05(日) 09:04:24.11ID:ZV0AIXGV
まぁSTX〜ETXまで精々数百バイトだろうし、大げさに騒ぐほどじゃないな
ETXの後ろにBCCあるタイプだとして

俺がよく使うのは System.Collections.ObjectModel.Collection(Of Byte) なバッファ用意しといて

1.ReadByteの内容がSTXだったら バッファ.Clear した上で ReadByteの内容(STX)をAdd
2.STX以外だったら
   2-1.バッファの最後尾が ETX だったら、今きたのはチェックサムと思って ACK/NCK 返しつつメイン処理へ受け渡し
   2-2 バッファの最後尾が ETX じゃなかったら、ケツに Add
0525デフォルトの名無しさん
垢版 |
2017/03/05(日) 09:06:20.08ID:ZV0AIXGV
×    2.STX以外だったら

○    2.STX以外で、かつバッファの先頭は STX だったら
○    3.STX以外で、かつバッファの先頭は STX 以外だったらゴミデータとしてスルー
0526デフォルトの名無しさん
垢版 |
2017/03/05(日) 09:16:08.94ID:4Mp9Np6+
>>524
なんでCollection?
Collectionはコレクションクラスを自作するときに使うもので、普通、一般的に使われる動的配列の実装はList(Of T)だよ
0528デフォルトの名無しさん
垢版 |
2017/03/05(日) 12:45:52.11ID:u6nsQtE2
なんかアホな議論してるけど、上にも書いたが必要なのは質問者が
ステートマシンという超簡単な概念を一つ覚えて使う、それだけ。
0529デフォルトの名無しさん
垢版 |
2017/03/05(日) 13:16:04.21ID:4Mp9Np6+
>>527
List(Of T)の方が速いし軽い
というかCollection(Of T)は実装を全部List(Of T)に丸投げしてる
継承してメソッドをオーバーライドすることで要素の追加削除時に独自の処理を入れられるように
いくつか拡張ポイントを追加してあるだけ
継承しないなら何の意味もない、むしろ誤解を招くだけだから使わない方がいい
List(Of T)は後で独自の処理を入れたくなったときに実装変えられないからクラス外に公開するべきではないというのもあるけど、
それを考慮するならCollection(Of T)ではなく IList(Of T) を使ったほうがいいし
0530デフォルトの名無しさん
垢版 |
2017/03/05(日) 13:27:50.14ID:Q4pvsIt3
VBerにとって、VBが輝いていた時代を共に駆け抜けた旧友を想起させる特別な名前、それがCollection
気持ちは分かるが.NETのCollectionは彼とは何の関係もない別人なんだ
もういい加減過去に拘るのはやめて前へ進もう
0532デフォルトの名無しさん
垢版 |
2017/03/05(日) 14:21:01.11ID:dGez6Bo2
質問者がデータは10バイトの固定長だって言ってるんだから
Listを使う必要もなければ、STXだのETXだの本来不要なゴミを取っておく必要もない

なんかしょうもない話してるよな本当
0535デフォルトの名無しさん
垢版 |
2017/03/09(木) 20:01:49.55ID:ouxZaahl
簡易的にずれてたらETX来るまで1バイトずつ取り込んで読み捨てすればいいんじゃね?
0536デフォルトの名無しさん
垢版 |
2017/03/10(金) 17:23:20.12ID:tq5lUfKn
タプルっていう存在を今、初めて知ったんだけど。
複数の値を返すのはいいけど・・・
こんなんじゃなーいって思ったのは俺だけかな?
0541デフォルトの名無しさん
垢版 |
2017/03/14(火) 19:24:57.60ID:O/GpwfFn
C#に移りなよ
ってかもうみんな両用してるか
0544デフォルトの名無しさん
垢版 |
2017/03/22(水) 21:49:26.12ID:Lj+MxEQk
今日見た関数が戻り値の型がBooleanで条件によってはTrueを返す、という関数でした
ただその条件分岐に引っかからなかった場合どこにもFalseを返すとは書いてませんでした
自分で試してみたところその場合はFalseになったのですが、これは言語仕様
がそうなっているということですか?
可読性はともかく特に使っても問題ないでしょうか?
0546デフォルトの名無しさん
垢版 |
2017/03/22(水) 22:09:21.64ID:Lj+MxEQk
>>545
これは最初に読んだんですが既定値とやらと戻り値の関係がいまいちわかりませんでした
ただそう言われるなら問題なさそうですね
ありがとうございます
0550デフォルトの名無しさん
垢版 |
2017/04/12(水) 22:53:43.53ID:ozjVA+Qe
VB2010で質問です

いくつかのフォームで構成されるフォームアプリケーションを作ろうとしているのですが、プログラムの性質上
複数のフォームにおいて共通した処理を行うことがしばしばあります
そこでそれらの処理に使う変数や関数を特定のフォームかクラスに記述して、各フォームから呼び出して
使おうかと思ったのですが、かなり計算が多いプログラムなだけに呼び出しのオーバーヘッドが気になっています。
そこで知りたいのですが

1. 共通する変数や関数をどこかのフォームやクラスで宣言して、他のフォームから呼び出す
2. 各フォームで同じ名前の変数や関数を宣言してそのフォーム内で使う

上記2つのどちらが性能的には有利なのでしょうか?
もし個々のフォーム内でそれぞれ定義する方が高速なのであれば、コードが重複して無駄ができるのは承知の上で
2の方法を使うのもありかなと思っているのですが・・・
1の方が高速あるいは両者に速度差がないのであれば、コードが読みやすくなるので1のやり方にしたいと思ってます

あまりオブジェクト指向もよく理解できてないのですが教えて貰えると有難いです
0551デフォルトの名無しさん
垢版 |
2017/04/13(木) 00:40:28.65ID:aK+zC0HQ
呼び出しのオーバーヘッドなんか事実上ゼロだよゼロ
ラベルの文字列を書き換える処理とかに比べりゃ地球全体の中の一粒の砂レベルで全く完全に無視できる
0552デフォルトの名無しさん
垢版 |
2017/04/13(木) 08:07:04.82ID:ai7IR4kG
>>551
どうもです
ベクトルの加減算や回転といった処理を数百回行い、それを1秒あたり1万〜十数万回
ループで繰り返すという処理だったので、呼び出しにある程度オーバーヘッドがあると
性能に影響してくるかなと思ったもので・・・

オーバーヘッドが無視できるレベルなのであれば1でいってみようと思います
0553デフォルトの名無しさん
垢版 |
2017/04/13(木) 08:49:18.21ID:aK+zC0HQ
無視できるというか、メソッド呼び出しやフィールドへのアクセスにおいて
クラスを跨るかどうかはオーバーヘッドの大小には直接影響しない
0555デフォルトの名無しさん
垢版 |
2017/04/13(木) 11:46:33.00ID:ai7IR4kG
了解です
気にするだけ無駄なので分かりやすいコードで書くのがいいってことですね

>>554
計算部分をCでDLL書いてそっちに追い出すのも考えてはいますが
データの受け渡しがかなり面倒そうなのでとりあえずはVBで書いてみます
0557デフォルトの名無しさん
垢版 |
2017/04/15(土) 22:46:29.93ID:2Thsns1M
>>556
Cはコマンドプロンプトで動くコンソールアプリなら作ったことがあるんですが、
フォームを使うとなるとユーザーインターフェースの作り方がさっぱりなもので・・・
0558デフォルトの名無しさん
垢版 |
2017/04/16(日) 07:19:56.00ID:hzBiobtH
>>557
俺も、XView(Solaris2.3)とか、PresentationManager(MS-OS/2V1.21)ならC言語で組んだことあるけど、
Windowsなんて、Access以外で画面作ったことね〜ですだ・・・(;_;)
0560デフォルトの名無しさん
垢版 |
2017/04/17(月) 22:29:23.78ID:juGlbUEK
すいません教えてください。
テキストボックスに9:00と入れてstring型の変数に格納した後ラベルコントロールで表示すると
9になっちゃいます。そのまま9:00と表示するにはどうすればいいですか?
0562デフォルトの名無しさん
垢版 |
2017/04/18(火) 23:09:40.28ID:Aq2OSGis
ちょいと教えてくださいな

ADODB.RecordsetをLoopで更新処理
をADO.NETに変換したいんですが

DataSet.Tables.Count=1
なレコードセットなら
直接
Adapter.Fill(DataTable)
Adapter.Update(DataTable)
しちゃって良いもんなの?

DataSet経由しないとダメ?
0563デフォルトの名無しさん
垢版 |
2017/04/19(水) 03:21:39.02ID:zfm1mmD/
DataSetじゃないと駄目ならなんでDataTableを引数に取るオーバーロードが
用意されてるのかって話になってしまう
0564デフォルトの名無しさん
垢版 |
2017/04/21(金) 13:40:32.09ID:z81gUwo8
UIデザインに拘りたくて色々やってるけど、自分の思い通りのデザインにするのに四苦八苦
かと言ってマイクロソフトのダサいデザインは美意識が許さない。
何か良いサイトか本あれば教えてください。
0566デフォルトの名無しさん
垢版 |
2017/04/22(土) 12:28:09.67ID:3MzzfSUe
どうせUIのデザインと言うより昔流行ったスキンで見た目を派手にするみたいなのがやりたいんだろ
0567デフォルトの名無しさん
垢版 |
2017/04/22(土) 17:10:56.22ID:okIJiGGM
みんなMicrosoftのスタートボタンは必要って言ってるんだから
そのまま使えばいい。
アップルの真似してなくしたり隠したりするのはオカシイ。
0569デフォルトの名無しさん
垢版 |
2017/05/08(月) 23:56:45.12ID:thSKMKN/
でも出来ることそんな変わらないんでしょ?
0570デフォルトの名無しさん
垢版 |
2017/05/16(火) 23:44:33.08ID:B3nxbABI
すいません教えてください
現在就職活動中でプログラマーを目指しているんですが、希望している会社が使用している主な開発言語が
VB.NETらしいのですが、将来的な需要はどうなんでしょうか?雲行き怪しいですか?
0571デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:17:10.36ID:Id1y7eqA
>>570
やめとけ
VB.NET自体の将来はともかく、君がエンジニアとして成長する上で良い環境とは言えない
0572デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:24:15.90ID:twHUlOTr
将来的な需要のある言語なんて誰もわからないし、
この業界は進化(変化)が激しいから、最初に何やろうがあんまり関係ない
0575デフォルトの名無しさん
垢版 |
2017/05/17(水) 00:52:28.59ID:aIm9uZNt
最初に.NETから学ぶって割とめんどくさそう
いや、逆に素直に受け入れられるのか?
0577デフォルトの名無しさん
垢版 |
2017/05/17(水) 12:15:26.26ID:omyPvYqj
>>570
希望する企業に就職する事 < 他の言語を使う、なら他社へ
10年20年後に仕事で使う言語が幾つ残っているのか
そもそもPGという仕事が残っているのか
0579デフォルトの名無しさん
垢版 |
2017/05/17(水) 17:04:37.53ID:8AQDyWzi
>>577
その企業は地元で自社内開発をしている会社で教育体制も整っている会社なので
自分としてはすごくポイントが高いんですが、使う言語がVBだけというのが不安で踏み切れずにいます 
将来を考えるのであれば都内の客先常駐系で経験を積んでいく方が良いのでしょうか・・
0580デフォルトの名無しさん
垢版 |
2017/05/17(水) 17:29:07.25ID:7qQt36O1
VB使ったら頭悪くなるとかありえんけど、まあ、
企業が何であえてC#じゃなくてVB使ってるのかは気になるところではあるね。

何にしろ、冷たいようだけど自分の人生は自分で考えるしかないよw
誰にとっても地雷の会社はあっても誰にとってもよい会社なんてないし。
0581デフォルトの名無しさん
垢版 |
2017/05/17(水) 17:37:37.24ID:7qQt36O1
ちなみに、俺の前の会社もVB使ってたけど、
.NET以前はVB6使ってたから.NET移行時にVBの方が容易だろうってことで決めたようだったね。

さすがに2008になってあまりにC#と差がついちゃったんでC#に変えてもらったけど
0582デフォルトの名無しさん
垢版 |
2017/05/17(水) 17:43:17.70ID:TNF12pwP
VB使っているところはVB6からの流れが大部分だと思うよ
おそらく学習コストと意欲の問題で単純に移行する気がないだけ
今はVBもC#も隔たりがなくなってきたからどっちでもいいと思うけど
新たに始めるならC#のほうが優位だよね
0583デフォルトの名無しさん
垢版 |
2017/05/17(水) 17:52:12.92ID:OyAwlGYD
言語なんて一つ極めれば他の言語は応用でかなり対応可能
現在のVBとC#なら方言の違いみあいなものだから、この二択なら悩むことない
そもそも仕事以外でスキル向上すればいいだけだし
0584デフォルトの名無しさん
垢版 |
2017/05/17(水) 20:19:44.74ID:G7cUCqPy
>>583
極めてない人がそういう事言っても全然説得力ないですけど
0586デフォルトの名無しさん
垢版 |
2017/05/17(水) 22:19:06.68ID:8AQDyWzi
>>583
自分初学者であまり詳しくないのですがプログラミング言語というのは
細かい部分はそれぞれの言語で違うけど大部分はどの言語も共通して似たようなものだから
一つを極めてしまえば、他の言語を新たに学ぶときもさほど苦労はしない、という解釈でいいですか?
0587デフォルトの名無しさん
垢版 |
2017/05/18(木) 00:47:49.89ID:d+oDyp66
スッキリわかる Java入門 第2版、2014
この本を3回読めば、C# も出来るようになる

たのしいRuby 第5版、2016
この本を3回読めば、Python, JavaScript, Groovy も出来るようになる

この2冊が、言語の基本
0588デフォルトの名無しさん
垢版 |
2017/05/18(木) 06:40:38.38ID:wJMhN+ja
>>586
そう
大抵の人は新しい環境にもすぐ対応するよ
下地なしでは短期間で習得難しいけど下地あればなんとかなる
0591デフォルトの名無しさん
垢版 |
2017/05/18(木) 13:45:59.05ID:MLJ8qicI
VBとC#でどっちを勉強するか迷ってVBAにも流用出来そうだからと結局VBに
WPF始めた途端、C#に止む無く移行
英語ペラペラならVBでも行けると思うが、出来ないならC#だな〜
参考になるサイトや文献の量が違いすぎる
0595デフォルトの名無しさん
垢版 |
2017/05/18(木) 16:51:57.80ID:oyKD852L
変数宣言はVBのほうが個人的にはシックリくるかな
型が先ってのが、どうも嫌。

あと、宣言して即座にnewするとき、VBのほうがキレイだと思う

全体的にC#のほうがコード量(横も縦も)が増える感じが。
0597デフォルトの名無しさん
垢版 |
2017/05/18(木) 17:17:20.68ID:M49g2Wb7
コード量はC#のほうが少なくない?
VBのラムダ式はもうちょいシンプルにならないのかね
0598デフォルトの名無しさん
垢版 |
2017/05/18(木) 17:31:42.82ID:oyKD852L
ああ、俺はVBのときはWITHを頻繁に使うから、かなり短くなってるのか
for() はC#のほうが好きだが
0600デフォルトの名無しさん
垢版 |
2017/05/18(木) 19:15:11.40ID:fpMTuU/5
ラムダ式にFunction()とかふざけてんのかねホントに
VBとPHPくらいだろそんなの
0601デフォルトの名無しさん
垢版 |
2017/05/18(木) 20:07:13.03ID:ewg+OcMq
あのFunctionは辛いわ
アロー式で書かせて欲しい
リファレンスは何で書かれててもあんまり気にならないかな
どっちみちやること変わらないし
0609デフォルトの名無しさん
垢版 |
2017/05/19(金) 07:43:19.13ID:mm1qRo/S
>>607
ループが悪なのではなく、LINQが選択肢にすら上がらないプログラマーが悪なのです
速度にこだわりたいならforでいい
が、それだと極端な話ForEachも使うなという話になってくる
かのドナルド・クヌース氏の言うように「早まった最適化は諸悪の根源だ」と考えるべき
チューニングはボトルネックが判明してからでも遅くはないさ
0610デフォルトの名無しさん
垢版 |
2017/05/19(金) 07:46:02.97ID:s/1/vL0B
ループでいいものをなんでもLINQ使いたがる事が早まった最適化なんだけどな
0611デフォルトの名無しさん
垢版 |
2017/05/19(金) 08:26:08.97ID:mm1qRo/S
手続き型と宣言型の論争は泥沼になるからしない
LINQを早まった最適化としてループにするならそれはそれで良し
天秤にかける以前に、そもそもLINQを知らない現場コーダーが珍しくないのが問題
LINQっつーか新しい知識に対する貪欲さが薄い人が多い気もしなくもない
0612デフォルトの名無しさん
垢版 |
2017/05/19(金) 09:10:35.90ID:2M/fCFGg
VB派だけど
.Net Coreでは思い切ってVBをC#に吸収合併してほしかったな
そうすればC#に移行するいい機会になったのに
0614デフォルトの名無しさん
垢版 |
2017/05/19(金) 12:26:17.96ID:RFDTxagh
>>611
現実の仕事では枝葉末節の知識にばかり興味が向かってるお前みたいな奴の方が問題になるんだよ
0616デフォルトの名無しさん
垢版 |
2017/05/19(金) 16:05:54.15ID:dgLRkGLJ
>>615
往々にしてこうなっちゃうのがVBから入ることの最大の問題だよなあ
VBから入ること自体はいいとしても、C系アレルギーになる前にどれでもいいから必ずC系言語に触れておくべき
0617デフォルトの名無しさん
垢版 |
2017/05/19(金) 16:23:11.75ID:8B2hIZ69
LINQで完結するのもないとは言えないが
基本ループだけど、細かい分岐条件がある、って要件である場合が殆どだと思うが

if 使ってもいいのに、やたら三項演算子に拘る人に通じるものがあるな

自分の書いたコードを少しでも難読化させたい的な
(それが自分の技術力のアピールにもなると勘違いしてる系)
0621デフォルトの名無しさん
垢版 |
2017/05/19(金) 22:16:34.69ID:vtwwYXhB
configに定義してあるEndponintBehaviorをコードで取得する方法ってありますでしょうか?
0625デフォルトの名無しさん
垢版 |
2017/05/27(土) 11:03:02.04ID:/Ok7KXq3
PDFに枠線付きの表形式で記載されている商品情報(列は商品番号, 名称, 規格, 金額, メーカー名)があり、
そのPDFを読み込みファイルとして指定した結果をDataGridView等で表示し編集したいのですが、
それに特化したライブラリ等ご存知の方いらっしゃいますか?
0627デフォルトの名無しさん
垢版 |
2017/06/02(金) 06:06:39.11ID:F2C57ZnU
LANでつながってる別のパソコンのハードデスクの空き容量取得できないのかしら
0631デフォルトの名無しさん
垢版 |
2017/06/30(金) 01:41:21.87ID:48mZ6WIP
質問させてください。

ある有償の印刷ツールを使用し、帳票のプレビュー画面、印刷処理を実装しようとしています。
フォームから印刷用の処理(フォルダの取得とか)を行うクラスファイルを呼び出し、クラスファイル内で帳票ツールを参照しイベントを紐付けてプレビュー画面を表示することが出来ました。
しかし、クラスファイル内でプレビュー画面から印刷処理後、オブジェクト参照がインスタンスに設定されてない、とエラーになりました。
プレビュー表示、印刷処理のイベント自体はクラスファイルにイベントを紐付けてあります。
プレビューから印刷ボタン押下時、紐付けた印刷処理のイベントを呼び出し、プレビュー画面はクローズするようにしています。
(プレビュー画面はクローズしなければ、オブジェクト〜のエラーにはなりません)
クラスファイル内で紐付けたイベントをクローズした場合、クラスファイルごと強制終了?してしまうのでしょうか…
初心者で考えが回らず、困っています…誰か助けていただけませんでしょうか
0632デフォルトの名無しさん
垢版 |
2017/06/30(金) 02:08:26.20ID:48mZ6WIP
もしかしてなのですが、プレビュー画面はクラスファイルのファンクション内で、帳票ツールのイベントを呼び出して表示しています。
しかし印刷処理は帳票ツールのボタン押下イベントとして、イベントハンドラを追加してクラスファイル内に新しいメソッドとして追加しています。
ということは、もしや帳票プレビュー画面から印刷処理を呼び出した時点でクラスファイル自体は終了状態でしょうか?
0633デフォルトの名無しさん
垢版 |
2017/06/30(金) 09:43:37.93ID:IHXr7yJD
終了状態とかはNullReferenceExceptionの範疇ではない
デバッガで動かしてたら例外出た時点でブレイクして例外出たところが表示されるだろ
何がNothingになってるのか自動変数ウィンドウとかで確認
0634デフォルトの名無しさん
垢版 |
2017/07/01(土) 08:40:56.50ID:ollNq+8F
>631
オブジェクトモデルしだい

製品名からエスパーしろってことか
有償製品ならサポートあるだろ
0635デフォルトの名無しさん
垢版 |
2017/07/01(土) 19:31:57.59ID:C2aergYE
テキストファイルの読み込みとフォルダ一覧取得とファイル一覧取得
をネットで調べてコピペして
またしばらくして忘れて調べてコピペ
するを繰り返して20年経ってこれらしか知識が付かない場合なにすれば
0636デフォルトの名無しさん
垢版 |
2017/07/02(日) 16:34:48.54ID:9DLOI7U5
別にいいんじゃね
また必要になった時に、検索してコピペすればいいんだから
0637デフォルトの名無しさん
垢版 |
2017/07/02(日) 18:42:08.87ID:zwMqZWEJ
俺も、ネットがないころは本を買って熟読して覚えたけど
今はネットからコピペしちゃうから全然覚えられない罠
0638デフォルトの名無しさん
垢版 |
2017/07/04(火) 22:14:09.77ID:GXfrM+Il
コピペした内容を、全て理解して貼り付けてるならよいけど、
理解せず動いたからヨシにしている場合はマズイ
0639デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:17:30.14ID:dDvBznZA
必要なのは「どう動く」かであり
「なぜ動く」かではない
0640デフォルトの名無しさん
垢版 |
2017/07/05(水) 12:24:50.13ID:30GSgs4R
質問掲示板で解答者がソース貼ると怒るやついるしなw
「為にならない」って
質問者は「お勉強」しに来てるんじゃねーんだよw
0642デフォルトの名無しさん
垢版 |
2017/07/07(金) 08:13:36.41ID:6HogV9Gz
>>640
検索して知恵袋が引っ掛かって見てみると
回答じゃなくてお説教が書かれてたりすると
モニターにマウス投げつけたくなるよね
0643デフォルトの名無しさん
垢版 |
2017/07/13(木) 08:42:34.68ID:a1NtUvmB
プロジェクトで使用するVBのバージョンってどうやって決まるんですか?
同じプロジェクト内でも、.vbではvb14の機能が使えるのに、.vbhtmlで使おうとするとvb12ではサポートされていません、って表示されてしまいます。
0644デフォルトの名無しさん
垢版 |
2017/07/17(月) 02:43:13.91ID:Sjiy0WuF
質問です。DataTableの値をList型のクラスに変換したいです。クラスは別のクラスのインスタンスを保持していて、その別のクラスのフィールドに値をセットしたいです。どういうやり方が一般的ですか。
0645デフォルトの名無しさん
垢版 |
2017/07/17(月) 10:24:00.76ID:W+Dn0UEX
地道に書く
汎用的にしたいなら列名とプロパティ名を同じにしてPropertyInfoを見ながら回す
0646デフォルトの名無しさん
垢版 |
2017/07/17(月) 11:23:52.04ID:nd0ZPw8t
VB2010でのバイナリファイルの書き込みについての質問です
ある構造体の配列変数Record()をFileOpenとFilePutを使って

N:ファイル番号
SaveFileName:ダイアログで取得した出力ファイル名
RecordSize:配列のサイズ

N = FreeFile()
FileOpen(N, SaveFileName, OpenMode.Binary, OpenAccess.Write, OpenShare.LockReadWrite)
Seek(OpenFileNumber, 1)
For i As Long = 0 To RecordSize
FilePut(N, Record(i))
Next
FileClose(N)

といった感じで実装しています(実際にはエラー処理のためTry〜End Tryの中に記述)
通常はこの処理で問題ないんですが、既に存在しているファイルに上書きしようとした場合、既存のファイルが上書きしようとする
ファイルよりも大きいと、余った分のサイズが上書きされず前の古いファイルの内容が残ってしまいます
上書き時に既に存在するファイルを完全に置き換える(つまり古いファイルは消える)にはどうすればいいのでしょうか?
ファイルをオープンする前にSaveFileNameに該当するファイルがあるかどうか調べて、ある場合は既存のファイルを削除してから
書き込むようにすればいいんでしょうけど、何かこうスマートではない気がして・・・
0647デフォルトの名無しさん
垢版 |
2017/07/17(月) 17:10:54.57ID:wHgHyCIS
さすがにVB使ってる人でもVB6の互換関数とか使ってる人はほとんどいないと思うw

まあ、構造体がそのまま読み書きできて便利かもしれないけど、
ググれば構造体とbyte()を相互変換する方法が出てくるから、
それを使ってSystem.IO使って書き直した方がいいと思うよw
0648デフォルトの名無しさん
垢版 |
2017/07/17(月) 20:33:05.87ID:nd0ZPw8t
>>647
構造体配列とByte配列の相互変換については調べたんですが、マーシャリング云々が
自分の頭ではさっぱり理解できず・・・
もし分かりやすく解説しているサイト等があれば教えていただけないでしょうか?
0649デフォルトの名無しさん
垢版 |
2017/07/18(火) 00:51:59.63ID:H1lIICB/
>>648
(1) CopyMemoryを使う
(2) VBFixedArray属性 とFieldOffset属性を使う(要は共用体にする)

(2) は本当に可能かどうか知らない。

(1)は実際にやったことあるしググればいくらでも実例出てくると思う。
構造体⇔Byte()だけではなく構造体の配列⇔Byte()も可能だし、こっちの方がいいかもね。
0659デフォルトの名無しさん
垢版 |
2017/08/12(土) 11:40:48.61ID:QjNv8My6
dictionary ( of integer, string) のofってなんですか?
0664デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:14:41.43ID:QjNv8My6
前の引数だけOFが付いてるのは何故なんだろう?
0665デフォルトの名無しさん
垢版 |
2017/08/12(土) 20:37:36.82ID:QjNv8My6
>660
良い資料ありがとう。意味わかりました。ofは両方の引数にかかるんだ。
0666デフォルトの名無しさん
垢版 |
2017/08/12(土) 21:11:02.79ID:JQcCJPUN
片方が型引数でもう片方は型引数でない何か、ってものが存在しないんだったら1つで十分でしょ
0667デフォルトの名無しさん
垢版 |
2017/08/12(土) 22:39:38.37ID:QjNv8My6
Using the Of Keyword
The following code example uses the Of keyword to define the outline of a class that takes two type parameters.
It constrains the keyType parameter by the IComparable interface, which means the consuming code must supply
a type argument that implements IComparable. This is necessary so that the add procedure can call the System.
IComparable.CompareTo method.
For more information on constraints, see Type List.

Ofキーワードの使い方について
次のコード例はOfキーワードを使っているが、それは二つのタイプのパラメータを取るクラスの外形を定義している。
IComparableインターフェースのKeyTypeパラメータを含むが、ここで使われるコードにはIComparableを実装した引数を
あてなくてはならないということを意味する。これが必要なのはadd関数がシステムをコールのIComarable.CompareToを実行
できるようにするためである。さらに詳しくはListの項目を見ること

Public Class Dictionary(Of entryType, keyType As IComparable)
Public Sub add(ByVal e As entryType, ByVal k As keyType)
Dim dk As keyType
If k.CompareTo(dk) = 0 Then
End If
End Sub
Public Function find(ByVal k As keyType) As entryType
End Function
End Class
0668デフォルトの名無しさん
垢版 |
2017/08/14(月) 10:15:48.33ID:Q/2jfFNl
同じプロジェクト内にForm2を生成すると
Form1から 
  Form2.showdialog()
で呼び出すことができる。しかしForm2を立ち上げる時に初期化ファイルをセットしたい
そこでForm2に次のコードを付け加える。
sub New( inifile as string)
INIFILE = inifile
end sub
こうするとForm2.showdialog()が立ち上がらない。そこで
dim fm as new Form2.new(inifile)
fm.showdialog()
のようにすると立ち上がるけれども、Form2上のコントロールとかが全く表示されない。
これは何故なのだろう。
0669デフォルトの名無しさん
垢版 |
2017/08/14(月) 10:34:07.27ID:Q/2jfFNl
>668
自己解決した。サンクス
0670デフォルトの名無しさん
垢版 |
2017/08/14(月) 16:29:17.87ID:C7avT2pN
>>667
Ofはともかく、型制約にAs使うの解りづらすぎるよな
C#みたいに (Of T) Where T Implements IComparable でよかったのに
まあVBerのレベルを考えるとあまり多用される機能ではないという判断で
文法への影響の少ない構文にしたのかもね
0671デフォルトの名無しさん
垢版 |
2017/08/14(月) 17:17:31.67ID:Q/2jfFNl
dim strA as string
dim dt as integer = convert.toint16(strA)
みたいな方法でいつもinteger 変換してるけど非常にめんどくさい。stringに機能を追加して

dt = strA.toint16

にすることはできないんですか? やる方法があれば教えてください。
0672デフォルトの名無しさん
垢版 |
2017/08/14(月) 17:50:35.60ID:qguplZTI
>>670
もともとVBのコンセプトは英語で読めるってことだからむしろasでいい。
英語の意味的にはばっちり合ってる
whereだけでは英語として意味不明だし、implementsなんて付けちゃうとStruce, Class, Newの制約が
意味不明になる

>>671
どこが面倒くさいのかまったく理解できんなあ
0674デフォルトの名無しさん
垢版 |
2017/08/15(火) 06:39:14.36ID:3ZJdJfY6
ちなみにWindowsのメモ帳でUnicode保存するときわ
UTF16 リトルインディアン BOM付
マメな
0675デフォルトの名無しさん
垢版 |
2017/08/15(火) 08:54:41.68ID:QkdEv7VL
>>672
対称性がないと普通の人はめんどくさいはず。
つまり
c = a.tostring
a = c.tointeger
これが対称性
気にならないとしたら精神力が極めて強いとか、かなり特殊な人だと思う。
英語に詳しそうだけど、英語のようなある意味複雑怪奇な言語をマスターできている
としたら相当根性があるね。

>>673
そういうのがあるとは知らなかった。ありがとう。
0676デフォルトの名無しさん
垢版 |
2017/08/15(火) 10:19:21.62ID:IHvUQsH9
>>675
対称性()を尊重してToString持った型全てに対してString.ToXXXを用意しろということ?
一体いくつあると思ってんの?
0677デフォルトの名無しさん
垢版 |
2017/08/15(火) 11:17:15.49ID:p+eNcMXx
つかtostringはobjectから継承してんだからobjectに実装するだけだが
全く意味は無いな
0680デフォルトの名無しさん
垢版 |
2017/08/16(水) 00:47:10.66ID:7vn1plFo
並行移動
c0 = a0.tostring : a0 = c0.tointeger
c1 = a1.tostring : a1 = c1.tointeger
回転
c = a.tostring : a = c.tointeger
a = c.tointeger : c = a.tostring
0681デフォルトの名無しさん
垢版 |
2017/08/16(水) 00:48:33.90ID:7vn1plFo
>>全く意味は無いな
根性がある人だけ
0683デフォルトの名無しさん
垢版 |
2017/08/16(水) 12:21:02.42ID:7vn1plFo
Parseは解析だからもう少し機能があってしかるべき言葉だろうな。toStringに対応する
言葉ではないな。まあ命名は大変だから仕方ないけど。
0685デフォルトの名無しさん
垢版 |
2017/08/17(木) 11:56:42.10ID:uqKN3QQl
汎用的オブジェクトの保存と取り出し機能を探してるんだが例えば
1.クラスインスタンスのデータだけ(dictionary,配列なども丸ごと)をテキスト形式でファイル保存して
2.テキストエディターでそれを編集する。
3.編集したものを再度クラスインスタンスに読み込みをする
こんなことをしたいのだけど、なんかよい方法はない?
0687デフォルトの名無しさん
垢版 |
2017/08/18(金) 10:08:29.75ID:A1J5J7Ue
XMLとかめんどくさくて使ったことないんだが、専用エディタとかで使うんだろうか?
一旦簡易形式に変換して編集してまたもとに戻すのかな?
XML−−>変換 マークダウン エディットーーー>変換ーー>XML
0688デフォルトの名無しさん
垢版 |
2017/08/18(金) 11:16:52.71ID:Jf2sTJDT
どんな規模のデータを想定するかによるが
普通はテキストエディタでそのまま書き換える
0690デフォルトの名無しさん
垢版 |
2017/08/21(月) 18:23:41.94ID:xXFz6ihy
HAL,JSON-APIだったらどっちがいい?
0691デフォルトの名無しさん
垢版 |
2017/08/22(火) 05:09:37.15ID:d7ebk59r
コレクションとかディクショナリーはJSONでは無理では?
0692デフォルトの名無しさん
垢版 |
2017/08/22(火) 06:46:59.20ID:tVMqw9p7
>>691
いくらVBerとはいえ無知にも程がある
JSONなら[ ... ] がコレクションで { ... } がディクショナリ
0694デフォルトの名無しさん
垢版 |
2017/08/22(火) 14:54:33.95ID:d7ebk59r
>>692
無知には程なんてないからね。君もこの程度のことを知らないのだからやはり無知だな。でも無知なんてものは
知れば一瞬にして終わる。だから恥ずべきことではない。ところで

>JSONなら[ ... ] がコレクションで { ... } がディクショナリ
これは勝手に君かもしくは君がしっている閉鎖的集団内で通じる規則として勝手に決めたフォーマットだろ、これを
サポートするVBのコマンドはない。
 Dictionaryを適当に展開してこのようなフォーマットで保存すればよいということだね。
そういうことなら、そうだと説明しないと解らない。こちらは想像力だけで判断しているんだが、、
0695デフォルトの名無しさん
垢版 |
2017/08/22(火) 14:58:01.29ID:psjy/gWC
IEnumerableの拡張メソッドを作った時に
IEnumerableを継承したCollectionとかListは対象にならないの?
CollectionとかListで同様に拡張メソッドを作るか
AsEnumerableでIEnumerableにすればやりたいことはできるけど・・・
0696デフォルトの名無しさん
垢版 |
2017/08/22(火) 15:08:01.90ID:vqjwX2Vb
各クラス/インターフェイスがジェネリックなのかそうでないのか
はっきりしてくれないとわけわからんが
普通はできるのでなんかおかしいこと書いてるんだろう
0698デフォルトの名無しさん
垢版 |
2017/08/22(火) 15:27:53.01ID:psjy/gWC
>>696
あーごめんなさい。できますね。
IEnumerableに拡張メソッドをどんどん追加するとインテリセンスの候補がいっぱい出てきちゃって
自分で作ったやつがわからなくなるからとあるサイトをみて
Items.ToExtension.XXXみたいになるようにしていたんですがこれが原因でした。
0699デフォルトの名無しさん
垢版 |
2017/08/22(火) 15:39:25.68ID:X2zW1dp7
>>694
>これは勝手に君かもしくは君がしっている閉鎖的集団内で通じる規則として勝手に決めたフォーマットだろ、これをサポートするVBのコマンドはない。
間違い。JSONの配列やマップをそれぞれリスト型やディクショナリ型とマッピングすることは一般的である。
実際、WCFのJSONシリアライズはそういう仕様だし、.NETにおいてJSONを扱うライブラリのデファクトスタンダードであるJSON.NETもそう。
知らないのが悪いんじゃなくて、そうやって知らないのに思い込みで物をいうからバカにされるんだよ。
0701デフォルトの名無しさん
垢版 |
2017/08/22(火) 18:31:28.28ID:d7ebk59r
>>699
そうだな。
そういうふうにキーワードなどの根拠となる事実を上げて説明する。そうすると確認することができるから君に誤りがある場合にもより正確にそれを指摘できる。
根拠が示されないと残念ながら指摘もあいまいになる。

因みに>>700こういう輩はシッタカが殆どで正確に表現する能力がない。まあ名誉回復の為に699の発言に於いて抜けている重要事項を追加説明できるか
どうかチャンスをやろう。それができないなら単なるシッタカ。
0702デフォルトの名無しさん
垢版 |
2017/08/22(火) 18:58:29.27ID:1JK3C2LQ
>>701
いやーJSON知らなかったっていうのは別にいいと思うよ
でも>>694みたいなレスはさすがに恥ずかしい
”JSON”でググればすぐ分かることなんだから

ちゃんと謝っとこうね
0703デフォルトの名無しさん
垢版 |
2017/08/22(火) 20:48:34.46ID:d7ebk59r
シッタカ決定
0704デフォルトの名無しさん
垢版 |
2017/08/22(火) 21:21:34.59ID:1JK3C2LQ
俺の知ってるソフトウェア開発者っていう閉鎖的集団内ではJSONの基本フォーマットは常識なのよ
日本人っていう閉鎖的集団内で47都道府県名が常識なのと同じレベル
その常識に対してシッタカとか言われても、はあぁ?ってなるわ

恥の上塗りを重ねる前に“JSON”でググれよな
俺の環境だと↓これがトップヒット
http://www.json.org/

もしググったにもかかわらず>>694みたいなレスしてんなら
プログラム書く前にもっと基礎を勉強したほうがいいよ
0705デフォルトの名無しさん
垢版 |
2017/08/22(火) 23:00:11.31ID:Bmva2yao
{"a":124, "b":[3,4,5], "c": {"x":123, "y":"abcde", "z":true}}

aは整数だからDictionary(Of String, Integer)?違います
bは整数リストだからDictionary(Of String, List(Of Integer))?違います
cはDictionary(Of String, Dictionary(Of String, ???????))

VBではJSONは無理ですね
0706デフォルトの名無しさん
垢版 |
2017/08/22(火) 23:27:27.24ID:1JK3C2LQ
>>705
cはDictionary(Of String, Dictionary(Of String, Object))
JSONだけじゃなくVBも勉強したほうがいいみたいね

すべての型をそのままJSONにできるわけでも
すべてのJSONを任意の言語の型にそのままマッピングできるわけでもないけど
それはどんなデータフォーマットだって同じだから
VBだけJSONは無理なんてことはありえない
0707デフォルトの名無しさん
垢版 |
2017/08/23(水) 01:10:59.17ID:nD3v/vvZ
>>706
お前の場合は根拠をしめした説明が何もない。単なる罵りだけ。品性も論理性も知性もない。それでは駄目だな。
説明力がまるでない。だからシッタカと判断される。

しかし今回はこの JSON定義 サイトを示してきたことは褒めておこう。
http://www.json.org/

でもこのサイト最初から間違ってるじゃん。最初の図はobjectじゃないな。これはmemberの定義だよな。
intrduceで出鱈目もいいとこだな。
これ見たら表現力全然ないフォーマットだなと思ってしまう。最悪の紹介だな。
0708デフォルトの名無しさん
垢版 |
2017/08/23(水) 01:22:25.86ID:bHZ6/xkT
>>707
objectってのはJavaScript用語な

JavaScriptのobjectはプロパティのコレクションで
プロパティはKeyValueペア、つまりobjectはディクショナリ相当なの

JSONのJから勉強して
まあとにかくガンバレよ
0709デフォルトの名無しさん
垢版 |
2017/08/23(水) 01:25:22.59ID:nD3v/vvZ
>すべての型をそのままJSONにできるわけでも
>すべてのJSONを任意の言語の型にそのままマッピングできるわけでもないけど

JSONの定義が大体分かったところで、それをVB.netで実現するライブラリが用意されているかどうかだな。
Jsonは汎用フォーマットだから、Dictionaryの保存ができるかできないかというならできるに決まってる。
問題は手軽にできるようにライブラリによってサポートされているかどうかだ。

 .NET Framwork標準 DataContactJsonSerializer
 CodePlex 公開    DynamicJson
 CodePlex公開    Json.net

有名なところでこのくらい。ライブラリがある。
まあJson.netはDictionaryもそこそこサポートできている。後の二つは正確には調べていないが多分駄目だろうな。
0710デフォルトの名無しさん
垢版 |
2017/08/23(水) 01:28:29.40ID:nD3v/vvZ
>>708
それがシッタカだっていうの。これはバッカス記法だからJavaScrit以前の問題だ。
明らかに誤りだよ。
0711デフォルトの名無しさん
垢版 |
2017/08/23(水) 02:23:06.58ID:bHZ6/xkT
>>710
シンタックスダイアグラムはバッカス記法じゃねーわ
いい加減にしろよww

間違ってもないとこを間違ってるとか言いはって
何回恥の上塗りしたら気が済むねん

VBにJSONは無理なんじゃなく
君みたいなVBerにはJSON無理
0712デフォルトの名無しさん
垢版 |
2017/08/23(水) 02:25:23.95ID:yMMFXiqG
JSONは外側をobjectにする必要はないので
true
の値ひとつでもJSONとして成立しますしですしおすし
0713デフォルトの名無しさん
垢版 |
2017/08/23(水) 02:40:27.91ID:I/Vx60Z7
ID:nD3v/vvZはもう引っ込みがつかないんだからやめてやれよ
泣きながら腕グルグル回して飛びかかってくるぞ
0714デフォルトの名無しさん
垢版 |
2017/08/23(水) 05:14:44.76ID:nD3v/vvZ
>>711
おっ、よく気が付いたな。些末な言葉尻には気が付いても、「間違いがある」という本質は
解らんのかな?

しかしSyntaxDiagramの基底にはバッカスがあるんだよ。
Syntax diagrams (or railroad diagrams) are a way to represent a context-free grammar.
They represent a graphical alternative to Backus–Naur form or to EBNF as metalanguages.
Early books using syntax diagrams include the "Pascal User ... WIKI
0715デフォルトの名無しさん
垢版 |
2017/08/23(水) 05:15:12.09ID:nD3v/vvZ
>間違ってもないとこを間違ってるとか言いはって 何回恥の上塗りしたら気が済むねん

間違いが分からないとするとBNFの内容を理解してなくて字面だけを記憶してるだけだろうな。
それでは駄目だな。多く知っているようでもその知っている知識はガラクタだな。

ここにあるダイアグラムではobjectを
object
{"aa": xx , "bb": yy, "" : "zz", ..... }と定義している。これでは全く不完全だな。

array以下はあってるな。
この説明ではVBのDictionaryは表現できない。
ディクショナリでは
dictionaryName : { "key0" : xx, "key1": yy, "key2" : zz} こういう構造が必要だ。
でさらにDiagramをよく見るとValueにObjectを含んでいる。そういうことかValueの中のObjectを見落としていたのか?
ということで、間違いではなくてそれは「Valueの中のObjectの再帰定義を見落としていますよ。」って指摘ができれば
かなり賢い。知識はガラクタではないということになる。しかしこういう筋の通った説明ができないで喚くだけでは駄目だな。
分かっていたかどうかも怪しい。確率50%で外れてるが、たまたま当たった。w

もう一つ言えばこのDiagramの書き方も直観的に間違いを誘発するような駄目な記述だな。ObjectをValueの中で再帰定義する
なら特徴的に書かないと読む方は見落とす。表現の基本がなってない。
0716デフォルトの名無しさん
垢版 |
2017/08/23(水) 05:28:14.67ID:nD3v/vvZ
繰り返し言うが説明や根拠の乏しい主張は無意味だ。丁寧に説明する癖をつけないと賢くならない。
説明をすると、仮に間違っていても説明の過程で正しい解にたどり着く。もし正しい解にたどり着けない
にしても、誰か親切な人から訂正をしてもらえる。
説明をしないで罵るのは最悪だ。そういう癖のある人は常にそういう脳の使い方をしているので脳が
機能しなくなる。
0717デフォルトの名無しさん
垢版 |
2017/08/23(水) 06:26:41.09ID:PWTjZsi1
>>709
今時CodePlexって、まさかgithubもnugetも知らないの?
まあJSONとは違ってVBerの半分くらいは知らなそうだからムキになる必要はないぞw
0718デフォルトの名無しさん
垢版 |
2017/08/23(水) 06:42:23.72ID:nD3v/vvZ
そういうシッタカはウンザリだ。
0722デフォルトの名無しさん
垢版 |
2017/09/04(月) 12:22:51.36ID:zDZbs+Yz
1分毎にSub _Check()を1回実行させたいんですが、実際動かしてみると
1分後にSub _Check()を1回実行、2分後にSub _Check()を2回実行、3分後に3回・・
って感じでどんどん実行回数が増えていってしまいます。

ネットで以前拾ったフリーの物をいじっていて、以下のようになっているのですが
どうやったら1分毎に1回だけ実行させるように変えられますか?

ビルドの仕方が悪いとかありますか?

Sub aaa
AddHandler Timer.Tick, AddressOf Check
Timer.Interval = 60 * 1000
Timer.Enabled = True
End Sub

Sub Check()

AddHandler BackGround.DoWork, AddressOf _Check
AddHandler BackGround.RunWorkerCompleted, AddressOf Balloon_Show
If BackGround.IsBusy Then
Return
End If
BackGround.RunWorkerAsync()
End Sub

Sub _Check()
MsgBox("チェック")
End Sub
0724デフォルトの名無しさん
垢版 |
2017/09/08(金) 11:42:00.08ID:2HXwLqzE
722ですけど
1分毎にAddHandlerするとどうおかしいんですか?
どう変えたら良いか何かヒントだけでも教えてもらえませんか。
723見てから考えたり検索したりしてみたんですけどやっぱり分からなくて。。
自分かなりプログラミングの知識が無い人間なもので。。
0725デフォルトの名無しさん
垢版 |
2017/09/08(金) 16:06:27.08ID:2HXwLqzE
722です。

他でも聞いてみたらこうだったみたいです。

Sub aaa
AddHandler Timer.Tick, AddressOf Check
Timer.Interval = 60 * 1000
Timer.Enabled = True

AddHandler BackGround.DoWork, AddressOf _Check
AddHandler BackGround.RunWorkerCompleted, AddressOf Balloon_Show

End Sub

一分ごとにAddHandlerしてるからじゃねってこういう意味だったんですね。
結局私には理解出来なかったんですがwありがとうございました。
0726デフォルトの名無しさん
垢版 |
2017/09/11(月) 23:31:41.16ID:r5xmv3Ye
PC(VB.NET)でLAN接続したRasPi(Win10 iot core)のGPIOの制御をしたいのですが、どうしたら宜しいでしょうか。
0727デフォルトの名無しさん
垢版 |
2017/09/19(火) 12:09:09.53ID:CiFpR9wm
先日2003があったので始めた初心者です
wavファイルをPlaySyncで再生したいのですが、再生が終わり次第次々他のwavファイルを再生していくということと、
繰り返し処理をする度再生するwavファイルの変更(パスで入力しています)をするということはどうやったら可能でしょうか?
0729デフォルトの名無しさん
垢版 |
2017/09/19(火) 13:02:31.36ID:CiFpR9wm
間違えましたすいません2013professionalです
0731デフォルトの名無しさん
垢版 |
2017/09/19(火) 13:55:59.70ID:PJTSF08k
>>727
直行する問題は分けて考えよう
まずファイルパスを変えながらファイルパスをコンソールに出力していくプログラムを作る
コンソールに出力するところをPlaySyncに置き換える
これだけのこと
0732デフォルトの名無しさん
垢版 |
2017/09/19(火) 15:01:36.81ID:CiFpR9wm
>>731
ありがとうございました
そのプログラムの書き方もわかりませんし、色々試してみましたが複数の音声ファイルを順に再生していくことさえできなかったので、諦めようかと思います
0734デフォルトの名無しさん
垢版 |
2017/09/19(火) 18:55:22.08ID:oRSrnZEU
>>727
>再生が終わり次第、次々他のwavファイルを再生していく
これは、再生アプリの方で、曲が終わったタイミングで、
こちらのプログラムのコールバック関数を呼んでもらう

つまり、非同期処理だから、初心者ができる訳ない

JavaScript などで、非同期処理に慣れていないと、できない
0735デフォルトの名無しさん
垢版 |
2017/09/19(火) 18:58:08.69ID:PJTSF08k
>>734
PlaySyncだから再生終了までブロックする。非同期処理は必要ない。
もちろん現実には非同期処理をしないと再生終了までUIがフリーズするビチグソになるが、
一応の要件は満たせる
0736デフォルトの名無しさん
垢版 |
2017/09/19(火) 19:03:17.52ID:sBYjPNie
ワーカースレッドの中でやればいいじゃん
スレッドにはキューでくべてやれば
0737デフォルトの名無しさん
垢版 |
2017/09/19(火) 19:15:59.50ID:jrl9HDel
どっちにしても同期で順に再生することができないというなら
手の施しようがない
0738デフォルトの名無しさん
垢版 |
2017/09/19(火) 22:11:07.32ID:Lmy6WMsF
WCFサービス参照を追加するときに、型の再利用を考えています。
その型のアセンブリ名とプロジェクト名が異なると、WCFサービス参照を追加したときに、アセンブリ名で参照が追加され、エラーになります。
すでにプロジェクト参照が追加されているので、新しく追加されたアセンブリ参照を削除するとエラーが解決されます。
これってバグなのでしょうか?
0739デフォルトの名無しさん
垢版 |
2017/09/20(水) 21:02:45.48ID:cmLxLvt1
すみません、未練たらしいのですが基本的なことだけ教えていただけませんか?
>>733のURLのコードをPlaySyncに変えただけのものに、player.PlaySyncに続けて、
PlaySound("別のファイル")
player = New System.Media.SoundPlayer(waveFile)
player.PlaySync
と挿入すると、2つ目のファイルが延々と再生され続けてしまいます
その後にStopSoundなど入れても意味がないので根本的なところがわかっていないと思うのですが、どこがおかしいでしょうか
できれば簡単に教えていただきたいです…
0741デフォルトの名無しさん
垢版 |
2017/09/24(日) 05:42:08.55ID:wyPZ0ic9
webbrowserコントロールでページ内のテキストボックスに数値を入れたいのですが、そのテキストボックスのIDが表示されるたびに変化してしまうので、取得出来ずnullexceptionになってしまいます。

idはnumber_**********という感じで表示の度に_以降の数値が増えます。

出来る方法があれば教えてください。
0742デフォルトの名無しさん
垢版 |
2017/09/24(日) 08:22:31.09ID:Iu73uVEK
id以外で探すしかないんじゃない? bodyの3番目のdivの2番目のinput、とかそういう風なのとか
number_って接頭辞のidがそのページで1つだけなら全input要素の中でidの先頭がnumber_で始まるの探すとか
0744sage
垢版 |
2017/09/26(火) 14:58:38.36ID:PpQ5JcU2
VB6のプログラムを.NETに移せと言われてます。
当方、最近やっとVB6をちょっと理解したばかり。
VB6のモジュール内に、変数やらエクセル操作のプロシージャがあるのですが、
これはどこに移せばいいですか?
フォームに移すと多すぎなので、見やすいようにわけれればいいのですが。
0746デフォルトの名無しさん
垢版 |
2017/09/26(火) 16:18:28.87ID:PpQ5JcU2
>>745
ありがとうございます。
わからなくて色々見ていたら、モジュールは使わずクラスに書くとか、
エクセルの操作では、COMの解放やらインスタンス生成とか、
もう??だらけでした。
とりあえずは、現行と同じモジュールで大丈夫と聞いてホッとしました。
0748デフォルトの名無しさん
垢版 |
2017/09/26(火) 17:21:40.77ID:Jf7hYkjk
もう恐らくデスクトップがなくなるまでVb6ランタイムはサポートされそうな気がするけどねw
0749デフォルトの名無しさん
垢版 |
2017/09/26(火) 20:12:01.39ID:b2jheQUq
噂だけどペンタゴンにあるシステムでVB6の物があるからサポート切れないとか
0750デフォルトの名無しさん
垢版 |
2017/09/27(水) 07:10:43.77ID:vQ8fTHXT
windowsが10で終わるのはvb6切るためという噂がある

でもwindowsブランド捨てたらMSのOS事業も終わるだろうから老醜を晒してモダン化諦めたwindows作るかもな
0751デフォルトの名無しさん
垢版 |
2017/09/28(木) 16:44:52.29ID:p7vLxmpX
昔VB厨で、最近までVB離れてUNIX、Linux、VC++、C#やってきたけど、
最近、VBAマクロ移植の話があって、VB.net触ってみた。

書式がちょっとVBっぽいだけで、構造は、C#のままだよなぁ。
VB互換の便利関数が使えるといっても、C#でも参照できるクラスだし。

VB並に強力な、オブジェクトメンバーの追跡できる機能がVSにあれば
いいんだけど、結局知らないモジュールのリファクタリングは手でやらなきゃいけないし。
常時Dynamicで全行ステップ実行とかできれば使いどころあるんだけどなぁ。
0752デフォルトの名無しさん
垢版 |
2017/09/30(土) 15:06:05.99ID:JKOApPN+
VBAなんかをやってた者だが、簡易にデータベースにアクセスするプログラムを書いてみた。
簡易な奴なのでAccessベースで接続するんだが、32bitと64bitで問題になってる。
×86CPU向けに作れば32bit、AnyCPU向けに作れば64bitに対応できるようだけど、インストールするマシンにAccessが入ってるとそのAccessが64bitか32bitかに左右されてしまう。(Accessと異なるbitのエンジンはインストール出来ない。)

これってどうにもならないのか?
2通りで作るしかない?
データベース変えるしかないのかな。
0755デフォルトの名無しさん
垢版 |
2017/09/30(土) 16:07:08.00ID:JKOApPN+
>>754
やっぱそうなるよね。
出来ればMSでどうにかしたいんだ。
ワケありでね。
Accessベースが駄目ならテキストベースも考えたんだけど、これ64bit駄目だよね。

やっぱり2通りで作るしかないか。
0756デフォルトの名無しさん
垢版 |
2017/09/30(土) 20:24:13.79ID:KohNdydM
>>755
SQL Server Compactは?
マネージドだからいけそうだけど
0758デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:39:13.85ID:PxgxVv4e
>>756
情報ありがとう。
調べてみたら良さそう。
これで組んでみる。

>>757
×86限定ならJETでもACEでもいけるだろうね。
というか、ACEではいけてる。
気になったのは、こんな制限が残ってるんだということ。
VBAをやってた者からするとOfficeのbitは同じだから気付かなかった。
0759デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:56:04.09ID:K1ZKurRy
Windows 64bit - Office 64bit - ACE 64bitならAnyCPU/x64でOK
Windows 32bit - Office 32bit - ACE 32bitならx86でOK
になってACEじゃどうにもならんはずだけどそうでもなかったっけ?
0760デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:57:01.86ID:K1ZKurRy
あ、下段違う
Windows 64bit - Office 32bit - ACE 32bitならx86でOK

Windows 32bit - Office 32bit - ACE 32bitならAnyCPU/x86でOKだな
0761デフォルトの名無しさん
垢版 |
2017/10/01(日) 16:25:46.41ID:+BZf6Z9D
>>752
ACEの32ビットと64ビットが同居できない
.NETの問題じゃないのでどうにもできないな

OFFICEが32と64とで別なんだから、32ビット用と64ビット用分けるしかねえんじゃね
つか64ビットのACCESS使ってるとこ見た事ないけどな

>>760
Office(ACEドライバ) 64bit 使いたいって話じゃないのかね
0762デフォルトの名無しさん
垢版 |
2017/10/01(日) 20:22:10.30ID:5vH0Pat/
>>761
そう。
正にこれ。

実は作ってたのがVBEのアドインで、昔のAPIViewerみたいなのだったんで、Officeがインストールされてる環境が前提だった。
初めて.netで組んでみたけどコードの部分は感覚的に分かりやすいね。
元々似てるし。

http://imgur.com/9gzQbNy.jpg
0763デフォルトの名無しさん
垢版 |
2017/10/02(月) 00:18:26.18ID:mjmvjzw0
>>752
うちの会社のSEなら問答無用でAccessを32ビットに統一させるな
そもそも、7まではOSは32ビットにしろ!なのでOfficeも(64ビットOSでも)32ビット強制

まあ、そういう解決方法もあると言うことで
0768デフォルトの名無しさん
垢版 |
2017/10/02(月) 12:57:21.76ID:Kxj0uZ10
不特定多数にバラ撒くアプリだと無理だけど
たとえばx32なOfficeの入ってる環境にx64のACEを強制インストする方法があったと思う
0769デフォルトの名無しさん
垢版 |
2017/10/03(火) 00:56:32.41ID:L8hprTCo
AnyCPUなDLLにして、オフィスから呼んでもらうのはどうだろう
それならオフィスと同じビット数で動くんじゃね
0773デフォルトの名無しさん
垢版 |
2017/10/04(水) 14:53:27.06ID:aW4Cfo6o
昔のライブラリで、On Error Resume Next を前提にしたるCOMモジュールを扱うときなんかは、VB.netは便利。
C#でも似たような制御できればいいのに。
0774デフォルトの名無しさん
垢版 |
2017/10/06(金) 01:12:12.05ID:Ahbm7zus
それって例外無視したいってこと?
0775デフォルトの名無しさん
垢版 |
2017/10/06(金) 11:57:59.66ID:oEyA6PeW
3次元配列A(x,y,z)をエクセルに
1シート毎にA(1,y,z),A(2,y,z),A(3,y,z)…としたいのですが、
1データずつ書き込むとすごく時間がかかるので、2次配列B1(y,z),A2(y,z)…の形で出力したいです。
この場合、二次配列の宣言文はどう書いたらいいのですか?
0776デフォルトの名無しさん
垢版 |
2017/10/06(金) 14:51:49.82ID:oEyA6PeW
775ですが、わかりずらくてすみません。一次配列だとA(10)で10個の配列を宣言できますが、
二次だとA(10)(100,100)と書くと受け付けてくれませんでした。どのように書けばいいのでしょうか?

また、今は3次元配列から、1点ごと移して、1シート分ごとの二次配列を作ろうと思ってますが、
もっとスマートな方法があったら教えてください。
0779デフォルトの名無しさん
垢版 |
2017/10/06(金) 15:27:18.19ID:oEyA6PeW
>>777
そうなんです。VB側で二次配列に変換します。その時の二次配列名をA1,A2,A3…としたいのですが、
どうやって宣言したらいいのでしょう?個数は都度変わります。

>>778
ダメな理由は、私が超初心者だからです。Rangeオブジェクト、調べます。
0780デフォルトの名無しさん
垢版 |
2017/10/06(金) 16:18:03.87ID:+xC3oUH1
Object型の二次元配列の配列は
Dim arr(n)(,) As Object
For i As Integer = 0 To n - 1
ReDim arr(i)(x, y)
Next
0783デフォルトの名無しさん
垢版 |
2017/10/06(金) 18:34:40.77ID:zGeBsdYt
>>779
VBAならコレクションで簡単に出来ると思う。どうしてもVB.Netでやらなければいけないならアレだが。
因みに、エクセルはシートに書き込む時ループじゃ遅くなるから二次元配列で
Range("A1").Resize(Ubound(2DArray,1),Ubound(2DArray,2)) = 2DArrayとやるとそこそこ高速に書き込める
0784デフォルトの名無しさん
垢版 |
2017/10/09(月) 12:03:03.55ID:p4uEChG8
>>774
そうそう。
制御系のシステムとかでも、その時点でできることできないことがゴッチャになってるライブラリがある。
エラー前提でリリースされてるライブラリもあって、そういう前提だとResume NextがないとTryのブロック
記述がものすごく複雑になる。ぶっちゃけ、機械の挙動を、プログラムから先読みしないといけなくなる。

そういう前提のライブラリを利用するとき、いまVBはスタンダードじゃないけど、vb.netなら、VBと同じく、
Resume Next使えるからうれしい。
0785デフォルトの名無しさん
垢版 |
2017/10/13(金) 00:42:03.31ID:d0dipzNo
上の初心者です。お陰様で無事解決して先に進めました。
Do〜Loopで計算させて、ある数値の変化を見ながら中断。データをエクセルに出力、
その後また計算を再開させたいのですが。ボタンは、中断・再開・出力(終了も必要かも)
調べていたらBackgroudworkerっていうのが出てきたんですが、中断・再開、そして
その間にデータ出力って無理ですか?ほかの方法でもいいので教えて下さい。
0787デフォルトの名無しさん
垢版 |
2017/10/21(土) 17:52:46.13ID:7/uhu6B6
繰り返し数値計算するプログラムを作って動くようになったんですけど、
途中でNaNが出てしまいます(NaNが出ても止まらない)
どうして出たのか突き止めたいのですが、どうやったらいいのでしょう?
デバッグのブレークポイントの設定でi=NaN,i==NaNとか入れてみたんですが、
式が良くないようで働きません。
0789デフォルトの名無しさん
垢版 |
2017/11/03(金) 23:26:56.71ID:T/az7urs
vb.netとoracledbのプログラマが急に退職になったので、引き継ぎがないままで、私が保守をすることになりました。
15年前にVBを1つ作った経験しかないのに、任されてしまって、とても焦ってます。
vb.netとoracledbを基本から勉強をしたいのですが、いい入門書があれば紹介して頂けないでしょうか。
どうぞよろしくお願いします。
0791デフォルトの名無しさん
垢版 |
2017/11/04(土) 03:19:08.61ID:SmrPt+dU
>>789
ちと古いが

VB.NETによるOracleアプリケーション開発技法 2005/4
山田 健一 (著)

俺も似た境遇でvb+oracleの開発をうん年前にするハメになったので
上記の本をアマで購入
でもトップが心変わりが激しいので開発は幸か不幸かお蔵入りw

で、odp.netをvb2013にインストールするんだけど
なぜかこれがなかなか入ってくれなくて手こずった記憶がある

上記の本(は古いから)よりネットのほうが情報あるんじゃね?
0792デフォルトの名無しさん
垢版 |
2017/11/04(土) 03:32:30.19ID:SmrPt+dU
すまん
こっちだったわ

Oracle+.NETプログラミング・バイブル―ODP.NETによる強力開発環境 単行本 ? 2005/9
日本オラクル (著)
0793デフォルトの名無しさん
垢版 |
2017/11/04(土) 06:39:10.69ID:ox8FLzne
>>791
>>792
ありがとうございます。
早速、買って読んでみます。
古い本でも何でも勉強するしかありません。


10年以上前に導入したVB.netとoracledbのシステムらしいのですが
勉強やテストするテスト環境もありません。
SEもプログラマもいなくなったので誰にも聞けません。
0794デフォルトの名無しさん
垢版 |
2017/11/04(土) 08:00:52.30ID:ox8FLzne
>>791
>>792
もう少し教えてください。

この本に付属しているCDROMには、勉強するための環境一式が含まれているのでしょうか?

またそれらはWindows10でも動くのでしょうか?
Windows7もあるのですが、ハードディスクが30GBしかないです。

本は中古しかなかったので到着には1週間近くかかるようです。
0795デフォルトの名無しさん
垢版 |
2017/11/04(土) 09:56:42.48ID:SmrPt+dU
>>794
CD-ROMは使わなかったな

環境はオラクルのホームページからdownloadしたよ(当時は要メール登録、無料)
なんかどれインスコしていいんか分からんかった記憶が…

環境はWindows8か8.1のVb2013
Windows10はわかりません

手さぐり状態の時に先にも書いたように鶴の一声でポシャったw
0796デフォルトの名無しさん
垢版 |
2017/11/06(月) 23:32:40.39ID:oqUq9JxF
前に勤めていたスーパーの社長に新店オープンの検討会議に出るように言われ、なんで俺のような水産部担当者風情が
そんなのに呼ばれるんだろうと思ったら社長から「お前、面接でプログラミングが趣味って言ってただろ?POSシステム作れや」と
言われ目が点になった。「いえ、自分のはあくまで趣味程度でして」と言ったら「なんだ?嫌なのかぁ」と言われ困惑した。
スーパーのPOSシステムってのは東芝TECのほぼ独占状態で新店オープンなんかだと表現は悪いが吹っ掛けてくるらしく、
営業が一日張り付いただけで本来の料金の他に日当、メシ代、泊まりになった場合はホテル代まで持つのが業界の習慣らしく
300坪程度の店を出すのにPOSレジシステムの構築で一千万近くかかるとか。
それを従業員にやらせれば浮くじゃねえか、と考えたんだろうな。俺は「魚屋がシステム作ったらおかしいでしょ社長!」と逃げ回って
難を逃れたが(逆立ちしても無理っス)
元IBMの営業やってた総務の課長がやらされる羽目になり、開店時には従業員一同社長とこの元IBMを呪ったよWW
開店と同時にレジのおばはん達から「どれもこれも登録されてないじゃん!このバカ!」と怒号が響き、大笑いしていたら
水産物でも加工品のバーコード付きのものが全て「登録無し」と出るとババアどもからレーザービームを浴びて笑ってられなくなった。
元IBMの課長に文句言ったら「あはは、排他処理だよね、そうか、思い出した」とか言って平然としてるし。

神経が図太くねえとシステム担当なんてやってられないんだろうな
0798デフォルトの名無しさん
垢版 |
2017/11/07(火) 09:40:10.59ID:yuq33prU
>>796
昔、POS関連の仕事してたことが有ったけど、出来が良ければそのPOSアプリを一般に売れば良いんじゃね。
実際、蕎麦屋が自分の為に作ったPOSアプリ売ってたことが有った。
他にも全然開発会社じゃない所が自分用に作ったPOSアプリの出来が良かったので売ってる事例を幾つか見たことがある。
0801デフォルトの名無しさん
垢版 |
2017/11/07(火) 11:17:26.29ID:H3DL339H
どう考えてもコピペにしか見えんけどググても出てこないから
本当に書いてるんだな。

神経図太いって、それこんな開業も入れない文章書く奴のことだろw

それと、一応昔からTECの他にNCRって会社が大手であったはず。
今は普通にNECや富士通もWindowsやLinuxベースのPOSレジ作ってる

それから、ソフトはその元IBMのオッサンが作るとしてハードはどうしたんだよ。
そのオッサンがハードから作ったのかw
作れる訳ねえだろw
デタラメ書くにも程がある。
0802デフォルトの名無しさん
垢版 |
2017/11/07(火) 14:52:58.50ID:X/d0WSR0
EPSONからプリンタとカスタマーディスプレイ買ってパソコンあれば出来る。
ついでに昔は制御方法も教えて貰えた。
他にもシャープとかカシオとかハードだけ買えた気がする。

あと、NCRは日本ではそれほど大手じゃなかった印象だな。
TEC、富士通、NEC、IBMの順ってのが俺の印象。
NCRはその次ぐらい。
あくまで俺の印象だし、今はどうなってるのか知らんけど。
0803デフォルトの名無しさん
垢版 |
2017/11/07(火) 16:58:21.02ID:BZzO8P37
cとJavaの開発経験があるけど、.NETで初めて開発刷ることになりました。だいたい3ヶ月やれば開発に参加できますか?
0805デフォルトの名無しさん
垢版 |
2017/11/07(火) 17:17:49.65ID:jMIQ1hyl
こんな答えようのない事を他人に尋ねてくる上に、文章の推敲も出来ないやつは
ハナっから開発メンバーに入れたくないな>>803
0808デフォルトの名無しさん
垢版 |
2017/11/07(火) 19:30:55.43ID:83qXUfR4
>>803
ドットネッターて>>804,805みたいな無能ばかりだから3ヶ月どころか3時間あればエースプログラマーになれると思うよ
0810デフォルトの名無しさん
垢版 |
2017/11/09(木) 06:00:15.14ID:goVr3jSD
質問失礼します。

現在、SQLserverからDataReaderにテーブルデータを取得してDataGridViewにテーブルデータを表示させているものがあります。
DataGridViewではなくExcelに出力させて欲しいという要望があり、対応しようとしているのですが、DataRederの内容を2次元配列に入れる事が出来ず困っています。

やりたい事
DataReaderの内容を2次元配列に格納し、指定したExcelファイルに一括で書き込み。

よろしくお願いします。
0812デフォルトの名無しさん
垢版 |
2017/11/09(木) 07:41:04.52ID:goVr3jSD
>>811
申し訳ありませんが、やり方を教えて下さい。
現状のコードは
datareader=command.ExecuteReader()
While datareader.read
‘データグリッドビューへ出力
End While
なのですが、AdapterとDatasetを作ってDataTableに格納して、Excel出力するイメージですか?
0815デフォルトの名無しさん
垢版 |
2017/11/09(木) 12:34:04.73ID:TttUt+BF
visualstudio2013、.net4.6で、ZipFileクラスは出るのにZipFileExtensionsクラスが出てこないんですが原因わかりませんかね?
参照にSystem.IO.Compression.FileSystem は追加してます。
0816デフォルトの名無しさん
垢版 |
2017/11/09(木) 21:18:04.53ID:LSaTNsoH
EditorBrowsable 属性で Never が指定されているからインテリセンスには出てこない
ZipFileExtensions と入力した後に . (ドット)を入力したら出てくるけど、拡張メソッド提供用のクラスなので、
dim archive as ZipArchive
archive.CreateEntryFromFile ( ... )
みたいに拡張メソッドとして使用したほうがいい
0817デフォルトの名無しさん
垢版 |
2017/11/10(金) 02:14:09.54ID:chLgv4PA
約10数年ぶりにこのスレに戻ってきた…
実に.NET1.1以来…

pingクラスを非同期「Ping.SendAsync」で使ってインターネットの速度低下を計測したくて
タイムアウトでイベントを拾いたいんだけど
タイムアウトの時間を20msにしてもタイムアウトイベントが起きない
イベントがcompleteで帰ってくるので21ms以上かかっても正常で戻ってくる

ちなみにdobonでサンプルを参考にした
タイムアウトイベント拾えたひといたらお知恵拝借したい
0819デフォルトの名無しさん
垢版 |
2017/11/10(金) 02:32:15.58ID:chLgv4PA
>>818
早速サンクスです
どうもこれが原因っぽいですね…
100ms超えるようだとログに残したかったので
毎度応答時間チェックしてみることにします

私事だけどWindows10で.NET1.1が動かないから
昔作った業務アプリを作り直さないといけない…
クリレポ動くんだろうか…
0820デフォルトの名無しさん
垢版 |
2017/11/10(金) 06:24:47.35ID:XWT/Y8xw
>>816
そういうことだったんですね
ありがとうございます
勉強になりました
0821デフォルトの名無しさん
垢版 |
2017/11/16(木) 18:56:57.18ID:WIFtnJuX
暗黙の型変換の挙動ってどこで制御しているんでしょうか

decimal d = 1
String s = "hoge "
s = s & d
この時のdって暗黙の型変換?がされていると思うのですが、
decimalの実装を見てもどこでこの挙動が制御されているのかわかりません
0822デフォルトの名無しさん
垢版 |
2017/11/16(木) 19:23:05.05ID:hlIaT2GT
Option Strict のこと?
ttps://msdn.microsoft.com/ja-jp/library/dd314347.aspx

あとはアンパサンドオペレーターあたりじゃない?
ttps://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/concatenation-operator
0823デフォルトの名無しさん
垢版 |
2017/11/16(木) 21:42:05.23ID:eDY5LW4B
雑魚プログラマなんだけどプロパティについて聞きたい
普通↓の@の形式だと思うんだけど
似たようなことしたいときにAとかBの形式より@が良いの?

@----------ここから
メンバ変数 _A

プロパティ A
 ’_Aをsetとgetする処理
@----------ここまで

A----------ここから
メンバ変数 _A

プロシージャ setA(引数B)
 ’_Aに引数Bを代入する処理

ファンクション getA
 ’_Aを返す処理
A----------ここまで

B----------ここから
プロパティ A

プロシージャ setA(引数B)
 ’Aに引数Bを代入する処理

ファンクション getA
 ’Aを返す処理
B----------ここまで
0824デフォルトの名無しさん
垢版 |
2017/11/16(木) 22:20:14.00ID:1WC2sRMg
プロパティを宣言すると、コンパイラは中間言語にgetterとsetterのメソッドを作る。だから意味ないです。普通の?の形式を使えばいい。
0828デフォルトの名無しさん
垢版 |
2017/11/17(金) 04:00:16.21ID:dFhF1IzE
>>821
暗黙の変換やってるのはコンパイラじゃね

>>827
定義するのを(定義)切るとか言うことがあるなぁ。変数切るは変数定義するってことだな
通じる人のほうが多い気がするけど、おっさんだけかもしれんw
語源はしらん
0829デフォルトの名無しさん
垢版 |
2017/11/17(金) 08:09:20.10ID:6X4yuC5e
おっさんのくせに宣言と定義の違いもわからんのかw
0831デフォルトの名無しさん
垢版 |
2017/11/17(金) 13:19:38.94ID:ENBrszFD
>>830
コンパイラのために行うのが宣言
リンカのために行うのが定義
分かれてない言語の場合は宣言と定義を一度に行う
0832デフォルトの名無しさん
垢版 |
2017/11/17(金) 14:27:37.69ID:kDLAXaYv
>リンカのために行うのが定義

ピンとこないな
アロケーションとは違くて?
0833デフォルトの名無しさん
垢版 |
2017/11/17(金) 19:58:40.60ID:66XG3dz2
>>822
ありがとうございます

アンパサンドオペレーターでできるかと思ったのですが、
Stringは継承できないしdecimalは構造体だしでダメっぽいです
諦めました
0834デフォルトの名無しさん
垢版 |
2017/11/17(金) 20:12:59.46ID:Gtzp+0S5
>>833
何言ってるのかよく分からんけど、.NETのオブジェクトはすべてToStringメソッドを持ってるので、

s &= d

s &= d.ToString

と同じ、これはC#でも同じ
0835デフォルトの名無しさん
垢版 |
2017/11/17(金) 22:15:39.64ID:66XG3dz2
&をオーバーロードして、
s &=d だけで s &= format(d, "0.00###")
みたいな挙動をさせるのが目的でした

今は確認できないのですが、ToStringをオーバーロードすれば出来るのか後ほど確認してみます
ありがとうございます
0836デフォルトの名無しさん
垢版 |
2017/11/17(金) 23:09:17.40ID:Gtzp+0S5
>>835
そんなこのできないと思うけどできたとしてもやらない方がいいと思うよ。
コードを読む立場になって考えてみ?

s &=d
が実は、
s &= format(d, "0.00###")
と同じ働きをするって普通は誰も思わないからそのコードを読んだ人(数か月語の書いた本人含む)
は絶対混乱するよ
0837デフォルトの名無しさん
垢版 |
2017/11/17(金) 23:36:41.99ID:66XG3dz2
よろしくない方法だというのは承知しつつ個人用なのでやってみるつもりでした
とはいえそもそも出来ないようで

Stringクラスが継承不可になってるのはそういうのまで考えられてるのかな
0838デフォルトの名無しさん
垢版 |
2017/11/18(土) 00:42:33.03ID:lwdaQlHz
それはdの方を独自クラス(構造体)にすれば良いんじゃね

継承出来ないようなら暗黙的に変換できる型を作れば良いんじゃね
0839デフォルトの名無しさん
垢版 |
2017/11/18(土) 01:55:39.49ID:WTUDdgFw
ちょっと文字数減らすために変な小細工しない方がいいと思うよ
こんなのせいぜいマジックストリングを無くす程度で十分でしょ

Const DecimalFormat as String = "0.00###"
....
s &= d.ToString(DecimalFormat)
0840デフォルトの名無しさん
垢版 |
2017/11/18(土) 02:33:59.73ID:lwdaQlHz
>>834
ちょっと気になったんだが、VB.NETの暗黙の型変換で呼ばれるのは、CType関数じゃないかと
暗黙の変換はStringに限るわけじゃないから、StringのときだけToStrring呼ぶような事はないんじゃね
CTypeは値に忠実に返すべきだが、ToStringは説明的な文字列付加するとかあり得る話だし
0842デフォルトの名無しさん
垢版 |
2017/11/18(土) 03:49:12.83ID:lwdaQlHz
勢いで>>838実装してみた
https://ideone.com/l0VRiT

ideoneってVB.NETの動作なんだか怪しいな
バージョンの新しい方はなんだか動かないし、古い方は自動実装プロパティ使えねぇ

一応言っとくけど、たんにDecimalの表示時にフォーマット指定がめんどくさいとか
その程度の理由でやるような事じゃないからな
じゃあ夜中に何やってんだ俺w
0843デフォルトの名無しさん
垢版 |
2017/11/18(土) 18:33:11.57ID:lwdaQlHz
>>841
VBの&は文字列連結専用の演算子だからな

実はVBでも+で文字列連結できる
その場合の数値加算か文字列連携かの判断と実行内容がC#と同じかはしらん

まあ、暗黙の変換は予期せぬ結果をまねきかねんから注意しろってことだな
0844デフォルトの名無しさん
垢版 |
2017/11/22(水) 04:28:34.76ID:abdxNTRR
退位の話題がニュースにあったんだけど
.NET1.1で新元号のアップデート来るかな…
0846デフォルトの名無しさん
垢版 |
2017/11/22(水) 10:26:48.94ID:2YVJuPMl
>>844
元号ってOSから引っ張ってきてるんじゃないかなぁ
OSが対応されればそれで行ける気がするけど、1.1動くOSってどこまでだっけ

未だに1.1のシステム抱えてる身としては他人事ではない
0849デフォルトの名無しさん
垢版 |
2017/11/22(水) 12:36:08.14ID:abdxNTRR
>>846
Windows10は1.1が動かない(とされてる)
業務ソフト納入してる客先でPC機器類納入してる別の会社が勝手にWindows10に変えようとして
慌てて一台リースを延期してもらった

>>847
2.0でビルドしたものが4.0で動いたというのが興味深い
0850デフォルトの名無しさん
垢版 |
2017/11/22(水) 16:11:09.79ID:2YVJuPMl
2.0以降はいちおう上位互換考慮されてるはずだからなぁ

OSもフレームワークもサポート切れだから、アプリもサポートできません
アプリバージョンアップしてください(もちろん有償で!)

こう言って通れば良いんだがなぁ
0851デフォルトの名無しさん
垢版 |
2017/11/23(木) 15:38:14.38ID:oTFRewqv
コマンドプロンプトで実行するプログラムで、C言語のsystem()関数と同様の関数ありますか。
Processクラスは別画面で起動します。同じ画面で実行したいもんで。
0853デフォルトの名無しさん
垢版 |
2017/12/15(金) 11:44:07.19ID:M7F98+kf
Class clsMai
Public Text As String = ""
Public size As Integer = 0
End Class
Dim lm As New List(Of clsMai)
このとき
dim sum as integer = 0
dim dt as new clsMai
dt.text = "aaa"
dt.size= 10
lm.add(dt)
lm.sum += dt.size
最初はListだったんだがSumが追加したい。こういう時にはlmはどういうように定義するのがいい?
0854デフォルトの名無しさん
垢版 |
2017/12/15(金) 11:55:48.67ID:M7F98+kf
Class clschkMai
Inherits List(Of clschkMaisu)
Public sum As Integer
End Class
これで
lm.add(dt)とやるだけで上記のlm.sum+=dt.sizeも行うようにしたいのだがやり方が分からない。
0855デフォルトの名無しさん
垢版 |
2017/12/15(金) 12:17:45.87ID:m9RnQpi/
>>854
List<T>を継承じゃなくて中に持つクラスを作るだけでしょ。
あるいはsumを頻繁に使うのでなければ、LINQのSumを使った方が簡単
それと今時変なハンガリアンやめなはれw

Claass MaiList
  Private _list as New List( Of Mai)
  Private _sum as Integer = 0;
  Public Sub Add(x As Mai)
    _list.Add(x)
    _sum +=x.size
  End Sub
  Public Property Sum as Integer
    Get
      return _sum
    End Get
  End Property
End Class
0856デフォルトの名無しさん
垢版 |
2017/12/15(金) 12:57:12.72ID:M7F98+kf
おお!! そういうことか。ありがとう。 addがOverridesできないものかと悩んでた。
clsXXXって書き方は駄目なのか? 何か不都合があるんだろうか?
0857デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:11:41.44ID:M7F98+kf
アッ、駄目だ。継承しないとlm(3).textのようにインデクサでのアクセスができない。
0858デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:17:15.59ID:m9RnQpi/
>>857
インデクサ(VBは既定のプロパティと言うと思うけど)も自分で書けばいいんだよそれはwww
簡単でしょw
何でこの程度のことを思いつかないのw
0859デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:39:16.97ID:M7F98+kf
それはできないでしょ。 lm.lst(i).text みたいになってしまうから。これは面白くない。
lm(i).textにしたいわけだ。
0860デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:44:55.16ID:M7F98+kf
アッ、List(of ss)ができるのだからできるのか? できる筈だよな。調べてみる。
0861デフォルトの名無しさん
垢版 |
2017/12/15(金) 13:47:03.03ID:M7F98+kf
解った!! ありがとう。
0862デフォルトの名無しさん
垢版 |
2017/12/20(水) 21:39:40.25ID:AHvtW6qd
ここで聞くのが適切かわからなかったんですが、ご存知の方がおられましたらお教え下さい。

症状
win10のアップデート1703へ更新した直後から、datagridview内への入力時にIMEがオンになっている場合に、最初の入力文字が2つ入力される。バックスペースで消した後は、通常通り入力できる。IMEオフ時の半角は通常通り入力可能。
例えば「は」と入力しようとした場合は「hha」と下線付きで入力されてしまいます。

開発環境では再現しないのですが、何が考えられるでしょうか?
明日、IMEのプロパティのなかの直接入力をしないのチェックを外すのを試して頂く予定ですが、他に何かこうじられる手はありませんでしょうか?
0865デフォルトの名無しさん
垢版 |
2017/12/22(金) 20:50:18.27ID:8bp8uCql
csvから以下の様なデータをよみこんでDataGridViewに、キーが5件以上のレコードだけ表示したいのですが可能でしょうか?

キー,品名,重量,形状
A001,aaa,111,丸
B001,bbb,222,バツ

csvは5000レコード程になります。
キーは700種類くらいです。
宜しくお願いします。
0868デフォルトの名無しさん
垢版 |
2017/12/23(土) 08:21:17.89ID:3noaHCAM
何が分からないんだ?
 CSVファイルを読み込みか?
 GroupByの使い方か?
 5件以上の抽出方法か?
 複数Groupのフラット化か?
 DataSourceプロパティか?
0870デフォルトの名無しさん
垢版 |
2017/12/23(土) 09:20:56.16ID:Px5uJlt7
同時には無理
まずはCSVから全データを読み込み
そのデータをLinqかなんかで絞り込む
この2つの手順が必要
0872デフォルトの名無しさん
垢版 |
2017/12/23(土) 18:30:01.78ID:De0LpaYa
>>870
とりあえずcsvをデータテーブルに入れデータグリッドビューに表示は出来るのですが、Linqが難しく書けません。
教えていただけませんか?

5件以下のレコードだけ表示の間違いでした。
0873デフォルトの名無しさん
垢版 |
2017/12/24(日) 07:37:12.94ID:hpg5RGLX
「GROUP BY キー」して、「HAVING 5件以下」して、「SelectMany」するだけだろ?
どこが難しいんだ?
0874デフォルトの名無しさん
垢版 |
2017/12/24(日) 08:51:11.82ID:26rA4GtJ
結果的に同じになればいいんだったら処理は遅くてもやり方はいろいろあると思う。
0875デフォルトの名無しさん
垢版 |
2017/12/24(日) 12:14:59.40ID:qNqolCPw
>>873
linqで抽出した後に、データグリッドビューに表示が出来なくて何が悪いのか理解できず諦めました。
結局csvに対してsql文を書いて873さんの言う通りGroup ByとHavingで実装いたしました。
お騒がせしてしまい、すみませんでした。
0876デフォルトの名無しさん
垢版 |
2018/01/08(月) 08:29:11.48ID:UszQx08Q
datagridviewで集計処理をやりたいです。
具体的には、項目毎の小計行をdatagridviewへ追加して、最終行に総計を出したいと思っています。

Forループでやってみたのですが、小計行を追加すると最終行が変わってしまい最終行まで処理を行えません。
Doループでやってみようと考えたのですが、最終行判定方法が分かりません。

datagridviewで上記の様な集計を行う方法を教えてください。
0877デフォルトの名無しさん
垢版 |
2018/01/08(月) 17:50:23.27ID:4DzBbICP
データを行追加しながら小計や総計を出せば最終行を気にする必要はないと思いますが
0878デフォルトの名無しさん
垢版 |
2018/01/08(月) 19:38:43.65ID:UszQx08Q
>>877
datatableをバインドしているのですが、datatableから1レコードづつ追加して小計行を入れる感じでしょうか?
0879デフォルトの名無しさん
垢版 |
2018/01/21(日) 17:49:05.41ID:xVt4kZ2y
<例1>
dim a As decimal = "0.12340000"

Console.WriteLine (a)
⇒0.12340000

<例2>
dim a As decimal = 0.12340000
Console.WriteLine (a)
⇒0.1234

<理想>
dim a As decimal = "0.12340000"

Console.WriteLine (a)
⇒0.1234

理想のように出力させる方法ってないでしょうか
0881デフォルトの名無しさん
垢版 |
2018/01/21(日) 19:42:04.55ID:xVt4kZ2y
すいません、書き方が悪かったです。

出力させると言うよりは、
dim a As decimal = "0.12340000"
の宣言後にa=0.1234と内部的に認識?させたいです。
文字列変換時のformatは使いたくありません

decimal等に一度キャストして再度decimalに戻せば消えるんでしょうか
0882デフォルトの名無しさん
垢版 |
2018/01/21(日) 22:12:27.71ID:PGD2ovYS
むしろ後続のゼロを保持するDecimalで勝手に後ろの0を消す
VBのエディタだかコンパイラだかに問題があるけど

Decimal.Parse(a.ToString("G29"))でもすれば
0883デフォルトの名無しさん
垢版 |
2018/01/21(日) 22:16:38.18ID:8mbnCibk
何が言いたいのか何がしたいのかさっぱりわからんけど、
そもそも文字列リテラルでdecimalを初期化するのが間違ってる
0885デフォルトの名無しさん
垢版 |
2018/01/22(月) 20:18:35.99ID:AesY7cS1
Decimalって後続ゼロを保持してるとかいう仕様なんだが
実際の小数点以下桁数については、取得するメソッドとかすら用意されてないぽいよな
なんでそんな片手落ちな仕様なんだろ
0886デフォルトの名無しさん
垢版 |
2018/01/22(月) 21:11:58.46ID:BhdsaoHH
>>885
これで取得できるみたい

Dim a = Decimal.Parse("0.12340000")
Dim len = Decimal.GetBits(a)(3) >> 16 And &HF
Console.WriteLine(len) ' 8
0887デフォルトの名無しさん
垢版 |
2018/01/23(火) 21:18:21.91ID:NPbHldMa
関係あるようでないけどsqlserverのnumeric型に1とかを格納して1.000000になるのって防げないよね?
Decimalに代入して扱うとずっとゼロが残るもんで
ToString("G29")を全部に書き加えたんだけど、もっと頭の良い方法あったなら死にたい
0888デフォルトの名無しさん
垢版 |
2018/01/23(火) 21:52:20.10ID:8AbQh9Sj
(1) 必要もないのにDecimalなんか使わない

(2) 必要な精度に合わせて丸めることを覚える(実数型っていうのはそうやって使う)
0890デフォルトの名無しさん
垢版 |
2018/01/24(水) 01:20:12.88ID:FR3L8fOM
>>887
SQL ServerのNumeric型は指定精度の固定小数点だし、そんなことになるか?
どうやって取得してるのか、簡単なコードあっぷしてくれ
0892デフォルトの名無しさん
垢版 |
2018/01/26(金) 00:31:48.81ID:xgA/ZrEm
>>890
datareader経由で普通に取得してた記憶がある
テーブルに格納した時点でnumericなら1.000000~みたいになるし、それがむしろ正常なのでは?
0893デフォルトの名無しさん
垢版 |
2018/01/27(土) 10:54:23.24ID:blSbszVf
Dim pic As PictureBox = New PictureBox
pic.Width = PictureBox3.Width
pic.Height = PictureBox3.Height
pic.Top = PictureBox3.Top
pic.Left = PictureBox3.Left
pic.BackColor = cs.GroupColor
こんな感じでインスタンスを作ってその位置と外形だけ複製したいのだがなんかよい方法ない?
0895デフォルトの名無しさん
垢版 |
2018/01/27(土) 15:15:21.70ID:blSbszVf
だめだ。 もっとスマートな方法はある。何か考えろ。
デリゲート使って簡単にできんか?
それとか、、、コピーモードもあるはず
0896デフォルトの名無しさん
垢版 |
2018/01/27(土) 15:42:24.58ID:zlVwMk+1
そんな汎用的じゃない処理がライブラリにあるわけないでしょ
世の中自分を中心に回ってるとか思ってる?
0897デフォルトの名無しさん
垢版 |
2018/01/27(土) 16:36:34.58ID:blSbszVf
PictureBOxにコピーコンストラクタを追加する。
dim pic as picturebox = new ExPictureBox(PictureBox3)
みたいなことはできんか?
0898デフォルトの名無しさん
垢版 |
2018/01/27(土) 16:56:15.88ID:blSbszVf
Class exPictureBox
Inherits PictureBox
Sub New(pp As exPictureBox)
MyClass.Width = pp.Width
MyClass.Height = pp.Height
MyClass.Top = pp.Top
MyClass.Left = pp.Left
End Sub
End Class
これをPictureBoxにキャストはできんのかなー
0899デフォルトの名無しさん
垢版 |
2018/01/27(土) 17:06:40.08ID:blSbszVf
「継承のルールによると、派生オブジェクトは常に基本クラスの変数に代入できると規定
されています。」

できる筈だが、エラーになるな。
0900デフォルトの名無しさん
垢版 |
2018/01/27(土) 17:36:25.08ID:zlVwMk+1
>>899
マジボケ?
コンストラクタの引数の型はPictureBoxにしないとダメなんじゃないの?

それから、そんなつまらん処理のためにいちいち新しい型を作るとか無駄。
せいぜい拡張メソッドでいいでしょ

Public Module Exetnsions
  <Extension()> _
  Public Function GetMimic(p as PictureBox) as PictureBox
    ....
  End Function
End Module
0901デフォルトの名無しさん
垢版 |
2018/01/27(土) 18:02:03.55ID:blSbszVf
でけたーーー。サンクス。w
0902デフォルトの名無しさん
垢版 |
2018/01/27(土) 18:17:58.54ID:blSbszVf
IIf(count Mod 2, leftp = GroupBox4.Left, leftp = GroupBox3.Left:top += ctl.Height

これってなにか良い方法ない?
0903デフォルトの名無しさん
垢版 |
2018/01/27(土) 18:50:33.41ID:zlVwMk+1
そんなものない。だから、世の中君を中心に回ってない。
ついでに言うと、それもダメ。もう全然ダメ
それ意図した通り動かないはずだからやってみ
0904デフォルトの名無しさん
垢版 |
2018/01/27(土) 22:38:38.55ID:blSbszVf
ある。ぜったいにある。考えてみ。
0909デフォルトの名無しさん
垢版 |
2018/02/12(月) 14:10:49.62ID:pRrQ7Rw0
なんか廃れてるけど質問ここでいいのかな

初心者向けの本買って、
その通りにサンプルアプリ作ってるんですけど、
TextBoxコントロール入れて、fontプロパティをメイリオの16pt、
Sizeプロパティを55,55にしろってのがあるんだけど、
その通りにするとSizeが55.39に勝手になってしまって高さが55になりません

多分フォントサイズに自動的に高さを合わせてるから39に勝手になってるんだろうけど、
どうすれば高さも55になりますか?
0910デフォルトの名無しさん
垢版 |
2018/02/12(月) 18:44:24.45ID:EjSCFOs0
>>909
テキストボックスの右上の方にちっちゃい右向きの三角の記号あって▶そこクリックでMultiLineっていうの出てこない?
もしくはテキストボックスのプロパティからMultiLineをtrueにする
0911最近VB2017使い始めました
垢版 |
2018/03/04(日) 10:59:53.34ID:/0SDFJ7N
VB2010使ってて最近2017使い始めたのですが、ショートカットキーでCTRL+↑してもプロシジャーの先頭に移動しません。
どなたか教えてくださいませ。
0916デフォルトの名無しさん
垢版 |
2018/03/11(日) 15:20:09.39ID:U/Qy0RW3
VB初心者です。

下記のコードでアプリケーション起動時に
1.データテーブルを作成
2.CSVファイルからデータテーブルへデータを読み込み
3.データテーブルのデータをデータグリッドビューへ表示
としています。ここまでは完成しています。

アプリケーション上にデータの追加ボタンbtn_add_Clickを作成してアプリケーション上からデータをリストへ追加していきたいです。
DataTableにデータを追加して、そのデータをデータグリッドビューへ表示したいのですがどのようなコードにすればいいでしょうか?
ご教示お願い致します。
入力フォームはすでに作っていて、テキストボックスA、B、C、Dとその入力されたデータをもとに内容が変わるラベルE、Dがあります。

長文すぎて書き込み拒否されるのでコードはリンク先で失礼します。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13187386258
0917デフォルトの名無しさん
垢版 |
2018/03/11(日) 18:11:33.14ID:GnsUw/H6
DataSourceのDataTableに追加するコードをButtonのクリックイベントに書けばいい。
DataGridViewにバインドしているから反映される。
コードからバインドされたDataGridViewには追加出来ないからSourceに追加する。
0918デフォルトの名無しさん
垢版 |
2018/03/11(日) 20:33:05.73ID:U/Qy0RW3
>>917
回答ありがとうございます。
いろいろ調べてDataTableに追加しようとしましたがうまくできず
DataTableと別にDataTable2をつくってDataTableと結合→DataGridViewに表示しようとしたのですがそれもでうまくできませんでした。

DataTableに追加するか
DataTable2を作成、DataTableとDataTable2を結合
のどちらかの例文を教えて頂けないでしょうか?
よろしくお願いいたします。
0919デフォルトの名無しさん
垢版 |
2018/03/11(日) 20:49:13.97ID:AaTTZdyn
DGVしゃ足りないんだからそれこそエクセル(クローン)しか無いだろ
でも.NetじゃOLE出来ないしなー
(表示だけならWebBrowserで出来るみたいだけど)
0920デフォルトの名無しさん
垢版 |
2018/03/11(日) 21:35:19.22ID:GnsUw/H6
>>918
Dim tbl As New DataTable(“table”)
Dim row As DataRow

'1列目
row = tbl.NewRow
row("Item1") = "A1"
row("Item2") = "A2"
row("Item3") = "A3"
tbl.Rows.Add(row)

'2列目
row = tbl.NewRow
row("Item1") = "B1"
row("Item2") = "B2"
row("Item3") = "B3"
tbl.Rows.Add(row)

'途中挿入
row = tbl.NewRow
row("Item1") = "C1"
row("Item2") = "C2"
row("Item3") = "C3"
tbl.Rows.InsertAt(row, 1)

みたいな感じで出来ない?
0921デフォルトの名無しさん
垢版 |
2018/03/12(月) 06:35:19.03ID:Lx3T/3bw
>>920
参考にして少し弄ったらできました。
ありがとうございます。

新たな壁に直面して
DataTableをCSVファイルで保存したいのですがうまくいきません。
ご教示願います。
0923デフォルトの名無しさん
垢版 |
2018/03/12(月) 10:04:37.18ID:Lx3T/3bw
>>922
そのコードはどうすればボタンクリックイベントにできますか?
0924デフォルトの名無しさん
垢版 |
2018/03/12(月) 12:29:50.31ID:GSF7SLW7
クリックイベントで、ConvertDataTableToCsvにデータテーブルとcsvのパスとヘッダーを書き込むならTrueを渡して呼び出すだけ。
0925デフォルトの名無しさん
垢版 |
2018/03/12(月) 13:35:16.64ID:Lx3T/3bw
>>924

パラメーターdt ,svPath,writeHeaderに対して引数が指定されていませんとエラーがでるのですがどうすればいいですか?



Private Sub btn_hozon_Click(sender As Object, e As EventArgs) Handles btn_hozon.Click

ConvertDataTableToCsv

End Sub
0926デフォルトの名無しさん
垢版 |
2018/03/12(月) 17:50:12.84ID:GSF7SLW7
>>925
ConvertDataTableToCsv(DataTable(“table”),”C:\test.csv”,True)
みたいにして引数を渡して呼び出せばいいです。
ファイル名やデータテーブル名などは、自分の環境に合わせて下さい。
0927デフォルトの名無しさん
垢版 |
2018/03/12(月) 18:03:33.00ID:Lx3T/3bw
>>926
ありがとうございます。
一応保存には成功しました。

しかし、一番最期の行が消えてしまいます(CSVに保存されていない)

どうすればいいですか?
0930デフォルトの名無しさん
垢版 |
2018/03/16(金) 14:29:21.01ID:Eci7cEig
DataGridView上の特定の文字列のセルの文字色を変更したいですがやり方がわかりません。

例えば5列目1行目と5行目にAAAがあってこれを赤色、5列目3行目と4行目にBBBがあってこれを青色、といった感じで文字色変更したいです。

下記のコードでセルを選んで文字色を変えることには成功しましたがここからどのようにすれば、AAAやBBBといった文字列のセルの文字色を変更できるかがわかりません。

Me.database.Item(5, 1).Style.ForeColor = Color.Red
0933デフォルトの名無しさん
垢版 |
2018/03/17(土) 02:17:25.38ID:kilRADxn
>>解決できました
回答ありがとうございます。
0934デフォルトの名無しさん
垢版 |
2018/03/22(木) 21:02:32.68ID:WmkzQNen
すいません、ここが最適だと思ったので教えてください!!

Spread(グレープシティ社)のWindows Formのバージョン8で
右端に列を追加するにはどうすればいいですか?
右端で右クリックして列を追加すると右から2番目に追加されてしまって困っています!
0938デフォルトの名無しさん
垢版 |
2018/04/22(日) 21:23:49.07ID:PsQCMKRd
餅屋とかそもそもないやん?
0939デフォルトの名無しさん
垢版 |
2018/04/25(水) 00:37:59.07ID:12saxXB9
SpreadのことはGrapeCityに、VB.NETのことはマイクロソフトに聞くべし

だったら何でこのスレあるの?
0942デフォルトの名無しさん
垢版 |
2018/04/26(木) 20:41:50.04ID:fOtvyrSj
グレープシティっていいの?
あとエクセルなんとかってとこのが定番化だった気がする
0943デフォルトの名無しさん
垢版 |
2018/04/27(金) 08:07:08.11ID:NW63AoOa
ActiveX(〜VB6)までは世話になったけど、.Net になってからGrapeCity には関わるまいと誓った。
0944デフォルトの名無しさん
垢版 |
2018/04/29(日) 22:50:27.19ID:RMQStnhd
質問させてください、2つの波形の位相差(シーター)を求めたいです。

chartコントロールに位相差の違う2つの波形を表示させてその位相差を測定したい。
例)https://blog-imgs-86-origin.fc2.com/m/0/k/m0kichiazuma416/066_01.png

最終的にはこの様な物を作りたい。
http://siesta.la.coocan.jp/zk/PwrChk2/pwrchk2.html
この作例だと、電流値と電圧値をchartコントロールに入れて、
chartコントロールに演算させて力率を出しているのだと思うのですが。
どうなんでしょうか。
0945デフォルトの名無しさん
垢版 |
2018/04/29(日) 23:49:54.01ID:eBkQOB0i
>>944
とりあえずchartコントロールに何かを計算させようって発想は根本的に間違ってるw
エクセルじゃないんだからwww
chartが担うのは表示機能だけw

当たり前だけど位相差は測定値の時系列から自分で計算するコードを書くしかない。
ひょっとしてそもそも位相差が何を意味するか分かってないんじゃないの?
0947デフォルトの名無しさん
垢版 |
2018/05/03(木) 21:02:29.98ID:zBmU1+Vb
LISTを使いたい場合、何かImportしないとダメでしたっけ?
Dim a As New List
ってところで'List' is not declaredってエラーが出る
0948デフォルトの名無しさん
垢版 |
2018/05/03(木) 22:34:02.54ID:MXsl4Tgb
(Of String)とか要るんじゃないの
0950デフォルトの名無しさん
垢版 |
2018/05/07(月) 18:26:29.73ID:vYSga6Mw
VBは ; と { } がいらない所がほんと好き
JavaC#で } が続くのを見るとストレスがマッハ
なので明日からパイソン使います
0955デフォルトの名無しさん
垢版 |
2018/05/09(水) 20:02:36.56ID:lGFwiLgr
>>951
今は老眼だが、Fortran77をカード穿孔機でプログラムを書いて読ませ込んでいた学生(高専)時代、
l(小文字のエル)、I(大文字のアイ)、1(数字のいち)が見分けづらく、デバッグに難儀した思い出。
0957デフォルトの名無しさん
垢版 |
2018/05/09(水) 20:13:31.15ID:EL7F/5Xk
教えて欲しいのですが
google chromeで任意のページを開いて2分後に閉じるってどうすれば良いですか?
0959デフォルトの名無しさん
垢版 |
2018/05/09(水) 20:23:21.29ID:s9132bVL
両方紙テープだったがtosbacは高速光紙テープリーダーだった
なのでテープ詰まり起こすとほぼ切れたw
0960デフォルトの名無しさん
垢版 |
2018/05/09(水) 21:26:20.84ID:lGFwiLgr
>>958
HITAC 8000シリーズのどれかだったと記憶。(HITAC10は完全に置物状態)
3年生のとき、PC実習室が出来てEPSON PC-286が導入され、HITACは教師の研究専用になったけど。

>>956
C言語で止まっているポンコツには、VBAもえっちらおっちら。(;_;)
0961デフォルトの名無しさん
垢版 |
2018/05/09(水) 22:17:16.07ID:WSvLZm4M
パンチカードとか一回やってみてーよなあ
博物館で体験コーナーとかそういうんじゃなくて
ガチの仕事で当時の環境まで再現して・・・

957はVB.NET 別プロセス 終了とかでググれ
0965デフォルトの名無しさん
垢版 |
2018/05/17(木) 06:44:27.13ID:FVYoS4b5
VSは無料バージョンがあるので勝負は決まったな
0968デフォルトの名無しさん
垢版 |
2018/05/19(土) 23:20:39.96ID:W+KbvEz/
VB6で

Do
 If 条件
  GoTo ラベルA
 Else
  Exit Do
 End If
 処理A
ラベルA
 処理B
Loop

という事をしていた場合
VB.NETで作り直す際はラベル使わずにやるなら
皆さんも処理Bの部分メソッド化してますか?
それとも何か別のやり方とかやってますか?
0969デフォルトの名無しさん
垢版 |
2018/05/19(土) 23:32:27.28ID:oft4Cqjn
>>968
何この糞意味不明なコード
これ、「処理A 」の部分は絶対に通らないけど...

つーかこれ、

While 条件
  処理B
End While

これと何が違うんだ?
0970デフォルトの名無しさん
垢版 |
2018/05/19(土) 23:38:09.50ID:RoboUWmL
>>969
バカはしゃべるな
0971デフォルトの名無しさん
垢版 |
2018/05/20(日) 00:33:14.34ID:64mTg3CR
ElseでExit Do だから、GOTOで飛ぶかループ抜けるかだが

まあほんとにこんなロジックなら全体的に見直すけど
0974デフォルトの名無しさん
垢版 |
2018/05/20(日) 17:04:28.89ID:rZi+LkKU
お前も含めて全員馬鹿
0979デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:09:57.09ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

E3IKN
0983デフォルトの名無しさん
垢版 |
2018/05/26(土) 02:34:32.84ID:j5LT+unl
無理矢理BASIC文法に押し込めて無理が生じてるからだろ
Handlesとかラムダ式の書き方とか苦し紛れ過ぎる
0985デフォルトの名無しさん
垢版 |
2018/05/26(土) 09:56:41.12ID:KEMwsz4A
全部Dimから始まるのと型を明示しなくてもなんとかなるのが気持ち悪い
インスタンス生成時に引数なしなら()省略できるのもなんか嫌
0987デフォルトの名無しさん
垢版 |
2018/05/26(土) 21:38:25.81ID:oc/+PHrW
>>982
なんでって結局マイクロソフトがそっちに力(膨大な資金)を入れたからかな
C#はオブジェクト指向的に良くできてる上に
delphiの開発リーダーを引き抜いて開発手法をまんま移植させた

マイクロソフトもBASICに思い入れがあったからか
まだC#ついでに現代的な言語としてメンテしてくれてるだけ超絶ラッキーよ
0988デフォルトの名無しさん
垢版 |
2018/05/26(土) 21:51:58.80ID:Lty78diJ
思い入れがなかったからウインドウズの発展を陰から表から支え続けてきた無数のVB6プログラマーを切り捨てたんやぞ
0989デフォルトの名無しさん
垢版 |
2018/05/26(土) 21:55:49.37ID:oc/+PHrW
そういえばVBを調べるためにC#の記事を読んでいるうちに
C#もいつの間にか書けるようになってるんだよなぁ
それでも慣れでVBで書くほうが早いから使ってるけど

残念ながら世の中的にBASIC系は時代遅れってイメージで使う人が減ってる
Excelのマクロもpythonにするって噂があるし
0991デフォルトの名無しさん
垢版 |
2018/05/26(土) 22:03:58.56ID:oc/+PHrW
言葉足らず
切り捨ててまでいないのは思い入れがあるからだろ
そうでなかったら、VB自体切られてる
0992デフォルトの名無しさん
垢版 |
2018/05/26(土) 23:04:53.95ID:/y7LUvmr
たんに利用者がいてメリットがからサポートしてるだけで
思い入れとかそんな心情的なものじゃないだろうけどな
0993デフォルトの名無しさん
垢版 |
2018/05/27(日) 00:21:42.78ID:JW/OjEsa
>>990
表面的にはそう見えるが実情は単なるシェア防衛の為の政略やぞ
当時のMSにとってはJavaが最大の脅威やったんや
そのWrite Onece, Run AnywareというポリシーからMSのシェアを守るためだけの
実に政治的な理由によって生みだされたのがCLIや
そしてCLIに全力をそそぎたいMSはVB6をあっさり切り捨てた
とはいえVB6のユーザー企業にそっぽを向かれては本末転倒やから
苦肉の策としてVB.NETを生みだしたという訳や
MSにとってVB.NETは今すぐにでも捨てたいお荷物以外の何物でもないで
0995デフォルトの名無しさん
垢版 |
2018/05/27(日) 00:55:28.21ID:oK9lkiW8
他言語出身なんだが使いにくい印象しかない
初心者にはわかりやすいのか?
0996デフォルトの名無しさん
垢版 |
2018/05/27(日) 02:20:59.48ID:O0PQqjQm
自分はVB6er→C#erだが
正直C#のほうがBASIC(の思想)に近い気がするからな
ユーザーが真に求めていたものはVB6の文法のまま
CLIで動くものだったよね
専業でない人とか素養のない人向けには
VBAが限度だった。
C++もそうだがもはや言語設計者のオナニーになってきてるからな
その中でもC#は現実解とのいいバランスをとってるほうだが
0997デフォルトの名無しさん
垢版 |
2018/05/27(日) 12:11:05.40ID:0twgqEmM
事務員だからVBAとPHPしかわからんわ
c♯やっても結局冗長なコード書くことになるので、VB.netでいいや
0999デフォルトの名無しさん
垢版 |
2018/05/27(日) 12:31:48.48ID:0twgqEmM
みなさんは簿記二級以上や、中小企業診断士や会計士持ってますか?
知らないとSEの指示に従ってコーディングするだけの時給いくらの人になっちゃいますよね?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 711日 3時間 13分 53秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況