X



VB.NET質問スレ(Part44)
0027デフォルトの名無しさん
垢版 |
2018/06/19(火) 16:45:27.80ID:JtYoq5Ul
>>22 >>25-26
そんなバグあったの?
C# だけど、15分おき、特に問題なく Elapsed 起きてるけど。

普通と違うとしたら、毎回 Interval を設定し直してるくらい。
0028デフォルトの名無しさん
垢版 |
2018/07/04(水) 22:30:10.70ID:gFgZc5FG
XOF
0030デフォルトの名無しさん
垢版 |
2018/07/14(土) 14:20:34.11ID:P6Xcr6ek
問題
数値型1,2,3,・・・を文字列型0001,0002,0003,・・・にするプログラミングを書きなさい
0033デフォルトの名無しさん
垢版 |
2018/07/14(土) 15:56:41.68ID:FPULV7Dx
>>31でもいいけど、リーディングゼロ付けたい場合は普通は"D4"みたいにする
つーか何が書きなさいだよアホかw
0035デフォルトの名無しさん
垢版 |
2018/07/14(土) 16:04:36.45ID:P6Xcr6ek
ちなみに
Dim i as Integer
Dim S as Strong
i=任意の数字
S =""
S = "0000" & i
S = VBの関数Leftで左から4文字までを取り出し
すると000iになる
が用意した正解
おまえら小学生からやり直せ
0037デフォルトの名無しさん
垢版 |
2018/07/15(日) 14:52:08.42ID:8MWyOg1O
>>>30 の出題の数値型の説明がいい加減だし、百歩譲って1,2,3...とあるから正の整数だとしても
>>35 は自分でIntegerと後出しで規定しながら9999を越えると対応していない間抜けな回答
>>31でも>>33でもその点はクリアしている

しかもよく見りゃ右も左も分かってない出題者の頭の悪さだけが際立つ結果に
そもそも今の時代まさかright,left,midもつかわんだろ
0038デフォルトの名無しさん
垢版 |
2018/07/19(木) 17:48:31.34ID:BhSp1+Me
Constで物理名定義して、論理名をXMLコメントか属性で取得したかったが、どうもできない。
なんかいいアイデアあったら教えて
0039デフォルトの名無しさん
垢版 |
2018/07/19(木) 18:14:54.96ID:5QYEQzqE
>>38
プロパティとかの名前のこと?
普通にカスタム属性でできるよ
リフレクションで取れる
0041デフォルトの名無しさん
垢版 |
2018/08/03(金) 14:25:57.89ID:u92XsOcz
コンソールプログラミングでは
Application.DoEventsが使えませんが
代わりに処理中の入力を受け付けるようなメソッドはないでしょうか?

時間がかかる処理をESCキーでキャンセルするような処理を
コンソールプログラムで書きたいと思っています
0043デフォルトの名無しさん
垢版 |
2018/08/17(金) 00:18:15.23ID:KHui9/an
PDFファイルを通常使うプリンタに印刷するのにはどげんしたら良かですか?

外部からファイル名をフルパスで渡せば印刷してくれるようなのがいいのですがヒント下さい。

Acrobatのコマンドラインオプションは保証されてないし、自作でexeを作りたいのです。
0047デフォルトの名無しさん
垢版 |
2018/08/22(水) 20:26:55.43ID:CRGAAmOc
private public Static の違いがわからない俺様が通りますよ。
グローバルだと意図しないところで変な値が入っちゃう可能性があるから使うなとじっちゃんが言ってた。
0048デフォルトの名無しさん
垢版 |
2018/09/15(土) 12:38:17.24ID:f69ONJY6
エンドユーザーの都合で次の開発案件の開発言語がVB.Netになったオレを慰めてください。
0049デフォルトの名無しさん
垢版 |
2018/09/15(土) 12:57:12.64ID:wC5+IMEd
>>48
>>エンドユーザーの都合で
金出すヤツの意見が通るのが実情
VB6までの資産有る所はC#にはしない傾向に有る
残念なのは日本でVB.NETに関する導入事例や書籍など情報自体が少ない
海外が多いくらいだ
ネット上で海外から情報取得して生かすしか方法が無い
日本マイクロソフトもC#重視したから尚更
0051デフォルトの名無しさん
垢版 |
2018/09/15(土) 18:21:04.91ID:V2kvEVN2
C#に比べて
ラムダとかエクステンションの書き方が
めっちゃわかりにくい
0052デフォルトの名無しさん
垢版 |
2018/09/16(日) 11:47:37.40ID:o5IUt/R9
VB.NETでシステム構築して今更、他の言語を検討してるとか言ってる所も有る
VB.NETのままでも安く運用する方法考えれば良いのだが、システム更新に責任持ちたく無いヤツ居る職場だと永遠にシステム刷新出来ない罠
0053デフォルトの名無しさん
垢版 |
2018/09/16(日) 14:03:16.46ID:o5IUt/R9
VB+Oracleで構築しちゃうと
ライセンスでOracleが足かせになる場合出るので、Oracle→MariaDBやPostgreSQLにする方が安く出来る
0055デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:01:46.72ID:tW/Yy4gZ
VB.NET(〜VS2013)の細かい仕様の質問なんだけど、
通常のFormにPictureBoxを載せて、PictureBoxのデバイスコンテキストを取ってきて自前で低レベルAPIで描画してるんだけど、
最初にALTキーを押した時にPictureBoxがチラついて自前の描画が消えてしまう場合がある。
このちらつきは、そのアプリの起動後、ALTキーを押した時に必ず1回だけ発生して、場合によって自前描画もちらつきとともに消える模様。
これを抑止することって出来ないのかな
FormのOnPaint、OnPaintBackgroundを空メソッドにオーバーライドしても効き目なかった
0056デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:40:38.65ID:kFAOP0FY
一般的な問題と思えんから再現可能なコードを示さないと
誰も何も言えないと思う
0057デフォルトの名無しさん
垢版 |
2018/09/22(土) 15:52:30.06ID:tW/Yy4gZ
え?そんなにやってることが特殊かな?
扱うデータが大きくてその視覚化を自前ネイティブに任せるとか、よくやる方法だと思ってた
聞く場所を間違えたかな・・・
0059デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:22:56.12ID:kFAOP0FY
>>57
よく分からん思考回路
どこで聞いても同じたお思うよ。
それで答えが返ってきたらその人はエスパーだ
エスパーなんかいないけどね
0060デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:39:18.15ID:tW/Yy4gZ
>>58
ありがとう
FormのKeyUpとKeyDownとKeyPressイベントで、e.Handled = Trueにしてるんだけど、それでもちらつく
またFormのKeyUpイベントの後に自前描画し直してるんだけど、それでも自前描画が消えてしまうことがある
こういうのがあるから.NETは信頼できないんだよな
0061デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:42:39.47ID:kFAOP0FY
システムのバグだー!!!
タメグラマの典型的な思考回路だねw

賭けてもいいよ絶対にあんたの書いたコードのバグだからw
0063デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:52:51.71ID:kFAOP0FY
だから何でそうなるのw

そもそもあんた、特殊な実装をしてるかどうか読み手が判断できるような情報を何も書いてないだろうw
だからそれで答えが返ってきたらエスパーだと言ってるのに重症だなおい
0064デフォルトの名無しさん
垢版 |
2018/09/22(土) 16:53:24.99ID:/LVptLz+
膨大なデータ生で見せられてもユーザーにはメリットがないのでデータの見せ方を変える
低レベルAPIじゃなく高速描画ライブラリを使う
というのが一般的な対応じゃないかな

そもそもここで言う一般的ってのはやってることが一般的かどうかという意味じゃなく
事象と発生条件が一般的ではないから実際のものを見なきゃ何もわからないという意味だろう
0066デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:14:32.51ID:tW/Yy4gZ
>>64
言葉を返すようだが、「見せ方」「メリット」というけど、そこまで相談はしていないよ
低級API利用が特殊だとは全く思わないし、そもそも描画手続きについて相談してるわけでもない
ALTキー押下でVB.NETのPictureBox上の自前描画が消えるのが問題なんだよ
自前描画もそうだけど、ALTキーを押すなんてそんな特殊なケースだとは思わなかったね
みんな普段ALTキーを使ってないのかよ?w
0067デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:19:14.70ID:kFAOP0FY
マジで言ってるなら相当の幸せ回路だな

ALTキーを押すのが特殊と思わんかったてw
何でそうなるのw
0068デフォルトの名無しさん
垢版 |
2018/09/22(土) 17:24:48.15ID:ga1yzWrI
>>66
VB.NETでブラウザ上表示じゃなくForm描画だとしたら、PictureBOXが載ってる親オブジェクトのFormの描画リフレッシュレートタイミングに問題が有るんじゃ無いか
0069デフォルトの名無しさん
垢版 |
2018/09/22(土) 19:34:34.13ID:/LVptLz+
「起動後の最初」に特定のキーを押す
描画が消えてしまう「ことがある」

特殊バグすぎてイラつくわ
一般的に起こってたまるかよ
0070デフォルトの名無しさん
垢版 |
2018/09/22(土) 20:50:50.11ID:tW/Yy4gZ
>>68
>リフレッシュレートタイミング
つながってると意味がぼやけるな。それはともかく、
VB.NETのFormは、イベント駆動で再描画されるから常時一定間隔で描画更新されてるわけじゃないだろう
0071デフォルトの名無しさん
垢版 |
2018/09/22(土) 20:54:15.78ID:tW/Yy4gZ
ところで、再現手順については必要最低限の情報を提示したつもりだったんだが、こんなに特殊に受け止められるとは想定外だったな
これだけ出回っているツールだから、同じケースで悩んでいる人たちがいるだろうと思ってたんだが
主張根拠を、相手の書き込みの一部だけを恣意的に抽出してつなげて、捏造主体の印象操作を行うことに羞恥心を感じない心の浅い人もいるみたいだし、
聞く場所を間違えた、という結論に至りました^^
0074デフォルトの名無しさん
垢版 |
2018/10/04(木) 03:58:18.05ID:3Cg3sys6
この掲示板だけのインシデントと信じたいが、
お前らマジで使えねえな
その程度でイキってるからVB.NETが馬鹿にされるんだよ、ゴミ共が
0075デフォルトの名無しさん
垢版 |
2018/10/28(日) 14:59:16.13ID:SFrY9m9d
GetPrivateProfileStringでINIファイルの全文を読み込む方法ってありますか?
0077デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:11:08.64ID:SFrY9m9d
>>76
おお!目を通したつもりがよく理解できてなかったよ
大変助かったよ!本当に有難う!精進します。
0078デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:28:08.52ID:SFrY9m9d
http://jump.5ch.net/?https://msdn.microsoft.com/ja-jp/library/cc429779.aspx
ここを参考に考えてみたけれど
lpDefault
NULL で終わる既定の文字列へのポインタを指定します。lpKeyName パラメータで指定したキーが .ini ファイル内に見つからなかった場合、
GetPrivateProfileString 関数はこの既定の文字列を、lpReturnedString パラメータが指すバッファへコピーします。lpDefault パラメータで NULL を指定することはできません。

第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい際、pKeyName パラメータで指定したキーが見つからないってことだと思うから
結局第三引数が第四引数の中に入っちゃうのですが
解釈がおかしいのでしょうか
0079デフォルトの名無しさん
垢版 |
2018/10/28(日) 20:43:01.97ID:pnWZEcOz
>>78
実際にやってみた?、考えただけ?

普通に解釈すればlpKeyNameがNULLということは
キーを指定していないんだからキーが見つからないと
なるとは考えられないけどね

実際にやってみてlpDefaultの値がlpReturnedStringに
入ってしまったのならこの関数で全文取得は無理なんじゃないかな
0080デフォルトの名無しさん
垢版 |
2018/10/28(日) 22:33:46.69ID:SFrY9m9d
>>79
実際にやってみて入らなかったよ、教えてくれたのに申し訳ない。
INIファイルからキーを全部抽出して任意のタイミングで変数に入れたいだけなんだが
調べてもよく分からなくて質問を受けてくれてる方にも
困惑させてしまっているな...
0081デフォルトの名無しさん
垢版 |
2018/10/29(月) 06:03:03.69ID:WUUAbnDR
30分ごとに料金を+500円ずつ足していってラベルテキストに表示するプログラムが作りたいのですが
どうすればいいでしょうか?
経過時間を計測するところまではできています
0083デフォルトの名無しさん
垢版 |
2018/10/29(月) 10:50:14.54ID:oAZGLoeZ
>>80
> 第一引数と第二引数をNULLにしてSECTIONとKEYを一挙に取得したい
誤解してない? これで手に入るのはセクションの一覧だよ
その後で個々のセクションごとに改めて第2引数だけNULLでGetPrivateProfileStringを呼び出してそのセクション内のキー一覧を取得する

ほかの確認事項としては
iniのファイルパスが正しい確認、念のためフルパスで渡す
\0で区切られた文字列はStringとかStringBuilderとかでは正しく受け取れないからByte配列で受け取ってEncoding::GetStringで文字列変換
0084デフォルトの名無しさん
垢版 |
2018/10/29(月) 18:57:40.55ID:vJZ8/XYU
>>83
ごめんなさい、少し勘違いをしていました。
第一引数でセクションを指定し、第二引数をVBNullStringにした場合、キー値ではなく何故かセクション名をひとつだけ取得するのですが、第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
0085デフォルトの名無しさん
垢版 |
2018/10/29(月) 19:27:50.65ID:oAZGLoeZ
> 第一引数でセクションを指定し、第二引数をnullにすれば指定したセクションのキー値をすべて取得できるという解釈は誤りでしょうか?
解釈は正しい
セクションしか取れないのは何か勘違いしてんじゃね
1つしか取れないのは>>83の最後の行
0086デフォルトの名無しさん
垢版 |
2018/10/29(月) 20:04:46.54ID:EQ0ZvgtX
>>85

GetPrivateProfileString(セクションの変数, キー値の変数, "", strBuffer, strBuffer.Capacity, FileName)
KeyValue =strBuffer.ToString

第一引数でセクションの変数(ここでは「element」とします。)第二引数にVBNullStringを代入した際、strBufferに格納される値が
「element」のみなのですが>>85さんの仰るとおり何か勘違いをしているのでしょうか...
以下、INIファイルです

[element]
VALUE1 = AAA\nBBB
VALUE2 = CCC\nDDD
[element2]
VALUE3 = EEE\nFFF
VALUE4 = GGG\nHHH

本来VALUE1の値である「AAA\nBBB」とVALUE2の値である「CCC\nDDD」が取得されるものかと思っておりました。
0087デフォルトの名無しさん
垢版 |
2018/10/30(火) 00:57:51.70ID:8/9eZ6sC
大して複雑でもないんだから、悩むなら
ファイル全読して自分で解析した方が早そう
0089デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:36:29.61ID:LlhJqt4w
nullにすればって言ってるからヌル渡してると思うじゃん?
まさか空文字列を渡して動かないと言ってるとは思わないじゃん?
0090デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:43:18.14ID:2q9Nopp0
(定数) Constants.vbNullString As String = Nothing
インテリセンスによるとこうらしい
説明では長さ0の文字列とか言ってるけどな
0091デフォルトの名無しさん
垢版 |
2018/10/31(水) 01:30:41.68ID:uKh/exBf
>>86
GetPrivateProfileString("element", vbNullString, ...
としたときにバッファに帰る文字列は

"VALUE1" & vbNullChar & "VALUE2" & vbNullChar & vbNullChar

なので、lpReturnedString に StringBuilder を渡すと最初の vbNullChar で区切られてしまう。
こういうときは >>83 が書いてくれてるようにバイト配列で受けるか、 Marshal.AllocHGlobal でバッファを確保してアドレスを渡す。

Unicode バージョンを呼び出している場合は

Dim bufferPtr As IntPtr = Marshal.AllocHGlobal(1024)
Dim buffer As String = String.Empty
Dim nSize As Integer = GetPrivateProfileString("element", vbNullString, vbNullString, bufferPtr, 512, "C:\HOGE.ini")
If nSize > 0 Then buffer = Marshal.PtrToStringUni(bufferPtr, nSize - 1)
Marshal.FreeHGlobal(bufferPtr)
Dim keys As String() = buffer.Split(vbNullChar)

こんな感じ
0093デフォルトの名無しさん
垢版 |
2018/11/03(土) 19:36:08.98ID:SHI5qsHH
VBのNothingはnullではなく型の規定値だったはず。
つまり、

Dim hoge as String = Nothing
はC#の
var hoge = default(string);

と同じはず。
だからどっちにしろ空文字ではなくNull参照じゃないとおかしい気がする
0094デフォルトの名無しさん
垢版 |
2018/11/03(土) 20:46:51.95ID:0JFYuFT5
Debug.Print("{0}", String.Empty.Equals(vbNullString)) .. False
Debug.Print("{0}", String.Empty = vbNullString) ... True

面白いな。
0095デフォルトの名無しさん
垢版 |
2018/11/07(水) 00:28:16.72ID:SlJfY7pV
WindowsFormアプリからExcelを参照する際に困ったことがあったので質問します。
いま参照しているExcelに名前ボックスが同じ名前のActivexコントロール(CheckBox)が2つあるんですが片方のValue値が取れません。
Excelには手を加えずに解決する方法をご存じの方はいますか?
0099デフォルトの名無しさん
垢版 |
2018/11/12(月) 17:40:02.30ID:epPqaRvS
datagridviewで選択した行のテキストを各列ごとにテキストボックスに反映させるにはどうすればいいですか?
0101デフォルトの名無しさん
垢版 |
2018/11/13(火) 17:35:19.43ID:rlJmmkiE
BindingSource って Visible=False なコントロールを飛ばするとか、微妙なところあるんだよなぁ
0102デフォルトの名無しさん
垢版 |
2018/11/16(金) 15:10:13.08ID:3cDS4XFZ
11/14あたりのWindowsUpdateでListViewの表示がおかしくなった。
正確には「View=Tile」にしてもLargeIconになってしまうケースがある。
既にリリース済みのシステムで今日から表示がおかしいという問合せが
あった。どこに原因があるのか確認しようとミニマムなコードを書いて
みても普通にTileで表示されるので原因がまだ特定できていない。
それとApplication.EnableVisualStyles()していてもTabコントロール上の
ボタンにVisualStyleが適用されないものもある。この時、Tabコントロール
以外に存在するコントロールにはVisualStyleが適用されている。
これも原因がわからない。。

同じような現象になった人っていますか?
0103デフォルトの名無しさん
垢版 |
2018/11/16(金) 23:58:30.69ID:HodhQ/sE
おるわけないやろオマエのバグやのにw
0104デフォルトの名無しさん
垢版 |
2018/11/20(火) 17:31:14.06ID:5r5VrLgw
Windowsフォームを閉じる際にMe.close()とMe.dispose()の両方を書いたら閉じる時の挙動がおかしい(後ろで開いてたエスクプローラーが一瞬だけ出てくる)のですが原因が分かる方いますか?
0105デフォルトの名無しさん
垢版 |
2018/11/24(土) 15:05:28.97ID:krxB1Xz+
俺も今月からおかしいのに気が付いた。
Private Abc as String = "AAA"と設定しているのに、

ボタンイベントで下記のみ実行

Abc = "ABDEF"
TextBox1.Text = Abc
Dim S1 as String = Abc
Msgbox(S1)

上記のコードを実行すると Msgboxの表示は”AAA”
テキストボックス表示は”ABDEF”
今月になって発覚した。
仕方ないからクラスを追加してグローバル変数にして実行している。

プライベート変数 すべてに影響があって初期値に戻される事象。
vs2017の修正を試したがだめだった。
0106デフォルトの名無しさん
垢版 |
2018/11/24(土) 15:23:36.71ID:VBkVIhNz
>>105の頭が目がおかしいのだろう
さすがにそんな言語レベルの根本的なバグがあったら自動テストで拾える
Msgboxのバグで以前表示した値が出ているとかならワンチャンないとも言い切れなくもないかもしれない可能性はゼロではないかもね
0109102
垢版 |
2018/11/26(月) 08:57:51.44ID:DXbnFpYk
Windows 10 Pro 1803 x64
VisualStudio 2013 + .NET Framework 4 + VB.Net
この環境で Windows.Forms アプリを開発してます。
0110デフォルトの名無しさん
垢版 |
2018/11/26(月) 09:23:13.92ID:jCGZ4ioD
.NET4はとっくにサポート期限切れてるから使っちゃダメ
もしWinのアップデートのせいだったとしても、サポート切れの.NET4なんか当然テストしてないだろうし、自己責任よ
0111102
垢版 |
2018/11/26(月) 15:59:12.73ID:DXbnFpYk
当該の不具合が発生している環境は Window 7 Pro x86 です。
後だし情報ですんません。
0112102
垢版 |
2018/11/26(月) 16:02:59.93ID:DXbnFpYk
連投になってしまってすんません。
Windows 7 は 2020年1月で切れるということは、まだ切れてないんじゃ
ないんですか?
この解釈は間違ってますか?
.NET Framework 4 のサポートが終わったってどこに記述ありました?

ここにはそこまで書いてないと思うのですが。
https://www.microsoft.com/ja-jp/download/details.aspx?id=17718
0115デフォルトの名無しさん
垢版 |
2018/11/27(火) 10:19:17.21ID:Z5tknMOb
VB2013てWin8.1までだな。
Win10ならVS2015以降か。
0116デフォルトの名無しさん
垢版 |
2018/11/27(火) 16:09:13.84ID:veQAfEkI
もしかして、開発のプロパティが .NET2とか初期値になってない?
PCにインストールしていない下位バージョンの.NET開発は挙動がおかしいよ。
まれだが、バージョンを最新に指定するとなおることも多い。
0117102
垢版 |
2018/11/27(火) 19:10:09.64ID:Z5tknMOb
>>116
対象のフレームワークは.NET Framework 4になってる。
ミニマムに再現確認しようと新規でプロジェクトを(.NET4で)作成しても問題なし。
でも既存のはListViewでView.TileにならずView.LargeIconだったりVisualStyleが適用されなかったりする。。
(Win7の実行環境でもWin10の開発環境でも。)

みんなはちゃんと最新の開発環境に移行できてるの!?
今回問題になってるアプリケーションはVS2003の頃に.NET1.1で開発初めて、途中で.NET2.0にして
いまはVS2013+.NET4で保守してきてるけど、そんなにポンポンと開発環境をMSの言うがままに
アップデートしてきてるの!?!?
0118デフォルトの名無しさん
垢版 |
2018/11/27(火) 20:05:39.30ID:GOjY0rNn
こういう典型的な保守さんを見ると、そんなにあんたたちの作ったものは品質が高いのかとツッコミたくなる
クソ細かいこと気にする前にもっと他にいくらでも直さなきゃいけないところあるだろ?
やるべきことをやらないくせに「やらない」ことに対してだけオーバークォリティな典型的な無能
0120デフォルトの名無しさん
垢版 |
2018/11/27(火) 20:36:21.61ID:JHhXTC3j
どうさ保障されてる環境でないとサポートされないからな

問題が起きたらまずサポートされてる環境で再現するか確かめるわ
0122102
垢版 |
2018/11/28(水) 17:57:11.21ID:ue+ZFZI7
>>117
.manifestはないけど.exe.configならある。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
<supportedRuntime version="v2.0" sku=".NETFramework,Version=v2.0"/>
</startup>
と書いてる。
このあたりをv2.0の行を削除してみたりuseLegacyV2RuntimeActivationPolicyを
なくしてみたりといじってみたけど解消されず。。
0123デフォルトの名無しさん
垢版 |
2018/11/29(木) 00:08:17.33ID:VI19qptG
ListViewは.NET4で安定してるはず。
NET4以前は、ある一定行数を超えるとエラーで処理が止まるということがあった。
だから、WIN32APIを使ってWM_PAINTメッセージを処理するコードを使わないと
ほぼ動かない状態だった。だが、.NET4でWIN32API呼び出しがいらなくなった。

多分だが、ビルド関係のPC固有のバグも含まれると思う。
なので、VSを終了してデバックされたものではない<開発中のアプリEXE>を
直接動かしてみてね。それでどうか?
VS2008の頃は、VSのデバック使わないで開発してた経緯がある。
0124102
垢版 |
2018/11/29(木) 08:25:18.55ID:usvQhOSh
>>123
.NET4 以前の不具合は知らなかった。ありがとう。

今回の現象は、.NET1.1の頃に開発したソースをそのままずっと引き継いでいて
VS2003〜2005〜2008〜2010〜2013、.NET1.1〜2.0〜3.5〜4と変遷しながらも
そのまま使用している。
いま起きている不具合は Releaseビルドした実行ファイルを、別PCで実行しても
発生するし、VSでのデバッグ実行でも発生している。
0125デフォルトの名無しさん
垢版 |
2018/11/29(木) 16:27:06.98ID:VI19qptG
確か、そのころVS2003とかDLL出力できないものだよね。
多分 .resxファイルとか残ってるでしょ?

サポート対象のバージョンで動くかどうかではなく、昔から流用してきたコードやメソッドを
見直すほうが先だと思う。古いメソッドとか使ってると微妙なものがある。
0126102
垢版 |
2018/11/29(木) 19:16:02.04ID:usvQhOSh
>>125
開発当初から.resxファイル使ってるよ。
これマズいの?

確かに過去に.NETを新しいものに変更したときそれまで使用していたメソッドが
使えなくなってメンテした記憶はある。
でも.NET4で作成したアプリがついこの間までは普通に使えていたのに
急に挙動(見た目)が変わるって変じゃない?
単純に ListView の View を Tile にしても LargeIcon になってしまうのって気持ち悪いし。
enum定数の値が変わったとかならわからなくもないけど、実際にはenumのView.Tileを
指定しているし。
ステップ実行してもそのタイミングでViewはTileになっている。
けれども実際の見た目はLargeIconになっている...

まあサポートの切れた.NET4を使っていて文句言うなと指摘されそうだけど。
0128デフォルトの名無しさん
垢版 |
2018/11/30(金) 00:40:56.22ID:rf9Ni6yN
あ! そうか・・  LargeIconの設定はコードで書いてるの?
リストビューのツールプロパティに設定項目なかったかな?
それで試してみた? 設定変更のコードを削除してから試してね。

ただ、頻繁に変更するとか、あとバグるメソッドじゃないんだよね。

なんどもすまん!



  
  
  
0129102
垢版 |
2018/11/30(金) 08:57:01.31ID:SIPYJVnh
>>127
ミニマムコード書いても再現されないから困ってるんだよ。

>>128
ListViewコントロールのViewを LargeIcon、Tile、SmallIcon、List、Detail と
切り替えられるようにしている。
もちろんコードでやってる。
で、書いてくれたように今、デザイン時でTileにしてコードでは変更しなくてもやはり
LargeIconになってしまったよ。。。

Tile時はImageに加えてSubItemの文字列も表示されるので便利なんだけど
現状ではLargeIconになってしまうのでSubItemが見えず一見すると同じような
ものが並んでしまって判断つかないからDetailに表示を切り替えて我慢して
もらっている。でもこれだとImageが表示されないので、これはこれで不便なんだよね。

そもそも気になるのが、VisualStyleを有効にしているのに、同じフォーム内でも
ボタンで適用されているのとされていないものが混在しているってこと。

フォームのタブコントロール上のパネルコントロールに配置しているボタンには
適用されていないけれどフォームのパネルコントロールに配置しているボタンは
適用されている。。。

でも再現確認しようとミニマムなものを新規で作成してみてもこんな事にならず
ちゃんと全てのコントロールにVisualStyleは適用される。

わけわからない。。
0130デフォルトの名無しさん
垢版 |
2018/11/30(金) 11:41:46.78ID:eQTcWZX5
賭けてもいい。システム側の問題じゃない
あなたのコードの問題
最初からそう言ってる人もいたけど、それはここに書いてる文章の行間からも十分推測できる
0131デフォルトの名無しさん
垢版 |
2018/11/30(金) 18:19:51.56ID:Lh71478i
今のプロジェクトから削っていくのでも
新しいプロジェクトに増やしていくのでも
どっちでもいいから順番にやってけば
0132102
垢版 |
2018/11/30(金) 20:23:30.40ID:SIPYJVnh
ミニマム環境作ってだいぶ調べた。

プロジェクトのプロパティで「アプリケーション」内の「アプリケーションフレームワークを有効にする」の
チェックを外すと再現できた。
このチェックを付けるとListViewはTileとして表示される。
チェックを外すとListViewはTileを指定してもLargeIconで表示されてしまう。
0133デフォルトの名無しさん
垢版 |
2018/11/30(金) 21:39:51.29ID:cIO0a97u
よし、その調子で調査を続けたまえ
0134デフォルトの名無しさん
垢版 |
2018/11/30(金) 23:37:28.55ID:aHvjCfZ2
>To enable tile view, your application must call the Application.EnableVisualStyles method.
らしいけど、ちゃんと呼んでるのか?
アプリケーションフレームワーク有効だとその辺勝手にやってくれてたはず
0136デフォルトの名無しさん
垢版 |
2018/12/01(土) 18:09:06.36ID:KZz1rFV5
自動テストって業務アプリでもつくっておけよ。ww
そんなの死んでも作らんわ。
0137デフォルトの名無しさん
垢版 |
2018/12/03(月) 02:07:02.91ID:CiT4luJ/
そこまでならシステムバグかも。言ってるだろ保存時のエラーを拾ってる可能性が高いって。
私も経験していて、すべて同じコードをそっくり新規プロジェクト作成してコピペすると
バグの再現率は皆無。早めに移動させたほうがいいよ。

3年前には、バックグランドのIsBusyが毎度Falseで戻るというバグ。
この時も新規プロジェクトにコードをコピペしたら直った。
0138102
垢版 |
2018/12/03(月) 08:39:16.52ID:SG+JG4dk
だから、新規でミニマムコード書いてみて再現するんだって。

VS2013+VB.NET+.NET4でWindowsForms新規プロジェクト作成して、

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.ListView1.Columns.Add("1")
Me.ListView1.Columns.Add("2")
Me.ListView1.Columns.Add("3")
Me.ListView1.Columns.Add("4")
Me.ListView1.View = View.Tile

For i As Integer = 0 To 9
Dim lvi As ListViewItem = New ListViewItem(String.Format("item{0}", i))
lvi.SubItems.Add(String.Format("SubItem1_{0}", i))
lvi.SubItems.Add(String.Format("SubItem2_{0}", i))
lvi.SubItems.Add(String.Format("SubItem3_{0}", i))
Me.ListView1.Items.Add(lvi)
Next

End Sub

とでも書いておけば、プロジェクトのプロパティの「アプリケーションフレームワークを有効にする」の
チェック有無でViewがTileになったりならなかったりするんだって。
0139102
垢版 |
2018/12/03(月) 10:29:50.33ID:SG+JG4dk
その後の検証で、VS2017+.NET4や.NET4.7.1などではアプリケーションフレームワークを無効にしていても
Application.EnableVisualStyles()を呼んでおけば大丈夫でした。
以上
0140102
垢版 |
2018/12/03(月) 10:44:29.67ID:SG+JG4dk
VS2013のVB.NETでアプリケーションフレームワークを有効にしない場合、コードで
Application.EnableVisualStyles()を実行していてもVisualStyleが適用されない部分が発生する
(中途半端に適用されてしまう)ことがわかりました。

アプリケーションフレームワークを無効にして Sub Main() から起動していたものを
アプリケーションフレームワークを有効にして ApplicationEvents で処理するように変更することで
今回の件は対応できました。

さようなら。
0141デフォルトの名無しさん
垢版 |
2018/12/03(月) 13:28:55.92ID:iyo7d7NK
Formを表示するだけなのにvirustotalで調べると
Endgame malicious (moderate confidence)
Trapmine malicious.moderate.ml.score
↑の2つが必ず検出される・・・
0142デフォルトの名無しさん
垢版 |
2018/12/06(木) 20:59:58.22ID:6nIp7B/v
VB2010のBackgroundworkerで質問です

Backgroundworker1(BW1)とBackgroundworker2(BW2)を用意しておいて、
メインスレッドからBW1を走らせ、BW1からさらにBW2を走らせるようにして
BW2で処理した結果をどうにかしてBW1に渡したいんですが、どうすれば
安全にできるでしょうか?
(BW1の中から更にBW2を起動できるのは確認済みです)

パッと思いついたのは

1. あらかじめグローバル変数を1つ用意
2. BW2の処理が終わったら計算結果をCompletedイベントで1のグローバル変数に書き込む
3. 次にBW1を起動する時に1のグローバル変数の内容を引数として渡す

というものですが、これだとBW1が起動するタイミングでしかデータを渡せないので
できればBW1の処理の途中でBW2の計算結果を取得できればと思ってます
0143デフォルトの名無しさん
垢版 |
2018/12/06(木) 23:02:53.80ID:A0CG4R0v
>>142
クラスを定義して BW1 で New して BW2 の起動時に渡せばいい。

BW2 では e.Argument をクラスにキャストしてプロパティや
フィールドを書き換えれば BW1 側で参照できる。

BW2 の終了を BW1 側でどうやって知るかというと
クラスに完了フラグを入れたり、待機するなら
AutoResetEvent など入れておく。
0144デフォルトの名無しさん
垢版 |
2018/12/07(金) 07:03:19.31ID:3nrqnizA
>>143
ありがとうございます

クラスやインスタンスについてはよく理解できてないんですが

・BW1とBW2の間で受け渡ししたい情報をプロパティとして持つクラスを作成

・BW1の中でそのクラスのインスタンスを作ってBW2に渡したい値をプロパティにセットし、
それを引数としてBW2を起動させる

・BW2側で計算が終わったらCompletedイベント内部でプロパティやフィールドを書き換える

って感じなのでしょうか?
BW2にデータを渡すのは何となく分かる気がするんですが、BW1からBW2の結果を
参照できる理屈がよくわからなくなってきました
0145デフォルトの名無しさん
垢版 |
2018/12/07(金) 07:40:39.74ID:kROUwqzj
俺はスレッドの同期には
 スレッド1でMonitor.Waitでオブジェクトを待機
 スレッド2で計算完了後渡したいデータをキューに入れる→Monitor.Pluse
 スレッド1でWaitが解けたらキューを取得
 以後ループ
ってやってる
0146デフォルトの名無しさん
垢版 |
2018/12/07(金) 08:29:06.85ID:2afnIVVG
>>144
VS2010ならTaskあるだろ
順番にコールバックで処理を繋いでいくだけだ
BackgroundWorkerは忘れていい

>>145
そのパターンはWaitHandleを使いなさい
0149デフォルトの名無しさん
垢版 |
2018/12/07(金) 16:42:40.67ID:a9TgYpl9
Dim p As New Ping()
Dim pr As PingReply = p.Send(ip, 2000)
If pr.Status = IPStatus.Success Then

ハードウエアに添付されてる特定のアプリをインストールした直後に
上記を実行すると、無限に p.Send(ip, 2000)で止まったままになるらしく。
強制的に抜け出す方法があれば教えてください。
特定アプリを削除すると正常に動きます。
0150デフォルトの名無しさん
垢版 |
2018/12/07(金) 18:24:22.52ID:8lt4nerT
>>149
それ、本当にPing.Sendがタイムアウトしないのかちゃんと確認した?
勘違いでしょ

本当にそんなバグがあればだれか問題にしてるはずだと思うけど
ググってみたがまったく見つからない
0153デフォルトの名無しさん
垢版 |
2018/12/07(金) 19:52:03.02ID:cSzYN2du
>>149-150
クラッキング防止のため、ping には応答を返さないサーバーもある。
それで、クラッカーは、ずっと待たされるから、防止になる

タイムアウトするしかない
0156デフォルトの名無しさん
垢版 |
2018/12/08(土) 22:06:24.24ID:45hw1cdo
>>149 だが、遅くなってすみません。
確かに、どんなことがあってもタイムアウトかエラーで止まるとかあるはず。
今回は、どうにも納得できないのはある。
現状は、プライベートIPに向けてPingしてるからなんともいえないけど。

Pingを外して作り直してみますね。

     いろいろと、ありがとうございました。
      参考になったことを感謝!
0158デフォルトの名無しさん
垢版 |
2018/12/08(土) 22:50:58.82ID:RUYrEQD/
むしろ基本は非同期ファーストでよほどの理由がなければ同期にはしないのが現代の.NETプログラミングの常識だろう
まあVBerにそれを強制すると大惨事だろうけど
0160デフォルトの名無しさん
垢版 |
2018/12/08(土) 23:34:16.79ID:RUYrEQD/
UWPだろうとWinFormsだろうとUIスレッドを長時間ブロックしたらフリーズするのは一緒や
0161デフォルトの名無しさん
垢版 |
2018/12/09(日) 08:33:34.68ID:rvgDVfN9
>>160
まぁ、そりゃそうだが何でもかんでも非同期処理にするのはどうかと思うぞ。
非同期って別スレッドだからスレッドの罠を分かってないヤツが実装すると危険だよ。

スキルの無いヤツほど難しい実装をやりたがる。
単純明快な実装で簡単にできるものまで。
0162デフォルトの名無しさん
垢版 |
2018/12/09(日) 09:27:52.83ID:QJ+QHutH
>>161
ほとんどの非同期処理は別スレッドではない
システムに依頼したIOの完了を現在のコンテキストのままでやるか、
完了を待って元のスレッドへコールバックするかの違いでしかない(デフォルトでは)
長い処理の完了を待つ必要がある(でもイベントベースの非同期は面倒だからコードはシーケンシャルに書きたい)ときに
利用側が待機用スレッドを作る必要がないので、従来のBackgroundWorkerや生Threadよりずっと安全だ
0163デフォルトの名無しさん
垢版 |
2018/12/09(日) 15:37:28.92ID:mC11Jcgj
>>157
そうですね
リアルタイムの物理シミュレーションで、物理演算スレッドとは別に裏で走らせたい
重いと予想される処理があるので非同期でないと具合が悪いです(しかもその
別処理での計算結果を物理演算スレッドで使う)
物理演算スレッドと同じスレッドでその別処理を走らせると別処理の結果が出るまで
物理演算スレッドが先に進まなくて全体のパフォーマンスが悪化するんで、何とか
別処理は物理演算スレッドから更に分離してマルチスレッドにしたいと考えています

以前はメインスレッドで物理演算スレッドを実行していたせいで描画がかなり遅くなって
Backgroundworkerを使って物理演算スレッドを分離したという経緯があるので、そこに
別処理を組み込むのもBackgroundworkerでやれたら・・・と考えていました
0165デフォルトの名無しさん
垢版 |
2018/12/09(日) 19:48:39.49ID:QJ+QHutH
>>164
TaskCompletionSource使えばスレッドを使わないTaskも作れるよ
というか.NET標準の非同期IOはだいたいそう
0166デフォルトの名無しさん
垢版 |
2018/12/09(日) 19:54:44.04ID:QJ+QHutH
なお、Taskがスレッドを使ってようがいまいが、それを使う側が意識する必要はない
デフォルトでは、処理の終了後に元と同じスレッドに処理が戻ってくるからね
0168デフォルトの名無しさん
垢版 |
2018/12/09(日) 20:09:03.43ID:rvgDVfN9
>>166
非同期の中は相変わらずスレッドだし、スレッドの仕組みが分からない人が安易に使うべきじゃない。
スレッドプログラミングモデルは不完全だよ。
0170デフォルトの名無しさん
垢版 |
2018/12/09(日) 20:25:21.69ID:QJ+QHutH
>>168
安易もクソも、長時間かかる処理をUIをブロックすることなく、かつ手書きステートマシンによる大きな生産性可読性もなく記述しようと思えば、
別スレッドで同期処理するかTask使うしかないでしょ
で前者に比べれば後者のほうがまだ安全だと言ってるの
あっ、VBプロの伝家の宝刀DoEventsがあったかw
0171デフォルトの名無しさん
垢版 |
2018/12/09(日) 20:40:58.46ID:rvgDVfN9
>>170
スレッド絡みの罠を知った上で使うのは問題ないけどねぇ。
async/awaitって非同期が簡潔に書けるし超便利だし。

馬鹿が見様見真似で仕組みも分からずに安易に使うのは許せん。
0172デフォルトの名無しさん
垢版 |
2019/01/10(木) 17:37:32.49ID:92qiHI93
.NET CoreとしてVB.NET使った事例増えてるんかね?
これで増えないとVB.NETもヤバい
0175デフォルトの名無しさん
垢版 |
2019/01/12(土) 19:37:47.15ID:f5l6WgiO
UWPでdll使いたいんだけど、
Byval hogehoge as string だとエラー出ちゃうね。

試しに Byrefにすると通るんだけど、これバグかな?
文字列を受け取るのではなくて、送りたいからこれだと動かないんだけど。
0176デフォルトの名無しさん
垢版 |
2019/01/19(土) 16:46:40.40ID:SwmccsG2
コンパイラエラー C2872 あいまいなシンボルです。

コンパイルエラーが解消出来ません。
ご教授下さい。

■コンパイルエラー内容
error C2872: 'MarketplaceWebServiceProducts' : あいまいなシンボルです

■やりたいこと
AmazonのAPI「Marketplace Web Service API (MWS)」のHello world

以下ページの右上 オレンジ色の「Download」ボタンから入手できる
「MWSProducts_2011-10-01_v2017-03-22.dll」の使用
https://developer.amazonservices.jp/doc/products/products/v20111001/cSharp.html

■DLLの使用
Visual Studioの対象プロジェクトのプロパティから、
上記DLLの参照を追加しました

■コーディング
using namespace MarketplaceWebServiceProducts;//←ここはコンパイルOK
using namespace MarketplaceWebServiceProducts::Mock;//←★ここで上記コンパイルエラー

■ご質問
上位の「MarketplaceWebServiceProducts」が正常なのに、
下位の「Mock」を付けるとあいまいなシンボルになるのはなぜでしょうか。
解決策をご教授ください。(可能であれば実装をご提供ください)

■環境
Visual Studio
.Net 4.0
C++/Cli
0177デフォルトの名無しさん
垢版 |
2019/01/19(土) 18:28:37.99ID:wiNfQeeu
>本当にありがとうございます!!!!!!!!!!!!
>キモヲタ万歳!!!!!!キモヲタ役に立つ!!!!!!!!

この質問者は、荒らしだから、無視しろ!
0178デフォルトの名無しさん
垢版 |
2019/01/22(火) 11:08:00.90ID:MNWEiKG9
むかしのVisual Basic6とかVisual C++6を今からインストールしても
今インストールしてる最新の.NET環境に影響はありませんか?
0180デフォルトの名無しさん
垢版 |
2019/01/22(火) 18:44:56.82ID:MNWEiKG9
>>179
そうざますか。
どなたかくわしいひといらっしゃいませんか?
0181デフォルトの名無しさん
垢版 |
2019/01/22(火) 21:45:30.75ID:omWGXlHy
くわしいけど何か?
0182デフォルトの名無しさん
垢版 |
2019/01/22(火) 21:49:21.31ID:8mJXdjen
>>181
Visual Basic6とかVisual C++6を今からインストールしても
最新の.NET環境に影響はありませんか?
0183デフォルトの名無しさん
垢版 |
2019/01/22(火) 22:25:56.22ID:dU5LcznM
>>182
VS.NETは、バージョンの順番に入れないと上手く動かなかったりするけど
vb6, vc6は大丈夫だろ?

それ以前にWin10へのインストールはやったことがないなあ
俺なら仮装環境へWinXpを入れて使うか
0185デフォルトの名無しさん
垢版 |
2019/01/22(火) 23:33:46.55ID:R4R8JbvY
騙しながらとは?
こういうあいまいな言葉いやだな。
コンピュータ業界の人ならはっきりとしたいものです。
前の会社で「サーバがコケた」とよく言ってた人を思い出した。
サーバに足はないんだからコケないだろ。
0186デフォルトの名無しさん
垢版 |
2019/01/23(水) 09:44:49.58ID:94ZvYw52
>>185
確かに鯖には足は無いね。
鯖は転けない。

プログラミングと言うものはコンピュータとユーザを如何に騙すかに掛かっている。
0187デフォルトの名無しさん
垢版 |
2019/01/23(水) 11:55:45.33ID:FAv1PkTN
vb6でコンパイルしたexeは騙し欺し動くけど
開発環境そのものを入れるのは何か問題あった希ガス
0192デフォルトの名無しさん
垢版 |
2019/02/03(日) 09:46:16.79ID:hzttK4k1
>>191
え、そうやって古いゴミvb6システムを騙しながら保守するんだぜ。
MSがvb6に引導を渡してくれたら客先も諦めて移行するんだけどね。
0196デフォルトの名無しさん
垢版 |
2019/02/05(火) 22:36:03.07ID:EuMjYSra
え?Microsoft製品って動作保証されてるの?
知らなかったなあ。.NET Frameworkって何か起きた時にはMicrosoftが補償してくれるんだ。
UWPなんかコンパイラのバグばかりだけど、これって金銭的補償とかしてくれるの?
そもそも業務でVB6使うよりも、Windows10使うほうが色々リスク高いと思うけど。
0198デフォルトの名無しさん
垢版 |
2019/02/06(水) 02:13:01.38ID:wO/VNrzd
今からでもいいので20年前に出たVB6のバージョンアップ版を出したほうがいいと思う
0202デフォルトの名無しさん
垢版 |
2019/02/06(水) 12:43:36.87ID:yK0c/OTQ
>>197
win10のサポート?
具体的にどんなサポート受けられるの?

今までの経験だと、どんな不具合報告しても、なに言っても改善されないのがマイクロソフトだけど。興味あるな。
0204デフォルトの名無しさん
垢版 |
2019/02/06(水) 12:48:32.65ID:yK0c/OTQ
>>198
最新版のVB6のIDE用パッチは2016に出てるよ。ぐぐっても古い記事しか出てこないから充ててない人多いよね。

サポート期限ガーとか言ってる奴に限ってvisual studio2008とか使い続けてるんだよな。もうサポート期限切れてるのに。
0208デフォルトの名無しさん
垢版 |
2019/02/06(水) 12:59:46.34ID:yK0c/OTQ
ちなみにVC6を未だに現役で使い続けてるところ沢山あるけど、そこにツッコミ入れる人は少ないんだよな。
コンパイラとしても古いけど、やはり枯れて実績が積まれて使い慣れてるから、なかなか手放せない。
VB6も同じだと思うよ。
0209デフォルトの名無しさん
垢版 |
2019/02/06(水) 13:00:09.38ID:259i/glJ
日本マイクロソフトは営業所みたいなもんだから。
製品作ってる技術者なんかいない。
0210デフォルトの名無しさん
垢版 |
2019/02/06(水) 13:13:25.78ID:wygak7fd
>>207
日本MSだよ
VSのサポートインシデントを使って
MSがバグと認めたらインシデントは消費しない
0211デフォルトの名無しさん
垢版 |
2019/02/06(水) 17:56:47.94ID:yK0c/OTQ
>>201
C#も同じだけど、ソースコードばらまくようなものだもん。ILspyみたいなフリーで高機能なのあるんだもん。
変数を分かりにくくする程度の難読化なんて俺から言わせれば無意味。

VB6はネイティブコンパイルできるから、ソースの可逆性がVCと同じくらい難易度高くなる。現にVCの難読化ソフトがないのはそーゆうこと。
0213デフォルトの名無しさん
垢版 |
2019/02/06(水) 18:50:07.27ID:yK0c/OTQ
>>212
分かってないな。
VB.netの文法や関数、クラスを変えることはできない。
外部dllなどを参照している場合、それを誤魔化すことはできない。
従って手間は掛かるけど、難読化なんて簡単に破れる。
なんか、最近だと一部のソースをC++の外部DLLに置き換えてしまう難読化ソフトがあるみたいだけど、本末転倒だと思うよ。
0215デフォルトの名無しさん
垢版 |
2019/02/07(木) 12:10:48.57ID:/tmgbETq
ActiveX DLLをファイル名だけでActivater.CreateInstanceする方法無いでしょうか?
前ブログで見たことあったと思うんですが
見つからなくて。
0218デフォルトの名無しさん
垢版 |
2019/02/18(月) 23:09:48.26ID:izV4xJWd
難読化だって? 先日、大企業のシステムアプリの不具合を報告したら、
「作成した担当者が辞めてしまって・・修正できません。」とか言うからね。
これって、他人のコードが読めないって言われてるのと同じだろ?
可読性wwww
0224デフォルトの名無しさん
垢版 |
2019/03/01(金) 13:59:48.75ID:WP+oH8uz
    / ̄ ̄ ̄ ̄\   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   (  人____)<   じゃ、10億円で
   |./  ー◎-◎-)  \______________
   (6     (_ _) )    カタカタカタ
   | .∴ ノ  3 ノ  ______
    ゝ       ノ  .|  | ̄ ̄\ \
   /       \__|  |    | ̄ ̄|
  /  \___      |  |    |__|
  | \      |つ    |__|__/ /
  /     ̄ ̄  | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕
 |       | ̄
0228デフォルトの名無しさん
垢版 |
2019/03/03(日) 09:00:13.95ID:dbXXzJ29
Accessで作った方が速いと言われてしまうのですが、実際どうなんでしょうか
0231デフォルトの名無しさん
垢版 |
2019/03/10(日) 00:53:07.03ID:Xug5O2kK
バイナリファイルを編集したいのですが、内容が書き換わりません。
どこが駄目なのでしょうか?

Private Sub btnWrite_Click(sender As Object, e As EventArgs) Handles btnWrite.Click

Using fs As New System.IO.FileStream(SaveFileName, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite)

Dim ByteArray(fs.Length - 1) As Byte
Dim CharParam() As Byte

fs.Read(ByteArray, 0, ByteArray.Length)

hoge = 100

ReDim CharParam(1)
CharParam(0) = hoge
Buffer.BlockCopy(BitConverter.GetBytes(CharParam(0)), 0, ByteArray, 75, BitConverter.GetBytes(CharParam(0)).Length)

fs.Write(ByteArray, 0, ByteArray.Length)

End Using

Call btnRead_Click(sender, e)

MsgBox("書込完了!!")

End Sub
0232デフォルトの名無しさん
垢版 |
2019/03/10(日) 01:14:12.25ID:EyJHBQRt
書き換わらないというか末尾に追記されてるよね?
Readした時点で一番最後ポイントしてるからそこでWriteしたら当然末尾に書かれるぞ
Position変更するかSeekするかしないと
0236デフォルトの名無しさん
垢版 |
2019/03/12(火) 22:00:03.99ID:nQMIHFtX
form1にcmbSkill0〜cmbSkill12というcomboBoxを配置してForm_Loadに以下のようなソースを書いたのですが
「オブジェクト参照がオブジェクト インスタンスに設定されていません。」というエラーが出ます。

vb6のコントロール配列のような処理がしたいのですが、何が悪いのでしょうか?

' 表示用の列を設定
For i = 0 To 12
CType(Me.Controls("cmbSkill" & i.ToString), ComboBox).DisplayMember = "items"
Next
0238デフォルトの名無しさん
垢版 |
2019/03/12(火) 23:22:19.14ID:p/ONOfms
GroupBox(gpb1)の上にComboBoxを貼り付けていたのが原因でした。
以下のように修正したら上手くいきました。お騒がせいたしました。

For i = 0 To 12
CType(Me.gpb1.Controls("cmbSkill" & i.ToString), ComboBox).DisplayMember = "items"
Next
0239デフォルトの名無しさん
垢版 |
2019/03/13(水) 22:18:53.03ID:H4W3SqSw
同じ値の入るDataTable(コンボボックス用)を12個用意して値を設定したいのですが
ループ処理でうまく処理する方法はないでしょうか?宜しくお願いします。

Dim dsskill1_0 As New DataTable
Dim dsskill1_1 As New DataTable

Dim dsskill1_12 As New DataTable

dsskill1_1.Columns.Add("items", GetType(String))
dsskill1_1.Columns.Add("key", GetType(Integer))
row = dsskill1_1.NewRow
row("items") = "なし"
row("key") = 0
dsskill1_1.Rows.Add(row)
row = dsskill1_1.NewRow
row("items") = "LV1"
row("key") = 1
dsskill1_1.Rows.Add(row)

dsskill1_2.Columns.Add("items", GetType(String))
dsskill1_2.Columns.Add("key", GetType(Integer))
row = dsskill1_2.NewRow
row("items") = "なし"
row("key") = 0
dsskill1_2.Rows.Add(row)
row = dsskill1_2.NewRow
row("items") = "LV1"
row("key") = 1
dsskill1_2.Rows.Add(row)
0242デフォルトの名無しさん
垢版 |
2019/03/14(木) 22:55:57.19ID:hVHukwdE
>>241
同じデータソースを設定したら、comboboxにselectedValueで設定するときに
combobox1-12全部同じ値が挿入されちゃいました。
0243デフォルトの名無しさん
垢版 |
2019/03/15(金) 08:38:00.32ID:G4fmj6rk
>>242
そうなるんだw
>>240 の言うようにコピーでしょ。
DataTableの作成のオーバーヘッドが小さいのなら、その都度作成してデータソースに入れるけど。
0247デフォルトの名無しさん
垢版 |
2019/04/10(水) 19:45:12.03ID:3k/2grcJ
For Each c As DataGridViewColumn In .DataGridView1.Columns
 c.SortMode = DataGridViewColumnSortMode.NotSortable
Next

このコードをLINQを駆使して1行で書けるのでしょうか?
0248デフォルトの名無しさん
垢版 |
2019/04/10(水) 20:37:28.62ID:GrAOtSj+
基本的にLINQは更新系には使わないので
CastしてToListしてForEachでできなくもないけど無意味だな
0249デフォルトの名無しさん
垢版 |
2019/04/10(水) 22:03:12.93ID:VgO1MWer
>>247
Datagridview1.Columns.Cast<DataGridViewColumn>().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable);

c# だけど、無理やり過ぎる
0250247
垢版 |
2019/04/11(木) 12:51:27.23ID:oQ2Viasg
余計見にくくなった気がしますので止めます
0251デフォルトの名無しさん
垢版 |
2019/04/11(木) 13:22:50.56ID:GR4ezT/u
いい洗濯だ。
0253デフォルトの名無しさん
垢版 |
2019/04/26(金) 09:49:24.87ID:mNIbZNQ0
bindingsourceのfilterを一時的に動かないようにできますか?
datasourceを変更したタイミングで自動的にfilterしてほしくないときがあって…
0254デフォルトの名無しさん
垢版 |
2019/04/26(金) 10:10:01.19ID:u4NAhbhS
一時的に動かないって、フィルタするかしないかしかないけど
それでいいんだったらRemoveFilterなりFilter = ""なりすればいい
0260デフォルトの名無しさん
垢版 |
2019/05/04(土) 20:20:50.05ID:HNqggbNT
スマホアプリで評価低いのは企業アプリ。
まあ評価をみて入社したならいいが、評価の低い企業には絶対入社しないわ!
0261デフォルトの名無しさん
垢版 |
2019/05/06(月) 17:37:15.54ID:ZmlQ5coO
>>258
VB.NET極めたら、特に困らんと思うけどね
VB.NETの案件もそれなりに有る
メンテ案件だけになりつつ有るJavaよりマシでは
0263デフォルトの名無しさん
垢版 |
2019/05/08(水) 16:31:28.04ID:c/vSyFIX
>>262
それも、気の毒な話。
プログラミングは才能だからね。まともに使えてる人は天文学者くらい。
0264デフォルトの名無しさん
垢版 |
2019/05/09(木) 04:32:54.75ID:lXVSCFrv
上司にvbやれっていわれてvbやりたくないで仕事になるの?
それで給料もらえる会社なら俺も入りたいな
0271デフォルトの名無しさん
垢版 |
2019/05/30(木) 14:29:05.95ID:tJr392xO
| l 区別つかないよぉ。
0272デフォルトの名無しさん
垢版 |
2019/05/31(金) 01:39:00.29ID:ThqY6BBQ
この話題といえば、、、

紛らわしい文字を区別するために現在フォントをConsolasにしてるのですが、他におすすめはありますか?

Consolasは、記号が多いC系の言語に結構合うと思っています。しかしVisual Basicは文章的に記述するので、もっと美しく表示できるフォントがありそうな気もします。Visual Basicにピッタリのフォントがあったら教えてください!
0276デフォルトの名無しさん
垢版 |
2019/06/03(月) 21:16:31.45ID:5BEAwe+l
oO0Oo0
0277デフォルトの名無しさん
垢版 |
2019/06/04(火) 03:00:01.11ID:Ez/jYayY
Consolasの日本語フォントリンクはいつになったらやってくれるのか
0282デフォルトの名無しさん
垢版 |
2019/06/09(日) 02:06:34.64ID:xdiihSDp
>>272
MyricaM (Inconsolataと日本語のMgen+のセット) ダウンロードして使ってる
Inconsolata はConsolas からインスピレーションを受けて作ったらしい
0284デフォルトの名無しさん
垢版 |
2019/06/15(土) 22:04:38.09ID:9bFZ43jF
あるツイート

VB.netアプリをWeb化する案件が最近今の会社で増えてるようで、技術的なアドバイスをしてほしい的な要請をもらうことがそこそこあるんだけど、大体みんな画面ができればシステムができると勘違いしてる そもそもそのシステムどうやってお客さんに使ってもらうの?
っていう話ですよ
0286デフォルトの名無しさん
垢版 |
2019/06/16(日) 01:19:59.82ID:MAb83vfA
UI設計が出来てるなら後は組むだけなので、あながち間違ってはいない。
静的な1枚絵じゃなく遷移図になってるなら
0289デフォルトの名無しさん
垢版 |
2019/06/16(日) 14:23:13.28ID:UANb65jp
ビジネスロジックが固まってないのにUI設計ばかり進める顧客の何と多い事か。
0292デフォルトの名無しさん
垢版 |
2019/06/16(日) 23:13:58.54ID:KDu8BvvS
>>289
それはね、ビジネスロジックって後からどうでもなる、と言う幻想が有るからだよ
肉じゃが作ろうとしてたのに、そうじゃ無い、カレーが欲しいんだ、と言って途中からカレールー入れても完璧なカレーにならないのと同じ
最初にどういう材料でどういうモノ欲しいの、と言うのが見えていない顧客は仕事依頼する資格は無い
でも代金払うのは俺たちだから言う事聞けよ、と言うのが日本の業界のダメな所
0293デフォルトの名無しさん
垢版 |
2019/06/17(月) 06:10:39.26ID:XJJFbeYT
>>292
肉じゃがを味付けする前なら普通にカレーになる
味付けした後でもカレールーじゃなくてカレースパイスと小麦粉で調理すればカレーになる
だが肉じゃがをコロッケにするにはかなりの手間が掛かる
肉じゃがをハンバーグにしろと言われたら逃走するのが一番だ
0295デフォルトの名無しさん
垢版 |
2019/06/17(月) 19:58:07.45ID:cD7mbF9V
現実はそもそも要件が料理名じゃなくて、いい感じに美味しい料理とか、そんなんだぞ
0297デフォルトの名無しさん
垢版 |
2019/06/17(月) 21:20:03.16ID:S5iUdCsl
パイソンを始めたら難しいな、どうなってるんだよ。
おいしいハンバーグさえ作れない。
0308デフォルトの名無しさん
垢版 |
2019/07/21(日) 14:49:18.47ID:aFljzYxL
スパゲティの達人曰く、gotoと書いてゴットと読ませる。
その心は神の指紋が読めない。
0313デフォルトの名無しさん
垢版 |
2019/08/13(火) 00:33:55.20ID:tNr353ET
shared変数ってvsのインテリセンスに出てこない気がするんですが仕様ですかね?
入力すると特にコンパイルエラーにはならないんですが地味に不便です。
0314デフォルトの名無しさん
垢版 |
2019/08/13(火) 01:27:49.72ID:M9RpYZGz
静的(共有)変数はインスタンスメンバーではないので
インスタンスのメンバー一覧にないのはむしろ当たり前ですよ。
0316デフォルトの名無しさん
垢版 |
2019/08/14(水) 23:27:56.46ID:H1tt8FvP
インテリセンスにでるのはインスタンスメンバーだけじゃないけどな

すくなくともCommunity 2019 では表示される
0317デフォルトの名無しさん
垢版 |
2019/08/14(水) 23:38:02.82ID:0eqzJUuy
>>316
そんなことは当たり前でしょw
0320デフォルトの名無しさん
垢版 |
2019/08/17(土) 00:47:28.62ID:BIFrhwCa
withって書くのは楽かもしれんがデバッグ時にマウスオーバーで値が取れないのでクソイラつきますね
そのままだとウォッチでも値取れないしソース上から抹殺したい
0323デフォルトの名無しさん
垢版 |
2019/08/18(日) 02:00:54.07ID:O0y/rCSE
with ってスコープ作成したっけ?

まあ今どきwithとか推奨しないけどな
つかスコープのためだけにwith使うとかないわ
その範囲でスコープ切るような必要があるなら、その部分外だししろよ
0324デフォルトの名無しさん
垢版 |
2019/08/18(日) 02:05:19.05ID:hLdq1MUi
もうVB自体使わないな
いや俺も2005まではVB派だったんよ
その後のVBの「進化」の方向は間違ってるとしか思えない

業務でVB強制されてる人は気の毒だよねw
0325デフォルトの名無しさん
垢版 |
2019/08/18(日) 02:50:55.10ID:IRt2qDNF
vbはvisual studioがなかったら死んでもやりたくないわ
visual studioとの親和性で生きながらえてると思う
0326デフォルトの名無しさん
垢版 |
2019/08/18(日) 09:51:53.97ID:wydgCTYv
言われなきゃ誤爆ってわからん。
VB.NET的な解決方法があるのかと思ったわ。
0328デフォルトの名無しさん
垢版 |
2019/08/20(火) 01:02:48.27ID:HcVBsnGG
vbは書けるけどvbaは書けない理由はVISUAL STUDIOで開発できるか否かの違いだと気づいたヘボグラマーです
0331デフォルトの名無しさん
垢版 |
2019/08/25(日) 00:22:40.01ID:i+jXmIxR
>>330
知らんので適当だけど、PasteSpecial の方を使ってクリップボード経由で
貼り付けた方が簡単じゃない?
0332デフォルトの名無しさん
垢版 |
2019/08/25(日) 00:38:53.19ID:j+w+TP60
>>331
確かにクリップボードを使えば簡単にできたんすが
それ以外の方法はないものかと思って。
自分以外の人も使うプログラムなので、あまりクリップボードを汚したくないなと。
0333デフォルトの名無しさん
垢版 |
2019/08/25(日) 01:10:21.22ID:i+jXmIxR
>>332
なら多分適当な場所に一時ファイル作ってそのパスを渡すしかないよね。

オフィスのオブジェクトモデルは90年代の設計だし、
画像データを引数で渡すって発想自体が多分ないのでは
0335デフォルトの名無しさん
垢版 |
2019/09/03(火) 06:31:57.93ID:Wh65onJo
自分でコピー操作してないのにクリップボードが勝手に置き換わるのは良くはないよ
0338デフォルトの名無しさん
垢版 |
2019/09/03(火) 11:13:32.44ID:lfqdFV+/
.netから1.batを呼び出して、さらに2.batファイルを呼び出したいんですが
1.batファイルにcall 2..batと記述しても呼び出せません
1.batファイルをダブルクリックでは2.batも動きました。
.net側の書き方はどのようにすればよいでしょうか
0341デフォルトの名無しさん
垢版 |
2019/09/03(火) 16:54:59.37ID:XjLsYCE+
普通1.BATが正常稼働したか確認して2.BATを実行するロジックをVB側に実装するモノだが
0342デフォルトの名無しさん
垢版 |
2019/09/04(水) 15:45:38.83ID:BrR+A7tN
>>330
貼り付けるものがimageコントロ―ルなら可能。
ShapeやPictureなら難しい。
imageコントロールならOleCreatePictureIndirectでいける。
VBAではいけた。
0343デフォルトの名無しさん
垢版 |
2019/09/15(日) 02:30:56.55ID:xVla+TCI
HttpListenerで簡易WEBサーバーを作っているのですが
HttpListenerRequestのContentEncodingが
デフォルトではシフトJISになっていて
QueryStringに日本語文字列を渡そうと思うと
シフトJISでURLエンコードしてやらないといけないようです。
UTF-8でURLエンコードして渡してやりたいので
HttpListenerRequestのContentEncodingをUTF-8に
変更する方法は無いものでしょうか?
0344デフォルトの名無しさん
垢版 |
2019/09/15(日) 13:24:01.68ID:e5i0rpht
・リクエストをPOSTにしてリクエストヘッダにContent-Typeでcharsetをつけたらいける
 (GETだとリクエストヘッダのContent-Type見ない)
・.NET Coreで作ればいける(既定のEncodingがUTF-8)
現実的な路線だとHttpListenerRequest::Url.Queryから自分で解析する
&でSplitして=でSplitしてSystem.Net.WebUtility.UrlDecodeするだけだから手間でもないだろう
0345デフォルトの名無しさん
垢版 |
2019/09/15(日) 14:16:06.62ID:xVla+TCI
>>344
ありがとうございます。設定変更はできないのですね。
Url.Queryから解析する方法でできました。ありがとうございました。
0346デフォルトの名無しさん
垢版 |
2019/09/21(土) 11:53:07.18ID:IqkFcyQH
Edge対応のWebViewというのを使ってみたのですが
TwitterやYoutubeのページを表示するとコントロール自体が消えてしまいます。
まだまだ使えるレベルじゃないのでしょうか?
EdgeはChromiumベースに変更になるらしいのでもう開発も止まってしまうのかなぁ。
0347デフォルトの名無しさん
垢版 |
2019/09/22(日) 17:40:23.81ID:SQSQEp+f
try ... Catch ex As Exceptionってあるけど。
Exceptionって全ての例外の総称なのかしらん。
この辺が激ムズなのよね。
0348デフォルトの名無しさん
垢版 |
2019/09/23(月) 17:18:44.15ID:pq0VywIb
他人、あるいは会社のHPに勝手にWEBリンクすると法律に抵触する可能性がある。
大企業の場合だと注意書きが書いてあり著作権侵害に発展しかねない。
自分でアプリを作って楽しむならいいが公開した場合は訴えたれる可能性が高い。
0350デフォルトの名無しさん
垢版 |
2019/10/06(日) 10:09:49.50ID:DbPNuBLu
DataTableやDataViewやDataRow等のクラスを使ってプログラム方法の詳細を学習したい
のに、本を見ても1〜2ページ程度で最も基礎なところくらいしか見つからないし、ネットでも
なかなか満足なページを見つけにくいもんで、良い情報源ないかいな。
会社のプログラムの改修で、現状はクライアント側でいくつかのDataTableを持っているところ
のソースコードを変更して、DataTableのAとBを結合するSQL文を使って、その結果のレコード
セットを得られる方法があるならしてみたいもんだが。
0353デフォルトの名無しさん
垢版 |
2019/10/06(日) 22:30:06.05ID:UvyBfzz+
そもそもDataTable等に対してSQLは発行できんよ
(なんかそういうサードパーティのライブラリはあるかもしれないけど)
一部メソッドでフィルタとかでSQLライクな記述ができる部分がある程度
今やるなら>>352の通りLINQ to DataTableになるだろうな
あるいは素直にDBに問い合わせなおすか
0354デフォルトの名無しさん
垢版 |
2019/10/22(火) 21:30:58.61ID:ZKwj8yiS
たんにDataTable間でリレーションってなら、DataRelationってのがあるにはあるが

SQLからデータテーブルつくるって話なら
そのSQLが単一テーブルからだろうが結合したテーブルからだろうが関係ないけど
0355デフォルトの名無しさん
垢版 |
2019/10/31(木) 11:35:00.73ID:n8yPI0vq
For Each f In dir.GetFiles(・・・
なぜか半年ほどに1度「URIが正しくありません」といった例外が
発生してしまう。単純にファイルを探すためにつかっているのだが。
やはり URIの.IsFileを使って調べるのが正解なのだろうか?

C#だと起きてないみたい。
0356デフォルトの名無しさん
垢版 |
2019/11/18(月) 13:27:10.45ID:BNRwZn6M
仕事でVB.NETを使う事になりました。
調べていると度々C#が引き合いに出されているのを見ますが、C派生のC#とVB派生のVB.NETに関連があるのは何故でしょうか?
0359デフォルトの名無しさん
垢版 |
2019/11/18(月) 20:22:35.17ID:20/9avkU
>>358
C#の方が何でも出来る、と言う話でマイクロソフトの営業がVB.NETよりC#を勧めるから
実際、C#でしか出来ない部分はほんの限られた分野だけと言う事実
.NET Core3.0ではVB.NETはLinux上でも動かせるし、ほとんど変わらんよ
0360デフォルトの名無しさん
垢版 |
2019/11/20(水) 12:02:41.91ID:fH/sx54n
ASP.NET CoreはVBをサポートしていなしする予定もないから、.NET CoreではVBを使ったWeb開発は不可だ
.NET 5での完全Core移行のロードマップにも入ってない
0362デフォルトの名無しさん
垢版 |
2019/11/20(水) 12:40:44.12ID:fH/sx54n
.NET5でVBでのWeb開発がサポートされるかは別にして、現にCore3ではVBでのWeb開発はできないわけで
少なくとも>>359の言う「ほとんど変わらんよ」は全くもって事実ではない
0365デフォルトの名無しさん
垢版 |
2019/11/21(木) 11:25:33.13ID:Bs6+HN1r
仮にASP.NET CoreでVBがサポートされたとしても、WebFormsが.NET Coreで使えないようにならない限りVBerには使えないんだけどね
まあWebのスキル不足問題はVBerに限らず業務系.NETer全般に言えることなのだが
0368デフォルトの名無しさん
垢版 |
2019/11/22(金) 09:59:51.23ID:627roQa/
>>366
何も違わないでしょ
VBerだってWebアプリ自体は普通に必要とされて(WebFormsで)作っているのだから、
それが無くなったら客の要望に答えられませんというのは完全に「スキル不足」でしかないよ
0369デフォルトの名無しさん
垢版 |
2019/11/23(土) 02:54:50.41ID:FzR28KQu
業務系とwebやってたやつが組み込みに来たけどVCCとGNDの違いすらわからず基板壊してしばかれてた
組み込みに来るなら基本的な電気知識くらいは知っとかないとモノ壊しちゃうからねぇ
0371デフォルトの名無しさん
垢版 |
2019/11/24(日) 03:07:04.67ID:MVc7P7wH
というか大半が回路図すら読めない
逆にハード屋はソフトも多少わかる人が多いというかソフトのことわかんないとメモリもバスもMPUも設計できないからね
0372デフォルトの名無しさん
垢版 |
2019/11/24(日) 07:20:42.15ID:sdn6bjxc
それは半導体屋だろ
組み込み基板を作ってるハード屋はソフトを知らなくても出来る
0373デフォルトの名無しさん
垢版 |
2019/11/24(日) 12:05:06.94ID:bu3J19Ko
.NET = .NET Coreではないし
.NET Core = ASP.NET でもないんだけどな
元質問もWEB開発だとは書いてないし

C#とVB.Netの最大の共通点は同じフレームワークとライブラリ群の上に成り立ってる
ある程度複数の言語ができる人から見れば、C#とVB.Netの言語仕様の違いは大したことではない
膨大なライブラリの使い方がほぼすべて(ただし、特定言語のみできる機能等の一部例外はある)
0375デフォルトの名無しさん
垢版 |
2019/12/15(日) 06:35:25.88ID:d49wrr2r
C#は一見C++を進化させた言語のように見せかけただけで、実体はVBの類似言語だろ。
0376デフォルトの名無しさん
垢版 |
2019/12/30(月) 17:18:46.95ID:as2clbLK
ネットで拾ったサンプルプログラムを変更して使ってます。
複数のタスクをiniファイルに保存して、そこから複数のタスクを読み込んで動くプログラムなのですが、
タスクを5個くらい保存して再度立ち上げるとプログラムが固まってしまうんです。
こういうのってどういう原因が考えられますか?
俺あまりプログラミングを理解してないのでよく分からなくて。
0377デフォルトの名無しさん
垢版 |
2019/12/30(月) 19:54:47.44ID:vvSvem59
デッドロックじゃね
書いた人のレベルが低いんだろうから参考にしなくていいよ
0378デフォルトの名無しさん
垢版 |
2019/12/30(月) 23:13:38.49ID:as2clbLK
>>377
デッドロックっていうのがあるんですね。
何かの処理が同時進行していいてデータの読み込み書き込みが上手く行かないみたいな事みたいですね。
そういうのあるかもしれないなと思うので考えてみようと思います。
ありがとうございます。
0379デフォルトの名無しさん
垢版 |
2019/12/31(火) 16:10:39.34ID:cY0IEvj4
>>376
デバッグ実行して固まったとこで一時停止
どこで止まったか、変数値、ステップ実行で流れ確認
などがまずやること
0380デフォルトの名無しさん
垢版 |
2019/12/31(火) 20:00:46.46ID:dsYBtKc+
>>379
ありがとうございます。
デバッグってやった事無いんですよねw
やり方とか調べてやってみます。
0382デフォルトの名無しさん
垢版 |
2019/12/31(火) 22:09:53.99ID:4f6x4OqL
単体テストちゃんと書いてればデバッグ実行なんて使わなくても十分作れるよ
ブビ専には自動テストなんてファンタジーだろうけど
0383デフォルトの名無しさん
垢版 |
2019/12/31(火) 23:09:01.96ID:x2VYFM2l
アホみたいな複雑なシーケンス図書いてデッドロックと格闘してドヤってる馬鹿いるよね
たかが業務アプリでそこまで複雑な制御が必要になるケースは本質的には稀なのだが、抽象的に物事を捉えられない奴は泥沼に嵌る
問題を無駄に複雑にしていると、傍からは仕事してるように見えるし本人にとっても気持ちがいいようだからたちが悪い
0384デフォルトの名無しさん
垢版 |
2020/01/03(金) 20:23:17.19ID:WsAD2wis
自動・単体テストなんか10年前に捨てたわ。ゴミ仕様。
デバックでバクを洗い出すほうが早いしな。
バグになりそうなコーディングだとわかってるなら、テストなんかしない。
バグを試すほうが早い。シーケンス図書いてる人のコーディングは
バグを見破りやすいのは事実。シーケンス図にない操作を見つければバグる。
こういう奴らは、エラーメッセージに不可解なものを書き出す。
「アプリケーション内でエラーが発生しました。」 ゴミグラマ
0385デフォルトの名無しさん
垢版 |
2020/01/05(日) 04:40:37.97ID:Bbmuqtw4
>デバックでバクを洗い出す
デバッグとはバグを修正する行為で、バグを発見する行為じゃないんだが

>バグになりそうなコーディングだとわかってるなら、テストなんかしない。
>バグを試すほうが早い。
バグを試すってなんだ?バグってないかどうか調べるのか?
それを普通はテストっていうんだが
0386デフォルトの名無しさん
垢版 |
2020/01/18(土) 19:56:22.49ID:QXbHSOnJ
バックグラウンドの処理のコードの書き方がわかりません。参考になるサイトなど教えてもらえないでしょうか?
0388デフォルトの名無しさん
垢版 |
2020/02/02(日) 11:35:31.85ID:npWsZ+Fn
>>386
VBならビジーループ+DoEventsでいいよ
どうせみんなそれしか理解できないんだし
Taskとかスレッドとか使いたいんならVBじゃなくC#でググれ
0389デフォルトの名無しさん
垢版 |
2020/02/02(日) 22:19:39.69ID:+BREnCUV
>>387
アドバイスありがとうございます!
BackgroundWorkerクラス使って、なんとか動きました。合わせてデリゲートのことも勉強できました。


>>388
ビジーループというのはどういったものでしょうか?ググったのですが出てこず…
0390デフォルトの名無しさん
垢版 |
2020/02/05(水) 23:52:14.80ID:62TBM+Ms
どなたか教えてください!
DataGridViewにデータベースから取得したデータを表示しているのですが少しお知恵をお願いしたいです。
コードは会社PCから書き込み出来ないのでのせれません。。

問題点
・DataGridViewデータの表示形式を、ボタン押すと%↔数値(%の値×250とかの固定値)に変換出来るようにしたのですが
変換に時間がかかってしまいます。どうしたら表示を速くできるかアドバイス頂きたいです。


状況が
・DataGridViewには列12、行900〜のデータ、日々データ蓄積されるため今後も増えます。
・変換時はDataGridViewのデータソースからデータテーブルへ取込み、セル毎に計算してデータテーブルへ値を入れ直し再度表示

原因はこの計算なのはわかるのですが、速くするための手段がわかりません。
現状はforでセル毎に回している感じです。。
0391デフォルトの名無しさん
垢版 |
2020/02/06(木) 00:32:18.02ID:9Rfp7Ulo
仮想モードを使う
仮想モードとはDataGridViewにデータをセットするのではなく
表示に必要になった時に発生するイベントの中でデータを用意する方法
0393デフォルトの名無しさん
垢版 |
2020/02/07(金) 07:59:39.07ID:gHkGAfG+
>>391
仮想モードというの初めてききました。ちょっと調べてみます!わからなかったらまた聞きにきますので、教えてもらえたらありがたいです。

>>392
やっぱり専用のテーブル増やして表示だけするのが簡単ですかね。
0394デフォルトの名無しさん
垢版 |
2020/02/07(金) 09:05:09.19ID:oDhJ5E1A
>>393
〉やっぱり専用のテーブル増やして表示だけするのが簡単ですかね。

じゃなくて、%と値の列を同じテーブルに横並びで作っておいて、表示非表示で切り替え
0395デフォルトの名無しさん
垢版 |
2020/02/08(土) 01:21:45.48ID:spBZd+Sf
コントロールから値を取得して計算してるってこと?
DatagridviewはDatatableを表示するだけで使った方がいい
0396デフォルトの名無しさん
垢版 |
2020/02/08(土) 12:09:25.90ID:MS5TuWa4
>>394
同じテーブルに%と数値の列をつくってあらがじめ計算
ボタンで表示を切り替えるというのは、どういう感じになるんでしょうか?

>>395
DATAGRIDのソースからデータテーブルに取込み計算してますが、これではDATAGRID上で計算するのと同じってことでしょうか?
0397デフォルトの名無しさん
垢版 |
2020/02/08(土) 16:34:55.00ID:CiNc1WcM
いやいやいや…
SQLで計算しろってことだろに…
あとColumns(x).VisibleのTrue/False
つーかこんなのも知らんでDataGridView使ってんの?
0398デフォルトの名無しさん
垢版 |
2020/02/09(日) 20:12:23.04ID:HbnexOjn
>>397
すいません、初めて知りました。
独学では限界ありまして…
いい参考書あったら教えてください。
0399デフォルトの名無しさん
垢版 |
2020/02/09(日) 21:50:27.02ID:CnyWsexv
>>398
俺だって独学だよ
helpでどんなプロパティやメソッドあるか調べたり使い方ググったり
sqlに関してはアクセスのデザイナで作った後sql表示にしてどういう風になるか調べたりしたけど
0400デフォルトの名無しさん
垢版 |
2020/02/09(日) 22:45:34.18ID:+V6eoytP
>>398
本屋で、自分に合った書き方のや、欲しい情報が載ってるのを探した方がいい
逆引きも有効
一ヶ月くらい立ち読みして検討しよう
0401デフォルトの名無しさん
垢版 |
2020/02/10(月) 01:08:11.17ID:2ykqGqzH
つーか学生じゃあるまいしプログラムを体系立って教わることなんてそうそうないだろ みんな独学で試行錯誤してるよ
0402デフォルトの名無しさん
垢版 |
2020/02/10(月) 01:28:41.21ID:b2KLkhwk
馬鹿は自分で学ぶことをしないから馬鹿なんだよ
0403デフォルトの名無しさん
垢版 |
2020/02/10(月) 03:41:41.15ID:bOGNGK8G
質問スレなのにみんな厳しいなw
まあ新しいクラスを使うときは一通りプロパティとメソッドを確認することをお勧めするよ
慣れてくると「こういうことするためのメソッドとかプロパティあんじゃね?」って感じで予想がつくようになる
0405デフォルトの名無しさん
垢版 |
2020/02/10(月) 20:50:21.39ID:P4uZgltV
>>404
すべては解決しなかった
0408デフォルトの名無しさん
垢版 |
2020/02/14(金) 21:33:11.93ID:uzQH2c7N
スレッドプールって、長時間かかるタスクを使うようにはできてないのでしょうか?
タスクの登録が簡単で便利だと思ったんですけど。
例えば1タスク処理に2分弱とかは長すぎでしょうか?
0410デフォルトの名無しさん
垢版 |
2020/02/15(土) 09:07:34.37ID:qovUVxTM
使えないわけではないけど使わない方がいい
そういう処理でTaskを作る場合はTaskCreationOptions.LongRunningを指定するといい
0411デフォルトの名無しさん
垢版 |
2020/02/16(日) 00:51:51.08ID:ftq71nMG
>>410
ありがとう 検索して試してみるね。

バックグラウンドは頻繁な再利用が激ムズで、途中で止まったりするし・・・
0412デフォルトの名無しさん
垢版 |
2020/02/24(月) 12:46:16.69ID:nBtir7lR
Taskの使い方がよくわからず未だにBackgroundWorkerから抜け出せない俺
C#用の並列処理プログラミングの解説本があったからVB.NETでも通じるかな?と思って買ってはみたけど
0414デフォルトの名無しさん
垢版 |
2020/02/24(月) 16:45:29.69ID:OWwFgx4m
平均的なVBerの大多数はasync/awaitを理解していないから覚えてもどうせ現場では使えないよ
ステップアップしたいならまずはVBer卒業を目標にしよう
0417デフォルトの名無しさん
垢版 |
2020/02/25(火) 13:34:07.79ID:9IyrqwVF
医療機関のシステムとかなら不具合で人殺せるでしょ
実際これまでに何人か殺されてても不思議はない
0419デフォルトの名無しさん
垢版 |
2020/02/27(木) 22:55:35.21ID:xOEU9Bmo
非同期って、確か「アプリが2秒以上フリーズしたみたいになったらバグ」
という概念があるユーザーが(確か80%以上占めてる)多いことから作った
とも言われてる。つまりタスク待ちに2秒待てない人が多いというわけ。
まあ ウエイト表示もバグだと認識する人が数パーセントいるとかいないとか・・
0420デフォルトの名無しさん
垢版 |
2020/02/28(金) 02:42:53.78ID:mnhKdSZb
ラジオは10秒前後で放送事故だからな、リアルタイムが求められる環境だと数秒でもだめじゃね
0421デフォルトの名無しさん
垢版 |
2020/03/10(火) 23:37:19.13ID:xskA7IgS
c#ならunityでゲーム開発もできるしXamarinでアプリ開発もできる
vbは色々と置き去りになってるな・・・
0422デフォルトの名無しさん
垢版 |
2020/03/11(水) 00:23:16.32ID:GqpGZ1Mw
MS公式のコメント「VBにはVBが得意なことをやらせていく。それはGUIアプリだ」らしいよ
つまりWinFormsと心中ってこと
0426デフォルトの名無しさん
垢版 |
2020/03/21(土) 17:03:50.80ID:VTVjP0EK
うーん VBで文字列うんたらに苦戦してた時
ハッシュ値で比較を行ってたな。こっちのほうが楽wwwてか?
VBer vbER vBeR VbEr VBer
0430デフォルトの名無しさん
垢版 |
2020/04/20(月) 12:52:39.83ID:VsS0xV8o
>>429
違う
今後VB.NETの言語に新機能を追加することはないよ、
仮に今後.NETに言語へ手を入れないと利用できない新機能が入ったとしても、VB.NETは対応しないよ、という趣旨の記事
ちなみに .NET 5 (=Core vNext)でVB.NETはサポートされるが、Classic ASP.NETは廃止されるのでWeb開発は一切できない
0432デフォルトの名無しさん
垢版 |
2020/04/22(水) 13:11:15.32ID:7hKP3waC
Razor使わないならOKじゃん

953 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 10:51:55.72 ID:NZfVsFFq
>>952
それは正確じゃない。Razorが対応してないだけ。

954 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 12:49:27.63 ID:7hKP3waC
Razor使わないならVB.NETでASP.NET構築出来るって事ね

955 名前:デフォルトの名無しさん[sage] 投稿日:2020/04/22(水) 12:55:16.39 ID:NZfVsFFq
そう、.NET5でもそれは変わらない
0437デフォルトの名無しさん
垢版 |
2020/04/26(日) 14:43:33.28ID:ecUYIEQ+
Monoプロジェクトで実際LinuxでVB.NET使って開発してる様な所って有るのかね?
あまり話聞かないし、案件探しても出て来ないよ
0443デフォルトの名無しさん
垢版 |
2020/04/29(水) 09:58:03.17ID:mDWjB1wT
最近見かけたんだけど
Dim aaa As (String, String)
こういうのって型は何になるの?
匿名クラスなの?配列?
0445デフォルトの名無しさん
垢版 |
2020/04/29(水) 11:57:07.06ID:mDWjB1wT
あぁ、ありがと。item1とかitem2とかあるからクラスかと思ったが構造体なのね。
0447デフォルトの名無しさん
垢版 |
2020/05/01(金) 20:30:50.40ID:cip99ITm
プロジェクトにフォームが2つあるのですが、その両方から参照する構造体の定義は
どこに書くのが一般的なのですか?クラスだと「追加」→「新しい項目」でクラスを選択できて
独立したファイルでクラスの定義をかけるのですが、構造体はどういうやり方が一般的なのでしょうか?
0448デフォルトの名無しさん
垢版 |
2020/05/01(金) 20:33:08.68ID:cip99ITm
ちなみに現在は2つのフォームのファイルの先頭で構造体を定義しています。やり方がスマートじゃない気がします。
0450デフォルトの名無しさん
垢版 |
2020/05/01(金) 20:44:20.47ID:yoq0hK+K
VB.NETでは構造体を使うこと自体が全く一般的ではない
C#では性質を十分に理解した上でパフォーマンス目的で構造体を使うことも稀にあるけど、
VB.NETでそんな最速を目指すようなものを作ることは無いだろう
クラスだけでいいよ
0451デフォルトの名無しさん
垢版 |
2020/05/01(金) 21:05:13.13ID:00XG9ArW
api呼ぶのに構造体なんていくらでも使うしそうでなくても構造体の配列とか普通に使うし
あと共用出来るメソッドはなるべくモジュールに書いてコントロールからはそれを呼び出すだけにしてる
0452448
垢版 |
2020/05/01(金) 21:25:29.62ID:cip99ITm
皆さん、ありがとうございます。>>449 さんのおっしゃるとおり、スコープを広げれば良さそうですね。
>>451さんの言うようにモジュールに書くのもいい感じですね。
>>450さん、VBではあまり構造体は使わないのですね。私の読んでる基礎入門書だから一通りの説明ということで載ってるのでしょうか。

皆さん、ありがとうございました。とりあえず、モジュールを追加してその中でpublic宣言して構造体を書いておきます。
0454デフォルトの名無しさん
垢版 |
2020/05/01(金) 22:14:01.29ID:jPGYGLkU
>>452
クラスと同じように1構造体に対して同じ名前のファイルを割り当てるのが基本だと思うよw

もちろん雑用的な小さな構造体やクラスやEnumや例外をまとめて一つのファイルに
書くこともある。

後でその方が分かりやす思ったらその時そう直せばいいだけ。
とりあえず構造体と同じ名前の専用のファイルを作った方がいいでしょ。
0455デフォルトの名無しさん
垢版 |
2020/05/02(土) 00:30:37.50ID:IPzoHZpp
>>450
馬鹿なのか?
0456デフォルトの名無しさん
垢版 |
2020/05/02(土) 05:38:07.67ID:KJskOYTt
Ruby では、普通の開発者は、Class を使う

わざわざ、Struct(Class Generator)を使うのは、
Rails などのフレームワークを作っている人だけ

ほぼ同じなのに、素人がわざわざ、Struct を使う理由もないし、
初心者用のテキストにも載っていない
0457デフォルトの名無しさん
垢版 |
2020/05/02(土) 11:51:52.07ID:TijFnmRA
RubyのStructとは別物なのでこのRubyキチガイは無視していいが、それはともかくVB.NETでは構造体は特別に理由がない限り使うべきではないというのは確か
APIくらいだね
それ以外でVB.NETで構造体が使われるのは、大抵は生え抜きVBerの癖だったりクラスはなんか難しそうなイメージによるもの
0458デフォルトの名無しさん
垢版 |
2020/05/02(土) 12:20:36.35ID:C/cU2Pk2
なんで宣言した上にNewしないといけないのかって感じで
クラスに嫌悪感持ってる老人がいるよな
0459デフォルトの名無しさん
垢版 |
2020/05/02(土) 12:23:36.53ID:IPzoHZpp
外部機器とのインターフェースとか他のDLLとか使ったことのない馬鹿が必死になって構造体を否定する
馬鹿が使わないからといって全員が使わないわけではない
0461デフォルトの名無しさん
垢版 |
2020/05/02(土) 15:01:27.49ID:k5W2smL8
ちょっと前C#スレの方で話題になった話だけど、プロパティーの型としては構造体の方が便利。

値型からわざわざイミュータブルにしなくても、ゲッター経由でメンバーを変更する
不適切な使い方を避けられるからね
0462デフォルトの名無しさん
垢版 |
2020/05/02(土) 15:45:14.98ID:lt4kIJ5o
VB.NETで構造体を使うべきでないなら、C#でも使うべきではないし
C#で構造体にすべき場面なら、VB.NETも構造体にすべき

VB.NETならとかいう前提をつけて構造体を使うなとかいうのは意味不明

まあ、初心者が違いが分からず悩んだら、たいていの場合はクラスで良いけどな
0463デフォルトの名無しさん
垢版 |
2020/05/02(土) 15:49:51.90ID:lt4kIJ5o
>>461
それはプロパティがイミュータブルであってほしいときに限らなくね?

すべてのプロパティはイミュータブルであるべきだって主張ならしらん
0464デフォルトの名無しさん
垢版 |
2020/05/02(土) 16:45:23.55ID:xKYh4A8p
こういうレスみてると、絶対にプログラマになりたいとおもわないな。
構造体つかうな!とか ストレス以外の何物でもない。
0465デフォルトの名無しさん
垢版 |
2020/05/02(土) 17:04:30.50ID:9Lg3EemN
まあVB.NETでやたら構造体を多用する奴はだいたい単に慣れてるからなのは事実
クラスがCOMだった時代で頭が止まってるんだよ
0466デフォルトの名無しさん
垢版 |
2020/05/02(土) 17:09:29.84ID:k5W2smL8
>>463
何を言ってるのか意味がわからないよw

プロパティーの型がミュータブルな参照型だと
hoge.Piyo.X = 5
みたいに書けてしまう問題があると言ってるんだけどw

Piyoの型が値型ならこういう書き方は許されない
0467デフォルトの名無しさん
垢版 |
2020/05/02(土) 18:38:59.19ID:lt4kIJ5o
>>466
だから、それを許したくないときの話だろうと言っている
すくなくとも文法上問題はないし、正常に動作する(それが狙った通りかどうかは知らんが)

それをやるべきではない/許すべきではないという主張は別の話だと
0468デフォルトの名無しさん
垢版 |
2020/05/02(土) 19:22:25.42ID:FZg5GNY0
>>467
もう何も言わないけど
hoge.Piyo.X = 5
なぜこれが許されることが問題なのか全然理解してないでしょw
こういうのはプログラミング始めて数か月の段階で理解すべき内容なんだけど
0469デフォルトの名無しさん
垢版 |
2020/05/02(土) 20:50:45.16ID:IPzoHZpp
>>468
馬鹿はそろそろ消えろ
構造体が必要な場面があるだろうが
0470デフォルトの名無しさん
垢版 |
2020/05/02(土) 20:56:07.76ID:FZg5GNY0
>>469
この子も酷いねw
だからそう言ってるんですがw
0475デフォルトの名無しさん
垢版 |
2020/05/03(日) 16:49:52.65ID:XzUWWqsm
んで結局構造体を使うな君は何で使うなって言ってるの?
C#やC++だったら使ってよくてVBだからダメとかそんな理由??
0476デフォルトの名無しさん
垢版 |
2020/05/03(日) 17:39:01.80ID:4AL78RwH
だから特別な理由なしに使うなって話でしょ
実際VBerは歴史的な理由から比較的そうなりやすい
0477デフォルトの名無しさん
垢版 |
2020/05/03(日) 18:11:09.31ID:Nh63+SyM
自分が使わないからと他人に押し付ける頭の悪いのがいるな。こういう頭の悪いやつはクラスの設計も独りよがりになりがち。
0479デフォルトの名無しさん
垢版 |
2020/05/03(日) 19:42:25.18ID:+mGec9Yp
意味不明だな
自分で定義するときにクラスとどちらを選ぶかの話だろ?
Pointが構造体なのは、それが単一の値を意味しているしサイズも小さいしアンマネージコードとの相互運用に使うし
パフォーマンスが求められる場面で大量にインスタンスを作るような使い方が想定されるからだ
そうやって説明できるなら構造体を使えばいい
0483デフォルトの名無しさん
垢版 |
2020/05/23(土) 20:06:08.36ID:95GpHqv3
WCFを利用したフォームアプリを作成したいのですが、疑問があります(初歩的ですみません)

今回フォームがログイン、メニュー・・・といった感じで複数画面あります。
ログイン画面作成時にWCFとログイン画面のフォームを作った場合、メニュー作成するときWCFは新規に作成する必要があるのでしょうか?
0484デフォルトの名無しさん
垢版 |
2020/05/25(月) 00:53:51.16ID:75tsCqjl
WCFはフレームワークであってWCFを作るという表現は意味不明
サービスのことならどっちでもいい
ちなみにWCFは.NETの次のバージョンでは廃止されるから、お前に選択権があるならやめるべき
0485デフォルトの名無しさん
垢版 |
2020/05/29(金) 17:09:45.32ID:5vHDJzPq
For iABC = 1 to 5
For i1 = 1 to 5
For XXYYZZ = 1 to 5
For 適当 = 1 to 5
みたいに毎回重複しない変数を用意しないとだから
指定回数ループする変数いらないヤツないの?
0486デフォルトの名無しさん
垢版 |
2020/05/29(金) 17:50:02.55ID:9O0dREg7
>>485
REXXだと正にそのものズバリの
Do 99
End
てのがあったんだけどねw
まあ普通ループカウンタの無いループの必要性ってあまり無いわな
0488デフォルトの名無しさん
垢版 |
2020/05/30(土) 18:44:40.27ID:umBvqxFr
LinqでRangeでForEachとか考えたけど、LinqのForEachってListしかだめなのかよ

Enumerable.Range(1, 5).ToList.ForEach(Sub() Debug.Print("Do!"))
素直にループ変数用意して回すほうがましだな
i,j,kぐらいで足らんようなら構造見直すべきだ
0491デフォルトの名無しさん
垢版 |
2020/06/03(水) 14:46:36.88ID:lsOJv1ox
Windows FormのボタンをButton配列で動的に設定している処理があったのですが
静的と動的はどのように使い分けているのでしょうか
ボタンの数が多かったのと関係しているのでしょうか
0492デフォルトの名無しさん
垢版 |
2020/06/03(水) 15:07:50.89ID:def00RCS
>>491
「Button配列で動的に設定している処理」が何やっているか読めよ
人によって組み方は変わるからここで聞いたって的外れな憶測しかできんよ
0493デフォルトの名無しさん
垢版 |
2020/06/03(水) 15:50:36.18ID:4wtvyY9A
デザイナでポンポン配置するのが面倒じゃなければ性的
こんな数配置してらんねーと思ったら動的
0495デフォルトの名無しさん
垢版 |
2020/06/03(水) 21:13:59.52ID:bZHkJmU/
毎回婦裸具をオッ立ててます
0497デフォルトの名無しさん
垢版 |
2020/06/12(金) 01:23:39.99ID:IFr8Enpr
しかし、自作アプリからプリンターに印刷するってこんなに難しいのか?
狙った場所に印刷が出来なくて・・・どうしよう・・
0498デフォルトの名無しさん
垢版 |
2020/06/12(金) 01:38:26.30ID:4psGVQqc
>>497
そんな難しくないと思うよw

もう何年もやってないから適当だけど、たぶんプリンタ固有の余白分ズレてるだけ。
GDI+の原点は用紙の左上ではなく、印刷可能領域の左上になってる。
この問題の対処法はググれば簡単に見つかるはず
0500デフォルトの名無しさん
垢版 |
2020/06/15(月) 01:19:49.90ID:rIWPArQR
Sub Main(args As String())で引数を渡さないで実行してもエラーにならない理由わかる方いませんか
0503デフォルトの名無しさん
垢版 |
2020/07/06(月) 19:38:36.21ID:fgkMQ2Bx
デザイン時に設定したプロパティの値(例ではTextBox1.Text)を実行時に取得する方法ってありませんか?
今はLoad時に変数に保存していますが、もっとスマートな方法は無いものかと…

Public Class Form1
   Dim defaulttext As String

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      defaulttext = TextBox1.Text
   End Sub
End Class
0504デフォルトの名無しさん
垢版 |
2020/07/07(火) 09:49:09.58ID:S3jLpbFZ
標準にはないね
汎用性を考えだすとIDisposableな型のプロパティとかどうするかって話になるし
0505デフォルトの名無しさん
垢版 |
2020/07/07(火) 12:25:34.75ID:pZRFuct6
>>503
それでいいじゃん。
そもそも発想が変だと思うよ。
たぶんデザイナをブラックボックスだと考えてるからそうなるんだと思うけど。
デザイナは単にコントロールのプロパティーを設定するコードを自動生成してるだけw
それがInitializeComponent

まあ、プロパティーをデザイナで直接設定する代わりに
スコープをアプリケーションにしたアプリケーション設定にバインドすればたぶんやりたいことは実現できる。
https://www.atmarkit.co.jp/fdotnet/dotnettips/438winsettings/winsettings.html
0506デフォルトの名無しさん
垢版 |
2020/07/07(火) 14:13:03.22ID:wq2UphxJ
そもそもデザイナの設定なんで、実行時どころかコンパイル時で決定してるのに
それをなぜ実行時にコントロールから取得する必要があるのか
0507デフォルトの名無しさん
垢版 |
2020/07/07(火) 18:21:35.43ID:sasngkCi
>>506
実行時に取得したくないからなんかないかってしつもんだぞ
0508503
垢版 |
2020/07/07(火) 20:39:38.96ID:sfvoUyQU
皆さんありがとうございます。
例えば、テキストボックスの内容を初期値に戻すリセットボタンを付ける時など
デザイン時に設定した値を変数を使わずに簡単に呼び出せたらと前々から思っていました。
リソースを使うのがセオリーと思いますが、小規模なプログラムだとデザイナで設定する方が手軽なので…

TextBox1.Text = (New Form1).TextBox1.Text
↑のように新たなインスタンスを作ることも思いつきましたが効率が悪そうなので
>>503のコードのままにしようと思います。
0509デフォルトの名無しさん
垢版 |
2020/07/07(火) 21:34:03.12ID:pZRFuct6
不特定のコントロールの不特定のプロパティーについて同様のことがしたいわけじゃなく、
特定のコントロールの特定のプロパティーで十分なら継承してResetTextみたいな
メソッドを追加しちゃうとすっきりするとは思う。
0510デフォルトの名無しさん
垢版 |
2020/07/07(火) 22:26:57.54ID:v9/yiQ7v
textboxならtextとtagに同じ値入れときゃいいんじゃね?
俺は内部からセットした時とユーザー入力区別するために使ってるけど
0511デフォルトの名無しさん
垢版 |
2020/07/08(水) 15:52:04.01ID:VvU4Rgja
tagってデザイン時に設定できたっけ?

結局起動後のユーザーコードでごちゃごちゃやるなら
用途に応じたコントロールに拡張すればってなるんじゃね
0512デフォルトの名無しさん
垢版 |
2020/07/08(水) 16:02:56.91ID:WXMpgQLP
デザイン時にも設定できるけどデザイン時に設定する仕様だと
絶対どこかで「TextとTag両方同じ値を設定」を忘れるから悪手
0513デフォルトの名無しさん
垢版 |
2020/07/08(水) 16:25:53.40ID:027Ge3m+
リセットボタンのClickイベントで、TextBoxに初期値をセットするコード書いて、
フォームのLoadイベントにも上記リセットClickを割当て(もしくはリセットClickを呼ぶコード書く)
同じことに実現できる気がしないこともない
0514デフォルトの名無しさん
垢版 |
2020/07/08(水) 19:32:20.68ID:VvU4Rgja
>>513
イベントハンドラから、違うイベントハンドラを直で呼ぶのは作法がよろしくない
初期化するプロシジャ書いて、リセットボタンのClickイベントとフォームのLoadイベントから呼べ
0521デフォルトの名無しさん
垢版 |
2020/09/10(木) 11:00:21.02ID:1IS0tpD0
アホみたいな質問ですが投下させてください。

VBによって作られたソフトの改造業務をやることになったのですが
Propertyについての理解がネット記事を読んでも理解できません。

<宣言サンプル>
Public Structure ABC

Public Property SAMPLE(ByVal LONG as long) as boolean
Get
Return CBool(LONG And 0x0010)
End Get
Set(ByVal value as boolean)
'なにもしない
   End Set
End Property

End Structure

<実装サンプル>
For i=1 To 5
Strings = IIF(ABC.SAMPLE(i),"OK",NG")
Next

一部処理を省略していますが、
特定条件下で入るSAMPLEパラメータを基にして
条件分岐してるみたいですが
GETとSETの違いが全く理解できず
実装サンプルの構文の意味が理解できません。

初心者で申し訳ありませんが何卒ご教示お願いしまs
0523デフォルトの名無しさん
垢版 |
2020/09/10(木) 17:07:50.68ID:HD/UycmT
作りが悪い気がするけど、なにもしてないんだから
Set側無視してたんなる関数だと思っていいんじゃね
0525デフォルトの名無しさん
垢版 |
2020/09/13(日) 00:23:00.92ID:TFaD5/iw
ASP.NET+SQLServer2019でWebアプリ作ったんだけど、デバッグでDB接続はうまくいくのに、発行してIISから参照するとDB接続が失敗して困ってる。
0526デフォルトの名無しさん
垢版 |
2020/09/13(日) 14:54:38.22ID:xeL9byBp
参照先が正しく設定できてないときは、確かプロジェクトフォルダ内ファイルを参照
することが多い。したがってデバック時にエラーが出ない。
そういう時は、参照先をすべてチェックするといい。
0527525
垢版 |
2020/09/14(月) 17:07:20.83ID:ayzmQ3GL
ちょっと詳しい人に聞いたら、SQLServer側の問題だった。
あと、凝ったことやろうとするとJavascriptも使えないとダメだな。
0528デフォルトの名無しさん
垢版 |
2020/09/16(水) 10:53:00.65ID:57F1eHvg
素人質問で申し訳ありませんが再度書込させていただきます。
VB2008にて、
「ボタンを押した時、既にEXCELが起動していたら終了する」処理をやらせたいのですが、
EXCELが起動していない時に実行するとエラーになってしまいます。
ネットとかで試してみたりしたのですが、うまくいきません。
EXCELが起動しているかどうかのプロパティなど、わかる方いたらご教示ください。

サンプル
<宣言>
Public ExAppli As Excel.Application 'Excel Object
Public ExBook As Excel.Workbook 'Excel Workbook Object
Public ExSheet As Excel.Worksheet 'Excel Worksheet Object
  Const FilePath As String ="C:\STRAGE\"

<構文@>
Public Function ExcelOpen(ByVal FilePath As String) As Boolean
ExAppli = CreateObject("Excel.Application") 'EXCEL Objectの作成
ExAppli.Visible = False 'アプリケーションの非表示
ExBook = ExAppli.Workbooks.Open(FilePath) 'ファイルを開く
ExAppli.Visible = True 'アプリケーションを表示
End Function

<構文A>
Public Function ExcelClose() As Boolean
'EXCEL起動のチェックがしたい
If Cbool(ExAppli.Active) = True Then
ExAppli.Quit() 'EXCEL終了
Else
'エラーメッセージ
End If
End Function
0532デフォルトの名無しさん
垢版 |
2020/10/07(水) 21:30:27.59ID:ZJ/MXczd
MSChartのグラフ部分を拡大縮小できるように拡張メタファイルを直接生成する関数やライブラリってありますでしょうか?
0533デフォルトの名無しさん
垢版 |
2020/10/08(木) 05:23:50.50ID:GTaO2d9W
MSChartのグラフ部分を拡大縮小できるようにって部分はちょっと意図を読めないけど
拡張メタファイルはSystem.Drawing.Imaging.Metafileを使えば作れるよ
New Metafile(Stream or String, ほかいろいろ)した後、Graphics.FromImage(meta)で作ったGraphicsに書き込んでいけばいい
Graphicsの各種メソッド呼び出すだけで自動的にファイルに書き込まれていく 逆にSaveメソッドはpngにしかならないので呼んじゃダメ
New Metafileの第2引数にデバイスコンテキスト要求されるけど
これはダミーのBitmap作ってGraphics.FromImage()からGetHdc()するとか
フォームアプリならthis.CreateGraphics()からGetHdc()するとか
0534デフォルトの名無しさん
垢版 |
2020/10/08(木) 12:42:30.49ID:PTmOp2GP
>>532
使ったことないけど、佐藤さんの作ったヘルプファイルを見た感じ
SaveImageで一発で出来るように思うんだけど違うの?

>>533
そこの意図は明瞭でしょ
EMFの利点はベクター形式だってことなんだからw
0535デフォルトの名無しさん
垢版 |
2020/10/08(木) 13:44:07.81ID:3btmZKnR
MSChartのグラフ部分を(拡大縮小できるように)拡張メタファイルに出力する
こうか 読み違えてたわ
0536デフォルトの名無しさん
垢版 |
2020/10/08(木) 23:31:16.63ID:/6L+tlPV
>>533 >>534
返信ありがとうございます!Saveimageでばっちりできました。直接お絵描きする必要無かったです。
0537デフォルトの名無しさん
垢版 |
2020/10/24(土) 15:30:50.53ID:P9kP7iSR
ASP.NETで作ったWebアプリがpc、AndroidのChromeでは動くのに
iPhoneのChrome、safariではボタン押しても正常に動作しない。
どうしてだろう?
0538デフォルトの名無しさん
垢版 |
2020/10/24(土) 15:44:00.66ID:P9kP7iSR
あとGoogleの検索エンジンに全く引っかからない。
一応、headタグや見出しにSEO対策したつもりだが、、
0539デフォルトの名無しさん
垢版 |
2020/10/27(火) 19:32:20.87ID:bFDGidnH
まあ、お前が分からないのなら
他に分かるやつなんていないよ
0540デフォルトの名無しさん
垢版 |
2021/01/17(日) 13:10:16.16ID:XppeH8WH
教えてください。
VB.netです。
inkeditでtext-alignを触りたい時はどうすればいいですか?
文字を真ん中に持っていきたいと思っています。
0541デフォルトの名無しさん
垢版 |
2021/01/18(月) 10:46:27.50ID:G8032nPp
ES_CENTERつけても無視されたからInkEdit単体だと多分無理
雑にやるなら上端にTextBox重ねるとか
0543デフォルトの名無しさん
垢版 |
2021/01/20(水) 18:57:07.25ID:JnS7W0cK
>>540
全選択の意味がわかりません。いろいろやってみましたがわかりませんでした。
教えてください。
0544デフォルトの名無しさん
垢版 |
2021/01/20(水) 19:07:52.98ID:JnS7W0cK
>>540
スミマセン。
InkEdit1.SelectionAlignment = HorizontalAlignment.Center
でできました。
でもカーソルが邪魔です。カーソルは消せないですよね。
0545デフォルトの名無しさん
垢版 |
2021/01/22(金) 23:20:03.70ID:05kTt1yA
アクセス許可の権限範囲がいまだに理解できない俺。
Authenticated Users  この権限は理解に苦しむ。
0546sage
垢版 |
2021/01/24(日) 23:05:38.57ID:70iKnrYl
inkpictureのstrokeをGetPixelで色を収得したいのですが、どうすればいいですか?
0547デフォルトの名無しさん
垢版 |
2021/02/02(火) 16:58:04.73ID:KLUL/+Qk
ADO.NETの操作について詳しいサイトありましたら紹介してもらえませんでしょうか?
0552デフォルトの名無しさん
垢版 |
2021/02/12(金) 19:08:48.57ID:EzzdzoPL
>>551
Control.Invoke使ってもいいけど今時はその「cmdの結果」
を返すメソッドを非同期メソッドにするだけだよ
0554デフォルトの名無しさん
垢版 |
2021/02/12(金) 19:16:01.10ID:faW+M87N
>>552
ttps://dobon.net/vb/dotnet/process/standardoutput.html

ここの複数コマンドのみてるけどこの処理とは違うの?
0557デフォルトの名無しさん
垢版 |
2021/02/12(金) 21:00:41.51ID:7M5mWl4U
>>556
非同期で呼び出されるイベントハンドラで結果がもらえるコードみたいだだから
非同期メソッドにはしづらいね。

例えばフォームにこんなメソッドを用意して、
Private Sub OnUIThread(a As Action)
  BeginInvoke(a)
End Sub

イベントハンドラで
OnUIThread(
Sub()
  TextBox1.Text = "hoge"
End Sub)
みたいにやればいいんじゃないの?
0558デフォルトの名無しさん
垢版 |
2021/02/12(金) 21:09:14.42ID:7M5mWl4U
しかしVBのラムダ式は酷いねw
昔VB好きだったけどこれが嫌でC#に乗り換えた人いっぱいいると思うわ
0559デフォルトの名無しさん
垢版 |
2021/02/14(日) 10:17:02.39ID:p2XUJg0+
Picturebox1に円を描いた後、Button1で円を追加したいと思います。
以下のコードだと前の円が消えてしまうのですが、どうすればいいですか?
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim g As Graphics = Graphics.FromImage(canvas)
g.DrawArc(Pens.Black, 20, 20, 20, 20, 0, 360)
PictureBox1.Image = canvas
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
Dim g As Graphics = Graphics.FromImage(canvas)
g.DrawArc(Pens.Black, 20, 20, 10, 10, 0, 360)
PictureBox1.Image = canvas
End Sub
0560デフォルトの名無しさん
垢版 |
2021/02/14(日) 10:54:41.13ID:uBaPwBqa
>>559
内容理解せずコピペだけでコード書く人?
>Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
>PictureBox1.Image = canvas
新しい「canvas」を自分で用意してPictureBox1.Imageを差し替えているんだから前に描いた部分が無くなるのは当たり前
Graphics.FromImage(PictureBox1.Image)に描かないと
0562デフォルトの名無しさん
垢版 |
2021/02/15(月) 14:10:16.04ID:5FnD09yO
Dim i as Integer
i =6

Dim sBox as TextBox
sBox.Text = "aaa"

これですと、上のiでは何ともないですが、下のsBoxには
「値が割り当てられる前に〜」と警告が付きます。
警告が付いたら
= New TextBoxをつけて、
sBox.Disposeで閉めればいいと考えていますが、
どれにNewをつけるとか付けないとかの区別について教えてください
0563デフォルトの名無しさん
垢版 |
2021/02/15(月) 14:48:46.22ID:8oqgKRR4
そもそも上下で明らかに違うじゃん
上は変数への代入で下は変数のプロパティへの代入
上に合わせるなら下は
Dim sBox as TextBox
sBox = New TextBox
でしょ
0564デフォルトの名無しさん
垢版 |
2021/02/15(月) 15:38:10.60ID:99lDenvk
>>562
それを理解するためには構造体(値型)とクラス(参照型)の違いを理解する必要がある。

これは余計なお世話だけど、そのレベルの初心者なら今からでもC#に乗り換えた方がいいよ。
VBでもC#でも習得の難易度は違わない。今あえてVBを選択する理由はないよ。
0565デフォルトの名無しさん
垢版 |
2021/02/15(月) 21:44:03.49ID:9tCXcZYT
Disposeが正確に書けてるかは自信ない。
無駄に書いてることもあるかも知れないし、必要なのに書いてないけど悪い影響なく動いてたり。
0566デフォルトの名無しさん
垢版 |
2021/02/15(月) 22:09:14.54ID:JE19der5
下手にvb出来るとvb6からの置き換えとかいう定番のクソPJにぶち込まれる可能性があるぞ
0568デフォルトの名無しさん
垢版 |
2021/02/22(月) 09:27:56.84ID:vXu6VXfd
VBFormのブラックボックスな実装に依存してるから
WinFormは.NET Frameworkベースだからブラックボックスは使えない

互換性保とうにも、イベントハンドラの実装なんか別物に変化してるんで
不可能だと判断されたのだろう
0569デフォルトの名無しさん
垢版 |
2021/02/23(火) 08:50:50.19ID:NUvCbrOs
昔の書籍のVB5でゲーム作ろうとか
VB6でDirectX7ゲーム作ろうとか持ってるけど
.NETでは全く違うのかね?

BitBLTとかも使えなくなってんの?
DirectXはVBからの使い方のルールも違うのかね?
0570デフォルトの名無しさん
垢版 |
2021/02/24(水) 11:14:45.88ID:yk917ZdG
BitBltはWindowsAPIだからインポートすれば使えるがアンマネージになるのでめんどくさい
.NETのGraphicsライブラリの使い方覚えるほうがずっと楽

DirectXも同様。色々ラッパーも有るけどオワコンも多い
.NETでゲーム作りたいならUnitiyでも覚えたほうがいいんじゃないかな
0571デフォルトの名無しさん
垢版 |
2021/02/24(水) 11:54:14.87ID:BstpO7i2
unityとかどんどん肥大化するから使いたくない
VSだって肥大化してるからVS2008やcode使ってる
0574デフォルトの名無しさん
垢版 |
2021/02/28(日) 18:05:38.62ID:HFC/+izz
音声認識について教えてください。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
reco.SetInputToDefaultAudioDevice()
Dim gram As New Recognition.SrgsGrammar.SrgsDocument
Dim Rule As New Recognition.SrgsGrammar.SrgsRule("color")
Dim List As New Recognition.SrgsGrammar.SrgsOneOf("red", "green", "blue")
Rule.Add(List)
gram.Rules.Add(Rule)
gram.Root = Rule
reco.LoadGrammar(New Recognition.Grammar(gram))
reco.RecognizeAsync()
End Sub

Private Sub reco_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.RecognitionEventArgs) Handles reco.SpeechRecognized
Select Case e.Result.Text
Case "red"
SetColor(Color.Red)
Case "green"
SetColor(Color.Green)
Case "blue"
SetColor(Color.Blue)
End Select
End Sub

これの"red", "green", "blue"を
a(1)="red"
a(2)="green"
a(3)="blue"

というデータから読み取りたいと思います。
どうすればいいですか?
0576デフォルトの名無しさん
垢版 |
2021/02/28(日) 19:40:09.89ID:HFC/+izz
どのようにAddすればいいですか?
Dim a(100) As Recognition.SrgsGrammar.SrgsItem
a(1) = SrgsGrammar.SrgsItem("red")
List.Add(a(1))
0577デフォルトの名無しさん
垢版 |
2021/02/28(日) 20:09:34.72ID:ReKePojt
こんなんだろ多分
Dim oneOf = New SrgsOneOf()
For Each word In words
oneOf.Add(New SrgsItem(word))
Next
List.Add(oneOf)
0578デフォルトの名無しさん
垢版 |
2021/02/28(日) 22:36:09.00ID:HFC/+izz
返信ありがとうございます。
List.Add(oneOf)
のoneOfで
「型SrgsOneOfの値をSrgsItemに変換できません。」
というエラーが出ます。
教えてください。
0580デフォルトの名無しさん
垢版 |
2021/03/03(水) 20:39:29.57ID:FWifKpzu
ディクテーションで、なぜか
”he" だけ認識しない。
発音が悪いだけでしょうか。
"heel"とか"she”とか"what"は認識します。
0581デフォルトの名無しさん
垢版 |
2021/03/03(水) 20:47:48.28ID:NQNDMH5/
頭も悪いと思うよ
0582デフォルトの名無しさん
垢版 |
2021/03/05(金) 08:31:54.32ID:TerEZabb
質問させてください。
VB.net2010にてAcrobat sdkを使用し、デスクトップに保存しているpdfを
ボタンを押すとPanel1に表示するプログラムを作成しました。

Dim pdfOcx As New AxAcroPDFLib.AxAcroPDF
Dim sFile as string = "C:\temp\a.pdf"
pdfOcx.Dock = DockStyle.Fill
Panel1.Controls.Add(pdfOcx)
pdfOcx.LoadFile(sFile)

次の条件において確実にアプリが落ちてしまいます。(vb.netではエラーログ無し)
・PDF表示後、アプリを5分程度放置してもう一度PDFを表示させる。
Windowsのログには必ず次のエラーが記録されます。
障害が発生しているモジュール名: ntdll.dll、バージョン: 10.0.19041.844、タイム スタンプ: 0xa9ac4e88
例外コード: 0xc0000005

開くPDFを別のものに変えても発生します。
Acrobat sdkを使用せずWebBrowserで表示させても発生します。

恐縮ですが、何か原因は考えられるでしょうか?
よろしくお願いします。
0583デフォルトの名無しさん
垢版 |
2021/03/05(金) 15:31:35.57ID:g515SU59
0xc0000005はアクセス違反
…解放済みのメモリのアクセスしたりすると起こる
OCXがウンコっぽいのでどうにもならないかもしれない
0587586
垢版 |
2021/04/02(金) 16:45:34.04ID:xNBuYvES
youtubeで検索したら英語、C#ですがやり方が出てきました。
0592デフォルトの名無しさん
垢版 |
2021/04/06(火) 20:47:58.45ID:M/BjHe5K
VBってnullable referenceすら追加してもらえなくなったし
もう保守しかないんじゃ
0594デフォルトの名無しさん
垢版 |
2021/04/06(火) 21:15:07.65ID:34VhPfz+
VBの役割はVS2005の時代で終わってると思うよ。
2008以降も使ってるところは正直どうかしてると思う。
0595デフォルトの名無しさん
垢版 |
2021/04/06(火) 21:44:34.37ID:A8jxxYnR
VB.NETプロジェクトをC#プロジェクトにソースレベルでコンバート出来るようにならない限りは…
0596デフォルトの名無しさん
垢版 |
2021/04/07(水) 10:08:48.70ID:RzHskyO4
>>593,594
新機能なんて不要
既存機能でシステム構築出来れば案件も出て来る
出来る範囲の広いC#は意外とビジネスロジックには機能過多だし
VB.NETはCOBOLみたいにレガシーになるのさ
0602デフォルトの名無しさん
垢版 |
2021/04/08(木) 10:46:46.37ID:30DrVK+s
VBで出来る事はC#で出来る
C#しか出来ないのはゲームプログラミングや制御プログラミング
ビジネスロジックにはそんなモノ必要無い
0604デフォルトの名無しさん
垢版 |
2021/04/08(木) 11:20:19.42ID:LXJcVTVi
C#の機能がビジネスロジックに不要であるという主張に具体性がなさすぎてなんとも
明らかな反例だけは出ていて、意図せぬnullの混入がビジネスロジックにとって極めて有害であることは君自身が認めている通りだ
実際VBerって参照型を正しく理解してない奴多いし、nullが嫌だからと構造体を好んで使う馬鹿な現場もよくある
むしろVBにこそ必要な機能だと思うけどね
0605デフォルトの名無しさん
垢版 |
2021/04/08(木) 11:35:10.81ID:30DrVK+s
>>604
>>602で書いてる通りC#の便利過ぎる機能はビジネスロジックに使うかは施主による
でも大概のビジネスシステムではVB.NETの機能だけで実装出来る
それをVBプログラマ自身も自覚して無い問題は有る
0606デフォルトの名無しさん
垢版 |
2021/04/08(木) 11:40:01.45ID:30DrVK+s
要はnull非許容にするにも方法は他にも有るから何とでもなる
それを明確に実装ルール化してる現場は幸せ、だと言う事
ルール化してない現場は有象無象のプログラムが出来て混乱する元
0607デフォルトの名無しさん
垢版 |
2021/04/08(木) 12:23:57.08ID:cBp1Cxoy
そらCOBOLでも業務システムは作れるし、C++でも正しく使えば安全なシステムは作れるわな
あんたが言ってるのはそれだけのことでしかない
0608デフォルトの名無しさん
垢版 |
2021/04/08(木) 12:38:40.49ID:30DrVK+s
>>607
分かってるよ
でもC#使いにVB.NET言語仕様をdisられる必要は無いと思ってる
要は分かって言語使えば良い、って事だよ
0613デフォルトの名無しさん
垢版 |
2021/04/08(木) 21:01:48.57ID:z/gPOoTy
>>612
馬鹿の典型例
0617デフォルトの名無しさん
垢版 |
2021/04/18(日) 14:27:57.20ID:6PVtNKAE
APサーバー-----Windowsサーバー
実装言語---------VB.NET
DBサーバー-----Linux(MySQL)

VB.NETからデータベース(MySQL)に接続する方法はODBC経由しか無いのでしょうか?

ADO.NET経由での接続も可能ですか?
0619デフォルトの名無しさん
垢版 |
2021/04/20(火) 15:03:07.09ID:oemRn1Bu
>>617
APサーバーがWindowsでDBサーバーがLinuxねえ、、
UbuntuにでもMySQLインストールするのかね
APサーバーもUbuntuにしてASP.NET Coreインストールする方がスッキリするんでは無いのかな?
0620デフォルトの名無しさん
垢版 |
2021/04/20(火) 17:27:51.51ID:9RGA0kSa
>>619
APサーバのCALが払える企業ならね
実際問題、Linuxに移行出来るなら、その方が良いだろうね
.NET5でVB.NETも普通に動くし
0623デフォルトの名無しさん
垢版 |
2021/05/19(水) 01:06:33.22ID:mf/RT69h
vbの仕事なんて腐ったシステムのお守りかvb6からのバージョンアップとかそういうクソ案件しか聞かないんだが・・・
0627デフォルトの名無しさん
垢版 |
2021/05/30(日) 20:04:49.07ID:IYhCgCcB
form1とform2があり、form2のボタン投下時にテストファイルに書き込むものを作ってます。
別classに書き込むコードを書きたいのですが、form自体をを引数にすることなく、form1とform2のTextBoxやLabelやらの値を使用したい場合ってどうすればいいですか?複数コントロールがある為困ってます。
0628デフォルトの名無しさん
垢版 |
2021/05/31(月) 16:41:36.97ID:uVxwOop1
>>627
地道にForm1のラベルやテキストボックスの値をPublicなワークエリアに保存する様に実装するしか無いよ
0631デフォルトの名無しさん
垢版 |
2021/05/31(月) 22:50:13.59ID:Puq8NKSh
必要な値を直接引数で渡せばいいのに、何で「form自体をを引数」だの「Publicなワークエリアに保存する」
だの「モj」だのという謎の発想になるのw

もうマジ意味不明過ぎるwwww
0633デフォルトの名無しさん
垢版 |
2021/06/01(火) 00:09:02.35ID:mzNrSMac
>>632
なるほど「モj」は必要なパラメータを自動的に減らしてくれる魔法なのか
頭良すぎてついてけいないねw

こういう訳分からん思考回路の人はプログラミング向いてないよほんと
適性ゼロ
0638デフォルトの名無しさん
垢版 |
2021/06/13(日) 23:49:12.43ID:QeM7ycnl
そもそも VB や C# ごときの言語仕様でイミュータブルとかアホくさ。

Windows OS を構成する膨大な Native DLL を .NET 言語でラッパしたのが
.NET Framework であり、それを容易に呼び出せるのが VB.NET, C# っていうだけだろ。

暴論をいうと Windows OS の機能を使うための言語なんだから、一般的な言語哲学を語ってもしょうがない。
.NET のコンパイルはバイナリを吐かない。吐くのは中間言語だ。

メモリマップトな考え方をしたいなら、Native で書けばいい。
0639デフォルトの名無しさん
垢版 |
2021/06/13(日) 23:52:34.49ID:QeM7ycnl
VB.NET の良いところは、簡単で並大抵のことはすぐにかけてしまう。
だから横着をして、本来なら演算子を使うべきところを謎関数を使って、汚いコードになってしまうこと。

自分のことだが。。
0640デフォルトの名無しさん
垢版 |
2021/06/13(日) 23:53:54.89ID:QeM7ycnl
VBに限った話ではないが、フレームワークの機能を使わなくても本来なら
言語仕様の範囲で書けてしまうところを、横着して謎関数を使って、無駄に長くなり、

それだけならいいが、謎関数を使わないと書けなくなってしまう(ASCII変換あたり)
人が出てくることかなぁ?
0641デフォルトの名無しさん
垢版 |
2021/06/14(月) 00:00:52.40ID:ldo219Dq
.NET5 は Linux で動くのは魅力だが、 .NET4 で書いたコードを移植するのが面倒くさそう。
ドップリ Framework 依存の、画面関係なんか壊滅的だろうな(移植する気もないんだろうが)
0642デフォルトの名無しさん
垢版 |
2021/06/14(月) 20:05:38.07ID:BmiJqBp+
VBAからの乗り換えは大変ですか?
同じ大変さならC#にしようかなと...
0643デフォルトの名無しさん
垢版 |
2021/06/15(火) 09:09:08.08ID:ps5H5pVN
個人的には
・全然違う言語なのに半端にVBAに似ててかえって混乱する
・検索結果にVBAや旧VBのものが混ざって見分ける必要がある(特にWindowsAPI呼び出し)
・ネットに転がってるサンプルはC#のほうがだいぶ多い
のでC#から始めたほうが良いと思うな
C#に慣れればVB.NETも自然に読み書きできるようになるし(ラムダ式とかでイライラしそうだけど)
0644デフォルトの名無しさん
垢版 |
2021/06/15(火) 10:15:31.90ID:uKVr/+B+
VB6→C#、VB6→VB.NETどちらも手間は変わらんよ
今はC#でもVB.NETでも出来る事はほとんど同じだよ
0645デフォルトの名無しさん
垢版 |
2021/06/16(水) 03:28:43.34ID:e0jf5g/s
下手にVBできるって言っちゃうとクソプロジェクトにアサインされるので言わないようにしてる
マジでVBのシステムでまともなの見たことない マジで
メンバーも向上心ゼロの無気力おっさんばっかだし・・・
0646デフォルトの名無しさん
垢版 |
2021/06/16(水) 06:56:25.40ID:OhC4hyYk
なぜプロジェクトに参加しないのにわかるのか
近くにいるのかもしれないがよく見てて暇なのかな?w
0647642
垢版 |
2021/06/16(水) 15:10:35.10ID:lDALpvxr
>>643
>>644
ありがとうございます。
0648デフォルトの名無しさん
垢版 |
2021/07/14(水) 09:31:14.70ID:jLoTFlk8
個人の趣味でWindowsアプリ作るのが目的だったんだけどVBが疎まれてるからC#覚えた

ただ結局同じことが出来るVB.NET使ったほうが欲しいものがサクっと出来ることに気づいて覚え直した

なんか騙された気分なんだけどVB卑下してる人の大部分って個人ではどうでもいいような制御系とかLinux使ってる専門職の人?
0650デフォルトの名無しさん
垢版 |
2021/07/14(水) 12:49:09.14ID:5dP8/+MQ
VBも2005までは不満はあってもC#より便利な面もあって存在意義もあったが、
2008でケチがついた。
今は完全に終わってる。
もうVBはその役割を終えたんだよ。

使いもせずにVBを馬鹿にしてた人がいたのは確かだが、だから逆張りでVBに固執するんじゃ
そんな連中よりもっとバカだ。
0654デフォルトの名無しさん
垢版 |
2021/07/14(水) 19:21:10.83ID:SSFv5Eu5
と生粋のバカのネトパヨがw
0658デフォルトの名無しさん
垢版 |
2021/07/17(土) 17:54:57.41ID:M1koy5h6
あの、asp.netなんですが質問させてください
0659デフォルトの名無しさん
垢版 |
2021/07/17(土) 18:09:20.51ID:M1koy5h6
ASP.netのCoreじゃない古くからあるFormsで
一部のWebAPIだけ公開したいのですが、
Coreのほうだと各WebAPIメソッドの頭にEnableCorsを付ければ公開したいものだけ指定できるみたいなんですが
古いほうだとweb。configにAccessControlAllowOriginを書く方法しか見つかりませんでした

でもweb。configに書くと全てのWebAPIが公開されちゃうじゃないですか
なんとかして古いformsのほうで一部だけ公開ってできないものでしょうか?
0661デフォルトの名無しさん
垢版 |
2021/07/22(木) 13:38:58.29ID:0CBg/eZu
>>660
いえ、例でいうと
AとBっていうWebAPIがあったとして、
AはASP.net自身で作成したホームページからのみ実行可能で
Bは自身以外(例えばスマホからAJAX経由)でも実行可能としたいんです
NonActionだとただのメソッドになってしまうのでAからもAjaxでコールできなくなってしまいます
0662デフォルトの名無しさん
垢版 |
2021/07/22(木) 14:11:48.98ID:2BJFjQfb
公開ってのがCORSの制御のことなら、WebFormでも
ASP.NET Web API 2 でのクロスオリジン要求を有効にする
https://docs.microsoft.com/ja-jp/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api
の通りEnableCors属性で制御できるっぽいぞ

かるく試したが
Nugetでインストールして、有効にするのはGlobal.asaxのApplication_Startで
GlobalConfiguration.Configure(Sub(config) config.EnableCors())
とかやればいけるっぽい
0663デフォルトの名無しさん
垢版 |
2021/07/23(金) 11:04:39.77ID:MYFSNKEn
プログラム経験ゼロの初心者の質問ですみません。
勉強も兼ねて個人用の簡単なアプリケーションを作って使ってたのですが、.
.NET Framework 4.8で作ったのを試しに丸々.NET 5に移したところ1ループの処理が結構遅くなったんですがこれは仕様なんでしょうか?
フォルダパス入力すると中のログファイルから特定の条件満たす行があるファィルがあればパスを列挙して1ループ終了というごく簡単なものです。
フォルダパス入力→結果表示が、移植前は一瞬で表示されてたのが移植後は少し時間かかるようになりました。
途中の処理はForEachにEnumerateFiles使用し、ReadAllLinesとAny(Function)と簡単な正規表現パターンで抽出の繰り返しになります。文字コードはShift JISです。
0664デフォルトの名無しさん
垢版 |
2021/07/23(金) 14:28:50.90ID:xliiSqIt
5は起動が遅いとかよく聞くけど、それほんとに内部の処理が遅いのか?
ちょっとコード曝してみ
0665デフォルトの名無しさん
垢版 |
2021/07/23(金) 16:16:47.16ID:MYFSNKEn
>>664
遅くなった部分のコードはこんな感じに書いてます。初心者なもので下手な書き方ですが。
For Each I As Integer In Enumerable.Range(1, 1)
Console.WriteLine("フォルダのフルパスを入力してください")
FolderPath = Console.ReadLine().Replace(""""c, "")
If Not (System.IO.Directory.Exists(FolderPath) AndAlso System.IO.Directory.EnumerateFiles(FolderPath, "*.log").Any) Then
Console.WriteLine("無効なフォルダが指定されました。処理を終了します。")
Exit For
End If
Console.WriteLine("エラーありファイル")
FileCounter = 0
For Each item As String In System.IO.Directory.EnumerateFiles(FolderPath, "*.log")
If System.IO.File.ReadAllLines(item, System.Text.Encoding.GetEncoding("Shift_JIS")).Where(Function(r) r.Contains("hoge")).Any(Function(x) rx.IsMatch(x)) Then
Console.WriteLine(System.IO.Path.GetFileName(item))
FileCounter += 1
End If
Next
Console.WriteLine(vbCrLf & "処理終了 " & If(FileCounter > 0, "エラー処理してください", "すべてOK"))
Next
これを変数宣言部分と終わった後最初に戻るか終了するかの分岐で挟んでループさせてますが、そっちは特に変わらないようです。
0666デフォルトの名無しさん
垢版 |
2021/07/23(金) 17:18:43.28ID:xliiSqIt
それで遅いならまあ.NET5が遅いんじゃね
もうちょっとどこか遅いか細かく切り分けてみたら?
0668663
垢版 |
2021/07/25(日) 12:19:26.96ID:Vrkkrk3V
>>666
DateTimeでループ1回ごとの処理時間を記録させて何回か回してみると、必ずアプリケーション起動時の初回だけ時間かかってる感じでした。
正規表現やエンコードを指定するのに時間かかるのかとも思いましたが時間測定する前にやってるので無関係っぽいです。
勉強がてらもう少し調べてみることにします。
0669デフォルトの名無しさん
垢版 |
2021/08/09(月) 17:37:58.68ID:st5/4ZlG
Excelの読み込みって古い形式に対応する場合はCOMを使うしかない?
NPOIはBIFF5(Microsoft Excel 5.0/95 ブック)は対応してなかった

ググったらやたらCOM否定する記事多いんだけど
よく見てみたら最新形式で書きだすのが前提の記事ばかりで
読み込みたい時の記事がない

客先から古いファイルがけっこう飛んでくるからバッチ止めたくないし手作業を入れたくない
EXCELを起動してRPAで再保存させる方法も考えたけどそこまでするならCOMのほうがいいと思ってる

COMがベストアンサーですか?
なんとかしてください。山岡さん
0670デフォルトの名無しさん
垢版 |
2021/08/09(月) 17:46:03.61ID:xOqPrbyq
否定もくそも昔はみんなcreateobject使って当たり前にやってたんやで
0671デフォルトの名無しさん
垢版 |
2021/08/10(火) 11:00:31.24ID:spauwKOF
form作ったときにデフォルトに設定される赤青黄三色のアイコンってどのライブラリから引っ張ってきてるんでしょうか
vscでコンパイルにしたときのexeアイコンに設定したいんですが
0672デフォルトの名無しさん
垢版 |
2021/08/10(火) 12:01:43.74ID:sPIkDzIm
.NET FrameworkのSystem.Windows.Forms.dllのリソースから
vscってVSCodeのこと?
でコンパイルしたときのアイコンって.NET Core/5使ってるってこと?
ならまあまともには無理じゃね
0674デフォルトの名無しさん
垢版 |
2021/09/04(土) 17:24:11.56ID:Aarzs52Q
runspaceInvoke.Invoke("コマンド")でPowerShellのコマンド実行させるときに管理者権限で実行する方法ないでしょうか
ググっても見つからなくて
0676デフォルトの名無しさん
垢版 |
2021/09/04(土) 18:59:42.44ID:Aarzs52Q
>>675
そこ見ましたが、
ps1ファイルを実行するんじゃなくて、直接コマンドを書きたいんです。
0677デフォルトの名無しさん
垢版 |
2021/09/04(土) 19:12:45.23ID:AmoBfTCA
UACどうすんの?
って考えたら自プロセスを管理者権限で動かしとけばいいんじゃね
0679デフォルトの名無しさん
垢版 |
2021/09/07(火) 20:34:00.70ID:LW8da9uW
WindowsしかないんだけどDBエンジンって何を使えばいいの?
標準で何か入ってる?
0680デフォルトの名無しさん
垢版 |
2021/09/07(火) 20:40:26.25ID:xANIP9i7
すきなのつかえやハゲ
0681デフォルトの名無しさん
垢版 |
2021/09/07(火) 23:49:19.51ID:YcIWO4/P
Linux の3大OSS データベースは、
sqlite, mysql, postgresql だけど、
Windows は、よく知らない

でも、Windowsでも、ブラウザとか多くのアプリは、sqlite 3 を内蔵している。
本格的なものではないけど、ちょっとしたものには使える
0683デフォルトの名無しさん
垢版 |
2021/09/08(水) 10:34:08.03ID:GEmvQUlf
firefoxのsqlite managerってアドオンでdbファイルを作ったりフィールド作ったり
ただsqliteは多少方言があったりしてsql serverのsqlが動かないこともあるから注意
またそのアドオンはデータのメンテにはちょっと使いにくいからそっちは別に作った
0684デフォルトの名無しさん
垢版 |
2021/09/08(水) 11:53:07.33ID:itSmumbF
商用三大データベースといえばOracle、DB2、SQLServer
WindowsでVisualStudio開発なら親和性が高いのはSQLServer

業務用途ならPostgreSQLが無難
WEB絡むならMySQL(MariaDB)を使ってる人が多い
デスクトップアプリで単体配布するならSQLServerの単体配布用のエンジンやSQLite

もし勉強目的ならOracleがいいのではないか
ちなみにVB6からVB.NETへの移植案件だとわりとOracle絡みもあるよ
0685デフォルトの名無しさん
垢版 |
2021/09/08(水) 12:14:23.79ID:GEmvQUlf
クライアントがwinマシンで業務ならsqlserver一択だと思うがなあ…
サーバーには金かかるがクライアント側で面倒無いし
db2はメインフレームで回すような奴だから俺らレベルじゃ関係ないし

ホビーならsqliteかなあ…dbファイル1個dll1個配布するだけで済むし
まあ同時アクセスとかには向かんけど

しかしoracleで勉強ってあんなクソ高いので…w
0687デフォルトの名無しさん
垢版 |
2021/09/08(水) 18:14:42.34ID:xxLcD1RP
Oracleはしょーもない面倒が多すぎる
まじごみ
0688デフォルトの名無しさん
垢版 |
2021/09/08(水) 18:28:10.68ID:ehctv71g
キリスト「貴方様はなぜ地上に御降臨されたのですか?」
神のお告げ「お前たちが協力して仕事が出来ないように言葉を分散させて意思疎通を無くす事で、互いに争い競わせる為だ」
0689デフォルトの名無しさん
垢版 |
2021/09/08(水) 18:51:05.35ID:zYJP8zy8
激しくスレ違いだけど三位一体説ぐらい一般常識として知っておけよと思うw
高校の世界史とかでも習ってるだろw
0690デフォルトの名無しさん
垢版 |
2021/09/08(水) 19:08:11.71ID:wkgfp7fU
巨塔3面が本質的に同じ?
MSはC#推しでないのか?と疑神暗鬼
この先のVB.net教会のいく末を安心立命出来なくて
0691デフォルトの名無しさん
垢版 |
2021/09/09(木) 16:51:08.99ID:TYilZ2wP
>>C#推し
それでも案件はJavaほども無いね
VB.NETでもC#と同じ事出来るんだから、そらシステム構築は分散されるわな
0694デフォルトの名無しさん
垢版 |
2021/09/10(金) 22:46:54.25ID:8it4uK92
なるほどJavaEE奴隷の引き継ぎってわけね

https://docs.oracle.com/cd/E15817_01/server.111/e05765/data_access.htm
>Sun社により、Java言語およびJVMの仕様が提供されます。

>Cなど、一部の言語では、データベースにセキュリティ上の問題が生じる可能性があります。

>Javaの場合は、その設計上、データベース内で容認できる安全な言語です。
>Javaの魅力は、ユビキタスと、それをアプリケーション開発に使用できるプログラマの数が増加していることです。
>オラクル社は、エンタープライズ・アプリケーションの開発者に、Javaアプリケーションの作成、デプロイおよび
>管理のためのエンドツーエンドのJavaソリューションを提供します。
0695デフォルトの名無しさん
垢版 |
2021/12/04(土) 12:31:30.59ID:Vqr17mJz
シリアルで取り込んだ値のモニター用グラフ作成に ScottPlot 使ってみた
めっちゃ便利というか簡単にグラフ作成できて高速、SignalPlotとか言う方式なら数十万点のグラフも一瞬で表示される
公式ではSignalConstとかいう方式なら億単位のグラフでも高フレームレートとか豪語してるけどあながち嘘ではなさそう使わんけど
0696デフォルトの名無しさん
垢版 |
2021/12/04(土) 12:40:15.97ID:Vqr17mJz
元々グラフ作成面倒なんでこの際Pythonに移行して使ってみようか迷ってたけど
まだまだVBで行けるな(C#のおかげ?)

しかし MSChart 要らないなというかなんとかならんのかあれ
いや、MSChartは忘れよう…
0698デフォルトの名無しさん
垢版 |
2022/01/20(木) 22:46:34.60ID:NL1fx3HA
>>697
ローカル変数じゃなければ、XMLコメントつければ

ローカル変数はたぶん標準じゃ無理じゃね
拡張機能自分で作ればできるかもしれんけど
0700デフォルトの名無しさん
垢版 |
2022/01/29(土) 17:35:02.74ID:4+hCVzXK
vb.net未経験なのですが、転職候補先で使うことにりそうです。
未経験からでも独学でなんとかなるでしょうか‥?
他言語はJava使ったことありますが、3年未満なので経験は浅い方です。
0703デフォルトの名無しさん
垢版 |
2022/01/29(土) 18:04:14.01ID:fJ3xXTiy
>>701
やはり独学では厳しい所がありますよね。
VBAが多少くらいですね‥。
.net系は未経験とは伝えてますがやはりキツいですよね‥。
0705デフォルトの名無しさん
垢版 |
2022/01/29(土) 18:35:02.52ID:OC+xgA3X
Javaを3年やったなら実戦で重要なのはクラスライブラリの使い方だって事は実感しただろ
.NETはまたそれを新たに時間かけて積み上げる必要がある
0706デフォルトの名無しさん
垢版 |
2022/02/01(火) 00:20:09.06ID:ZmgVJabi
最近
If a=1 Then
処理a
Else
処理b
End If

と書くより

If a=1 Then 処理a
If Not (a=1) Then 処理b
と書いたほうが2行だし見やすいのでスマートに思える
皆さんはどう思いますか?
0708デフォルトの名無しさん
垢版 |
2022/02/02(水) 11:02:03.90ID:PFGno9cc
見やすいかどうかは主観と慣れだし、好きにすればいいけど
わざわざ2回Ifの評価するのはないわ

2行だからとか意味不明だけど、行数が少ないほうが良いと思うなら
If a=1 Then 処理a Else 処理b
で良いんじゃねえか
0709デフォルトの名無しさん
垢版 |
2022/02/02(水) 12:14:13.32ID:43zIf/SN
>>707
ふむ

>>708
ふむ
短い処理なら1行で書くのもありだね、これを最優先にしてみます
個人的には2回の評価はこの程度なら許容かな
0710デフォルトの名無しさん
垢版 |
2022/02/02(水) 12:16:17.17ID:43zIf/SN
自己分析だけど簡単な処理が複数行になるのがとても嫌みたい(折り返しも含めて)
0711デフォルトの名無しさん
垢版 |
2022/02/02(水) 12:23:38.82ID:h1+1MA/a
まあ、オシゴトで上から止めなさいと言われたら素直に「はい」と答えるほうがいい
0712デフォルトの名無しさん
垢版 |
2022/02/02(水) 13:11:03.68ID:43zIf/SN
>>711
そうだね、はいと言わないと円滑に進まないこともあるよね
趣味なので現場のこと解ってなくて、粗相をしていたらごめんなさい
0713デフォルトの名無しさん
垢版 |
2022/02/24(木) 19:27:26.09ID:KPdhQTyA
取得したIntptrにByteを書き込む際に配列で書き込む関数はありますか?
今Forで回しているのですが無駄な気がして…
0715デフォルトの名無しさん
垢版 |
2022/04/14(木) 18:45:57.89ID:GnSw15mR
Debug.Printってリリースの時もコンパイルされますか?
付けておくことで実行時重くなるか知りたいです
0716デフォルトの名無しさん
垢版 |
2022/04/18(月) 21:27:43.92ID:M2AhJtAx
イベントプロシージャーってフォーム.vb以外で書くのはルール違反なんですか?
てか出来るんですか?
0717デフォルトの名無しさん
垢版 |
2022/04/18(月) 22:52:01.23ID:GqGEiCjU
>>715
リリースビルドに含まれるなら何のためのdebugかと

>>716
モジュールに書いてフォームから呼べばいいがな
まあ内容によってはデリゲード使わないかんかったりするけど
0718デフォルトの名無しさん
垢版 |
2022/04/18(月) 23:52:00.40ID:M2AhJtAx
>>717
両方ありがとうです
気兼ねなくデバッグプリント使えるんで嬉しいです

処理はフォームから呼んではいるんだけどForm1のイベントが50個くらいになってしまってコントロールごとに並べてみたけど見ずらいです、工夫が足りないのかな
0719デフォルトの名無しさん
垢版 |
2022/04/19(火) 01:36:18.71ID:l3iT9AMj
>>718
うーん…例えばボタンずらーっと並べてパラメーター違いの同じ処理なんてのならhandlesにずらーっとボタン並べて処理の中でsenderをボタンにcastしてnameからどのボタンから呼ばれたが判定して処理書き分けるとか
まあ共通部分が無いならしょうがないけど
0720デフォルトの名無しさん
垢版 |
2022/04/19(火) 02:52:17.15ID:Owsp92Ze
>>719
とりあえずまとめるものはまとめてみてるつもりだったんですけど説明を聞いてよくよく考えたら同じオブジェクト.イベントが複数あるかもしれないです

たとえばボタン.クリックで全く違う処理でも全部1つにまとめてハンドルしてしまいイベントが起きたときに分類用のモジュールに飛ばしてからsenderを使って切り分けてあげればForm1がスッキリしそうですね
早速明日切り分けるためのプロシージャを考えてみたいと思います、明日じゃなくて今日か 笑
0721デフォルトの名無しさん
垢版 |
2022/04/19(火) 18:21:30.98ID:l3iT9AMj
>>720
ただモジュール側でcastしようとしてもそこにはsenderは無いので呼ぶ時にsender(と内容によってはeも)渡さないといかんけど
(call hoge (sender,e)みたいに)
0722デフォルトの名無しさん
垢版 |
2022/04/24(日) 06:41:04.78ID:rnIXniDo
.netでもapiでもいいのだけどクリップボードにコピーされたこと知る方法あったっけ?
ポーリングするしかない?
0724デフォルトの名無しさん
垢版 |
2022/04/24(日) 15:49:39.77ID:rnIXniDo
>>723
おお、これですありがとうございます
0730デフォルトの名無しさん
垢版 |
2022/09/22(木) 16:14:21.76ID:SOmBEF4r
自分のところは新規案件でVB指定されることは無いな。
大手でも部門で独自開発してたソフトの機能追加などを頼まれる事があるが、元がVB.NETだったりする事はある。
0731デフォルトの名無しさん
垢版 |
2022/10/03(月) 21:03:01.36ID:rT8lgIp3
Falseをずっとフェールスと呼んでいたわ、誰にも言わなくて良かった
でも実際フォールス、ファルス、フォルス、プロの人はなんて読んでるんだ?
0734デフォルトの名無しさん
垢版 |
2022/10/12(水) 12:04:19.61ID:05zETGAl
なんかがんばってるんだがコードが手続き型になってしまう
クラス使うと細切れになって管理とかで余計面倒になるのは気のせいか?
0735デフォルトの名無しさん
垢版 |
2022/10/15(土) 23:09:21.03ID:FooIDbuU
クラス使ってもforループで回してるし
俺もわからん
0736デフォルトの名無しさん
垢版 |
2022/10/16(日) 00:15:20.11ID:ZA+WuaVX
オブジェクト指向はどのクラスにプロシージャを書くか、クラスは論理的にどこに配置されるのか、いわゆるソフトウェアアーキテクチャが重要になると思う。
クラスのインスタンスはどのクラスで管理するのか、クラスやインスタンス同士の繋がりはどのクラスが面倒見るのか、考える事は多くなりますね。
けどソフトの規模が大きくなったときは、オブジェクト指向のメリットが大きいと感じます。
0737デフォルトの名無しさん
垢版 |
2022/10/16(日) 00:45:26.15ID:I0hpg2ZE
一人で書いてるから大きくなりようがないけどねw
基本的に処理はなるべくモジュールに書いてコントロールからはそれ呼び出すだけにしてる
まあbackgroundworkerとかdelegate関連はフォームに書くけど
クラスはネットからコピってきたロジックとかくらい
0738デフォルトの名無しさん
垢版 |
2022/10/16(日) 04:46:22.78ID:q8mBJvHk
>>736
そう、そこらへんがよく分かんなくて
例えばRichTextBoxを管理するクラスとファイル入出力のクラスを作ったときRTBの内容を保存するメソッドはファイルのクラスに作りたいんだけど
2,3行ですむような簡単な記述でもわざわざファイルのクラスの方にメソッドを作ってオブジェクトを作って使わなきゃいけないのかと思うと億劫になってしまって直接RTBのメソッドのほうにSaveを書いてしまう
これは良いのかダメなのかがよくわからない
ここらへんは他人のコードを見ながら覚えていくんだと思うんだけど趣味でやってるとそんな機会はほぼないんだよね
ソフトウェアアーキテクチャ?っていうの?ググればそういうHowtoなページってありますか?
0740デフォルトの名無しさん
垢版 |
2022/10/17(月) 22:58:27.91ID:x2+EStbh
>>738
正解は無いが、例えばその例だとRichTextBoxExtensionクラスを作って拡張メソッドにするとシンプルにできる。
myRichTextBox.Save()
みたいな感じで呼び出せる。

VBに限定するなら、調べてないが参考になるサイトはほとんど無いと思う。C#なら検索すれば出てくる。
0741デフォルトの名無しさん
垢版 |
2022/10/22(土) 23:47:14.54ID:Md3R6uzp
>>740
コントロールの拡張クラスっていう考え方にすれば良いのか、確かにわかりやすい
ありがとうございます
0742デフォルトの名無しさん
垢版 |
2022/10/23(日) 00:13:50.78ID:UaJ1tm/J
英数字は問題なくヒットするのに、かな漢字がヒットしないです、何か設定とか違ってますか?
データの項目「タイトル」のレコードには"aあ阿"という文字が入ってます
DB_Connect("Init"," WHERE [タイトル] LIKE '%a%'") '⇒ aが全角でも半角でもヒットする
DB_Connect("Init"," WHERE [タイトル] LIKE '%阿%'") '⇒ヒットしない
DB_Connect("Init"," WHERE [タイトル] LIKE '%あ%'") '⇒ヒットしない

Sub DB_Connect(behavior As String, searchstr As String)
Dim sqlcon As New SqlConnection With {
.ConnectionString = "Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" _
+ System.Environment.CurrentDirectory _
+ "\Database.mdf;Integrated Security = True; Connect Timeout = 30"
}
Dim Adapter As New SqlDataAdapter("SELECT * FROM [Table]" & searchstr, sqlcon)
Dim commandBuilder As New SqlCommandBuilder(Adapter)
Adapter.UpdateCommand = commandBuilder.GetUpdateCommand()

Select Case behavior
Case "Init" 'データの更新
Dim dt As New DataTable()
Dim ds As New DataSet()
sqlcon.Open():Adapter.Fill(ds):sqlcon.Close()

F_Fmain.BindingSource1.DataSource = ds.Tables("Table") 'データテーブルをデーターソースにする
F_Fmain.DGV.DataSource = F_Fmain.BindingSource1 'DGVのデーターをバインディングソースから取得

Case "Update" 'データベースの更新
sqlcon.Open()
Adapter.Update(F_Fmain.BindingSource1.DataSource)
sqlcon.Close()
End Select
End Sub
0744デフォルトの名無しさん
垢版 |
2022/10/23(日) 21:09:37.57ID:UaJ1tm/J
と思ってSQL ServerいじくりまわしてたらLocalDBにアクセス出来なくなって直すのに一日かかった
SSMS突っ込んでみたりSQL2019入れたり余計なことを繰り返してた
結局C:\Users\user\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB消したら治ったけど(さりげなく備忘録)
そのおかげでなんとなくDBの仕組みは解るようになったけど未だに日本語は検出してくれない
カレントランゲージを3にしたらダメって怒られるし(そもそもLocalDBで言語設定できるのか?どうして初めから日本語じゃないのかが不明)
Japanese_CI_AS付けたらエラーとか言われるし
最悪OS入れなおさなと青くなったから治っただけ良しとしよう
結局もっかいSQLサーバ作り直さないとダメっぽいんだけどいじるの怖いわ
いや、その前に日本語のmdfを狙って作れるか確認してみよう
0745デフォルトの名無しさん
垢版 |
2022/10/24(月) 00:12:25.36ID:Ms3BBH4f
なんか日記じみてきたけどいいか。結局うまくいきました、疲れた
あの後SqlLocalDB.exeのオプション指定でもするのかと調べたけどそれらしきものはなくて手詰まりっぽくなった
ただ既存DBの設定がSQL_Latin1_General_CP1_CI_ASになっているは解っていたので
SSMSを使ってDBを作り直してみたときにオプションをチェックしたら言語設定があってJapanese_CI_ASに変えたらいけました
はぁ、こんな予想外のことで一日を使ってしまった、明日から仕事なのに

前回VSにあるGUIのデーターセットとかテーブルとか使って作った時はまったく問題なく検索できたんだよなぁ
今回はmdfだけ作って接続は手書きをしたのでそこら辺が原因かもしれない、突き止める気はサラサラないけど
0746デフォルトの名無しさん
垢版 |
2022/10/24(月) 00:38:57.02ID:I2D5WKz1
馬鹿の日記でした
0748デフォルトの名無しさん
垢版 |
2022/11/04(金) 08:39:38.18ID:3MIAhDZX
やっと組んでたプログラムができそう、ちゃんと組んでないからデバッグが大変だわー
それでも完結になるように努力はしたけど
もうこれ以上規模の大きいのは一生作らないだろうなというくらい頑張った
0750デフォルトの名無しさん
垢版 |
2022/11/04(金) 11:04:50.02ID:3MIAhDZX
>>749
凄いな、今みてみたら667Kだったわ
現状RichTextBoxに貼ったイメージがコピーできないので困ってる
メモリストリーム云々はスキル的にとても手がでないので一旦ファイルに落とそうかと画策中
0751デフォルトの名無しさん
垢版 |
2022/11/04(金) 16:34:59.32ID:3MIAhDZX
ファイル(temp.png)にできたんゴ!
これをImageオブジェクトに読み込めば使いまわしができる
0752デフォルトの名無しさん
垢版 |
2022/11/17(木) 16:07:05.13ID:1Jm6EA8w
>>703-704
そうだね
自力はきつい。なぜかいうとMS公式にも使えるマニュアルvbだけ少ないし、そもそも他言語が手書きで書けるのに対してこっちはIDE頼みでヴァージョンやフレームワークやインポートする部品がバリエーション多すぎてカチッとハマらないと動かないから書籍やネットのサンプルがほぼ動かない。
でも求人の給料はやっスイんだよなあw
0753デフォルトの名無しさん
垢版 |
2022/11/17(木) 16:11:29.17ID:1Jm6EA8w
あと村社会ってのもそう。わからないことや新規でやりたいこと出て質問すると100人聞くと100人が曖昧な答えしか返さない。で業者に作ってもらうように落ち着く。
これも↑の言語の特性が原因でそういう取り扱いになってしまってるんだと邪推
0757デフォルトの名無しさん
垢版 |
2022/11/27(日) 13:48:16.31ID:Pm5jqeER
XPでも動かすのがモットーだから未だに.net2.0だけどそろそろ上げてもいいかな…って気がするんだけどさてどれにすっかなーと
ちな7だから新し目のは漏れなく駄目だろうけど
0758デフォルトの名無しさん
垢版 |
2023/01/02(月) 02:03:50.75ID:8T2JCaCm
MacのこういうアプリをWindowsでも作りたいんですけど、VB.NETで出来るでしょうか?
https://ameblo.jp/knym71/entry-12120126159.html

Macでは「Macintosh版のVisual Basic」に喩えられるXojoという環境で作られてるらしいんですが、それならWindows版はVBでいいんじゃないの?と単純に思ったのですが…
0760デフォルトの名無しさん
垢版 |
2023/03/24(金) 17:51:18.10ID:cWx3prGd
初心者です
タスケテケスタ
意味を教えてください

Declare Function abc_open Lib "abc.dll" (ByRef lnga As Integer, ByVal
lngb As Integer) As Integer

Declare Function abc_write16 Lib "abc.dll" Alias "abc_write" (ByVal
lnga As Integer, ByVal lngaWrtBuffer As Integer, ByVal lngc As
Integer) As Integer
0762デフォルトの名無しさん
垢版 |
2023/03/24(金) 20:44:56.31ID:ERXieoFI
>>761
回答ありがとうございます!
ただ!後ろに並んでる変数も含めて理解できてないんです。

あつかましくて申し訳ないですが、もう少し噛み砕いていただけると助かります。。
0764デフォルトの名無しさん
垢版 |
2023/03/24(金) 23:13:17.73ID:ERXieoFI
詳細は不明だとして、認識の仕方だけあってるか聞いてもらえますか。

Declare Function abc_open Lib "abc.dll" (ByRef lnga As Integer, ByVal
lngb As Integer) As Integer
→ 解釈:abc.dll内にあるabc_openという関数にInga、Ingbという引数を代入してint型で戻ってくる
質問1.かっこ内で2つの変数が宣言されているがどういうこと?
質問2:戻り値はどこに格納される?

abc.dllの仕様が分からないと上記の質問も分からない?

トンチンカンな事言ってると思いますが。。
0765デフォルトの名無しさん
垢版 |
2023/03/25(土) 00:30:39.77ID:LzvHgNP+
普通にfunction作るときに
Function FooBar (ByRef hoge As Integer, ByVal huga As Integer) As Integer
  '''(なにかの処理)
End Function
って定義するのと同様に、dllの中にある abc_openという関数をプロジェクトで使えるように宣言している

既存のコードを読んでいるのなら、そのabc_openでコード全体を検索すれば実際に使用しているところが見つかるんじゃね?
0766デフォルトの名無しさん
垢版 |
2023/03/25(土) 05:48:46.84ID:F9vkZ/PE
>>763
>>765
ありがとうございます!
内容確認してみます!

勉強中なのでまた来ると思います(;o;)
0767デフォルトの名無しさん
垢版 |
2023/03/25(土) 15:31:44.19ID:F9vkZ/PE
みなさんこんにちは
質問をばさせていただきたく

Declare Function abc_write16 Lib "abc.dll" Alias "abc_write" (ByVal lnga As Integer, ByVal lngaWrtBuffer As Integer, ByVal lngc As Integer) As Integer

上記のAliasは"abc.dll"を"abc_write"という名称で扱う
という認識でよろしいですかね?
0769デフォルトの名無しさん
垢版 |
2023/03/26(日) 22:34:02.95ID:KCoWgyug
>>768
ありがとうございます!
参考にさせてもらいます(^-^)
0770デフォルトの名無しさん
垢版 |
2023/04/30(日) 01:44:08.54ID:oNkXc/Ek
すみません教えてください。詳しく教えてほしいので詳しく書きます。
(歴JavaScript→PHP→VBA→VB.net/自分で作って、仕事で使って、困らない程度のスキル)
(使用PC,8世代i7,8700T,64gb)

1- エクセルVBAの64bit環境かなにかでは、 integerもlongも同じ64bitのメモリを確保しているとかで、
だからlong推奨とかWEB上の初心者向けサイトには書いてあった記憶があります
(記憶違いならごめんなさい)
でも、これって(CPU内などの)所謂キャッシュメモリ上も同じ理屈なのでしょうか。
例えば100万程度の配列を回して処理するときに、どうなのでしょうか?

2- それらをの答えを踏まえ、VB.netでも同じ理屈で同じ答えなのでしょうか?

作成中のプリログラムの処理が遅い場合にサイズを厳密にすることを奥の手にする感じに考えていますが、それが奥の手なのか無意味なのかわかりません。
現在、VB歴6か月程度ですが、次期プログラムから環境をC#に移行しようと思っています。
周りに聞く人もおらず、WEB頼りでやってきましたが、変な癖が付くとまずいので、不安に思っています。
最新の情報が多いのもC#に移行する理由でもあります。

PHPから入ったので、型に関係にする部分は不安です
今から最小の型を使う癖をつけておいた方がいいのでしょうか(Int16,Int32,Int64等)
(もちろんsqlserverは最小のサイズでやっていますが)

処理するデータ量は多いです。VBAで処理に小1時間かかるのでVB.netに移行しましたが、データはまだまだ増えそうです。
C#に移行することを踏まえて教えていただけると幸いです。よろしくお願いします。
0771デフォルトの名無しさん
垢版 |
2023/04/30(日) 03:01:38.76ID:faZy+FP7
>>770
PCを買い替えろ
まずはそれからだ
0773デフォルトの名無しさん
垢版 |
2023/05/01(月) 16:16:30.20ID:nutSXmqo
奥の手でもなんでもなくて適切な型をつかうのは基本中の基本だと思うがな
ちゃんとDB使って処理して1時間なら言語なにつかっても大差ないと思われ
0774デフォルトの名無しさん
垢版 |
2023/05/10(水) 02:41:26.03ID:VdVKPMIs
何の処理が原因で遅くなっているか切り分けたら?
Stopwatchクラス使えはいいよ。
0775デフォルトの名無しさん
垢版 |
2023/08/20(日) 21:08:30.63ID:5xty0CqD
explain使ってSQLのチューニングしたらいいんじゃないかな
100万件程度なら一瞬で終わる
キャッシュ云々の前にアプローチが間違ってる気がする
PHPとC#、VB.netなら処理速度変わらん

もしSQLの発行回数が2回以上になってるんだったら1回にすればいい
ループごとにSQLを実行するような処理だったら論外

VB.netならフリーのプロファイラが十分使えるからツールでどの箇所が時間かかってるかはすぐわかる

というかその書き方だとすでに原因となる箇所はだいたいわかってるんじゃないだろうか
とにかくループを減らす
VBAで1時間ならVB.netは1秒未満を目指せると思う

型とかアルゴリズム以前にもっと根本的な問題があると思う
そしてどういう問題を処理しようとしているか書かないと一般論しか帰ってこない気がする

速度カイゼンはとにかくループの削減が基本
全探索をなくすのが基本
ソートをなくすのが基本
レスを投稿する


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