VB.NET質問スレ(Part44)

■ このスレッドは過去ログ倉庫に格納されています
1.(もんじゃ)
垢版 |
2018/05/26(土) 18:08:49.12ID:QSlAAqmb
前スレ

VB.NET質問スレ(Part40)
http://toro.2ch.net/test/read.cgi/tech/1365857015/
VB.NET質問スレ(Part41)
http://peace.2ch.net/test/read.cgi/tech/1391334405/
VB.NET質問スレ(Part42)
http://echo.2ch.net/test/read.cgi/tech/1419148239/
VB.NET質問スレ(Part43)
https://mevius.5ch.net/test/read.cgi/tech/1465958469/
2021/02/02(火) 19:55:19.61ID:fWKN54jK
>>547
https://docs.microsoft.com/ja-jp/dotnet/framework/data/adonet/
2021/02/12(金) 18:31:31.63ID:faW+M87N
非同期処理でtextboxに文字を出力する方法でおすすめのページある?
2021/02/12(金) 18:51:14.78ID:EzzdzoPL
>>549
いくらなんでもざっくりし過ぎじゃないか
2021/02/12(金) 18:53:42.04ID:faW+M87N
>>550
cmdの結果をデリゲートでTextBoxに出力したいんだがデリゲート処理がわからなくて
2021/02/12(金) 19:08:48.57ID:EzzdzoPL
>>551
Control.Invoke使ってもいいけど今時はその「cmdの結果」
を返すメソッドを非同期メソッドにするだけだよ
2021/02/12(金) 19:12:37.11ID:faW+M87N
>>552
https://dobon.net/vb/dotnet/process/standardoutput.html

これの「コマンドプロンプトに文字列を入力することで、複数のコマンドを実行する」を参考にしてるんだけどよくわかんなくてね
2021/02/12(金) 19:16:01.10ID:faW+M87N
>>552
ttps://dobon.net/vb/dotnet/process/standardoutput.html

ここの複数コマンドのみてるけどこの処理とは違うの?
2021/02/12(金) 19:16:17.41ID:faW+M87N
消える…
2021/02/12(金) 19:17:31.96ID:faW+M87N
>>552
これとは違う?
https://i.imgur.com/nqnqpws.png
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)
みたいにやればいいんじゃないの?
2021/02/12(金) 21:09:14.42ID:7M5mWl4U
しかしVBのラムダ式は酷いねw
昔VB好きだったけどこれが嫌でC#に乗り換えた人いっぱいいると思うわ
559デフォルトの名無しさん
垢版 |
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
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)に描かないと
2021/02/14(日) 11:50:51.24ID:aTi3CIRw
VB.netはdobon.netのコピペでどうにかなりますw
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をつけるとか付けないとかの区別について教えてください
2021/02/15(月) 14:48:46.22ID:8oqgKRR4
そもそも上下で明らかに違うじゃん
上は変数への代入で下は変数のプロパティへの代入
上に合わせるなら下は
Dim sBox as TextBox
sBox = New TextBox
でしょ
2021/02/15(月) 15:38:10.60ID:99lDenvk
>>562
それを理解するためには構造体(値型)とクラス(参照型)の違いを理解する必要がある。

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

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

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

DirectXも同様。色々ラッパーも有るけどオワコンも多い
.NETでゲーム作りたいならUnitiyでも覚えたほうがいいんじゃないかな
571デフォルトの名無しさん
垢版 |
2021/02/24(水) 11:54:14.87ID:BstpO7i2
unityとかどんどん肥大化するから使いたくない
VSだって肥大化してるからVS2008やcode使ってる
2021/02/26(金) 00:57:11.39ID:yh0R3Tzg
VB.netで 3Dグラフってどうするの?
2021/02/26(金) 19:21:46.77ID:pp9GTcLB
Chart
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"

というデータから読み取りたいと思います。
どうすればいいですか?
2021/02/28(日) 19:02:27.16ID:ReKePojt
引数なしでNew SrgsOneOfしたあとそれにAddしてけばいいんじゃないの
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))
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)
2021/02/28(日) 22:36:09.00ID:HFC/+izz
返信ありがとうございます。
List.Add(oneOf)
のoneOfで
「型SrgsOneOfの値をSrgsItemに変換できません。」
というエラーが出ます。
教えてください。
2021/03/03(水) 20:12:19.91ID:FWifKpzu
List.Add(New SrgsItem(oneOf))
で解決しました。ありがとうございました。
2021/03/03(水) 20:39:29.57ID:FWifKpzu
ディクテーションで、なぜか
”he" だけ認識しない。
発音が悪いだけでしょうか。
"heel"とか"she”とか"what"は認識します。
581デフォルトの名無しさん
垢版 |
2021/03/03(水) 20:47:48.28ID:NQNDMH5/
頭も悪いと思うよ
582デフォルトの名無しさん
垢版 |
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で表示させても発生します。

恐縮ですが、何か原因は考えられるでしょうか?
よろしくお願いします。
2021/03/05(金) 15:31:35.57ID:g515SU59
0xc0000005はアクセス違反
…解放済みのメモリのアクセスしたりすると起こる
OCXがウンコっぽいのでどうにもならないかもしれない
2021/03/05(金) 15:48:52.76ID:TerEZabb
>>583
そうですか。
ありがとうございます。
2021/03/05(金) 15:55:30.08ID:Q+C4a65x
GCされちゃったとかそんなのかな…
2021/04/01(木) 12:49:52.32ID:zlbcSdbZ
VBからFirebase>Firestoreにデータ保存するサンプルプログラムない?
587586
垢版 |
2021/04/02(金) 16:45:34.04ID:xNBuYvES
youtubeで検索したら英語、C#ですがやり方が出てきました。
2021/04/04(日) 14:54:07.18ID:dSOQ4jrk
>>586
https://www.example-code.com/vbnet/fireBase.asp
2021/04/04(日) 14:56:45.03ID:dSOQ4jrk
FirebaseよりMySQLとかPostgreSQL使う方が後々良いと思うが
2021/04/06(火) 15:50:26.01ID:zhVSqWc5
VB.NETの案件も最近増えて来たね
一時期はC#がほとんどだったのにね
2021/04/06(火) 18:21:03.21ID:T0VrQe+V
ソースは?
2021/04/06(火) 20:47:58.45ID:M/BjHe5K
VBってnullable referenceすら追加してもらえなくなったし
もう保守しかないんじゃ
2021/04/06(火) 21:01:00.28ID:Bsudg9ot
VBは今後言語への機能追加はしないってMS公式に宣言出たよ
2021/04/06(火) 21:15:07.65ID:34VhPfz+
VBの役割はVS2005の時代で終わってると思うよ。
2008以降も使ってるところは正直どうかしてると思う。
2021/04/06(火) 21:44:34.37ID:A8jxxYnR
VB.NETプロジェクトをC#プロジェクトにソースレベルでコンバート出来るようにならない限りは…
2021/04/07(水) 10:08:48.70ID:RzHskyO4
>>593,594
新機能なんて不要
既存機能でシステム構築出来れば案件も出て来る
出来る範囲の広いC#は意外とビジネスロジックには機能過多だし
VB.NETはCOBOLみたいにレガシーになるのさ
2021/04/07(水) 10:51:49.42ID:RzHskyO4
>>591
VB.NET 案件でググれば分かる
2021/04/07(水) 12:27:17.69ID:RzHskyO4
>>593,594
https://social.msdn.microsoft.com/Forums/ja-JP/fa2ee5c5-bc19-4158-86bd-4140292698be/vb12398201702446012395123881235612390net-core-net5?forum=vbgeneralja
2021/04/07(水) 16:13:26.53ID:bHi8pMA7
>>592
ビジネスロジックでnull許容型なんてまず使わない
だから不要
2021/04/07(水) 17:05:34.61ID:bWQM3yRK
>>599
C#に追加されたのはnull「非」許容な参照型な
つまり君の言う通り必要だ
2021/04/08(木) 10:01:09.84ID:30DrVK+s
>>600
null許容型でもスペースクリアする様にルール化する
大丈夫
2021/04/08(木) 10:46:46.37ID:30DrVK+s
VBで出来る事はC#で出来る
C#しか出来ないのはゲームプログラミングや制御プログラミング
ビジネスロジックにはそんなモノ必要無い
2021/04/08(木) 10:51:03.94ID:30DrVK+s
ゆえにCADとかやってる所ではC++からC#に移行した所は有る
言語の需要が違う
2021/04/08(木) 11:20:19.42ID:LXJcVTVi
C#の機能がビジネスロジックに不要であるという主張に具体性がなさすぎてなんとも
明らかな反例だけは出ていて、意図せぬnullの混入がビジネスロジックにとって極めて有害であることは君自身が認めている通りだ
実際VBerって参照型を正しく理解してない奴多いし、nullが嫌だからと構造体を好んで使う馬鹿な現場もよくある
むしろVBにこそ必要な機能だと思うけどね
2021/04/08(木) 11:35:10.81ID:30DrVK+s
>>604
>>602で書いてる通りC#の便利過ぎる機能はビジネスロジックに使うかは施主による
でも大概のビジネスシステムではVB.NETの機能だけで実装出来る
それをVBプログラマ自身も自覚して無い問題は有る
2021/04/08(木) 11:40:01.45ID:30DrVK+s
要はnull非許容にするにも方法は他にも有るから何とでもなる
それを明確に実装ルール化してる現場は幸せ、だと言う事
ルール化してない現場は有象無象のプログラムが出来て混乱する元
2021/04/08(木) 12:23:57.08ID:cBp1Cxoy
そらCOBOLでも業務システムは作れるし、C++でも正しく使えば安全なシステムは作れるわな
あんたが言ってるのはそれだけのことでしかない
2021/04/08(木) 12:38:40.49ID:30DrVK+s
>>607
分かってるよ
でもC#使いにVB.NET言語仕様をdisられる必要は無いと思ってる
要は分かって言語使えば良い、って事だよ
2021/04/08(木) 12:42:22.02ID:30DrVK+s
そもそも何でVB.NET質問スレにC#プログラマが張り付いてるのか分からんわw
2021/04/08(木) 14:05:14.03ID:tCGGFTkm
>>609
老婆心?
2021/04/08(木) 19:57:41.35ID:zyDmqDik
>>602
制御プログラミングでC#にできてVB.NETにできないことの具体例を教えて下され
2021/04/08(木) 20:39:34.94ID:2X6jgSCW
RS-232Cの制御じゃね?
613デフォルトの名無しさん
垢版 |
2021/04/08(木) 21:01:48.57ID:z/gPOoTy
>>612
馬鹿の典型例
2021/04/08(木) 21:51:16.02ID:+VGKHTKI
バカの飯の種になること
2021/04/09(金) 08:39:25.22ID:8U9v8TbS
>>611
ググれば出て来るよ
2021/04/18(日) 14:17:59.95ID:6PVtNKAE
>>612
https://www.contec.com/jp/support/basic-knowledge/daq-control/serial-communicatin/application/
VB.NETで出来るみたいよ
2021/04/18(日) 14:27:57.20ID:6PVtNKAE
APサーバー-----Windowsサーバー
実装言語---------VB.NET
DBサーバー-----Linux(MySQL)

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

ADO.NET経由での接続も可能ですか?
2021/04/18(日) 15:47:44.39ID:H9HZrEaL
>>617
https://www.mysql.com/jp/products/connector/

ADO.NET driverやODBC driverが有る
試してみて実行スピードが速い方を選ぶ事になるかな
2021/04/20(火) 15:03:07.09ID:oemRn1Bu
>>617
APサーバーがWindowsでDBサーバーがLinuxねえ、、
UbuntuにでもMySQLインストールするのかね
APサーバーもUbuntuにしてASP.NET Coreインストールする方がスッキリするんでは無いのかな?
2021/04/20(火) 17:27:51.51ID:9RGA0kSa
>>619
APサーバのCALが払える企業ならね
実際問題、Linuxに移行出来るなら、その方が良いだろうね
.NET5でVB.NETも普通に動くし
2021/05/14(金) 20:43:25.49ID:XNIKXnjr
Visual Basic 16.9が.NET 5に
https://www.infoq.com/jp/news/2021/05/VB-16-9/
2021/05/18(火) 12:15:33.85ID:V6DjXu9K
>>621
VB.NETの言語仕様も完成形に近づいたな
案件的にもC#と同じぐらいVB.NETの案件って増えてる
2021/05/19(水) 01:06:33.22ID:mf/RT69h
vbの仕事なんて腐ったシステムのお守りかvb6からのバージョンアップとかそういうクソ案件しか聞かないんだが・・・
2021/05/19(水) 07:54:33.70ID:2HKj1i+z
新規でC#じゃなくてVB.NET指定の案件てどういう事情?
2021/05/19(水) 10:03:35.57ID:BVf0fOh7
>>624
>>623のVB6→VB.NETマイグレとか
2021/05/19(水) 11:12:25.27ID:BVf0fOh7
https://pe-bank.jp/project/cobol/7353-K05/

COBOL→VB.NETマイグレ
2021/05/30(日) 20:04:49.07ID:IYhCgCcB
form1とform2があり、form2のボタン投下時にテストファイルに書き込むものを作ってます。
別classに書き込むコードを書きたいのですが、form自体をを引数にすることなく、form1とform2のTextBoxやLabelやらの値を使用したい場合ってどうすればいいですか?複数コントロールがある為困ってます。
2021/05/31(月) 16:41:36.97ID:uVxwOop1
>>627
地道にForm1のラベルやテキストボックスの値をPublicなワークエリアに保存する様に実装するしか無いよ
2021/05/31(月) 19:19:11.42ID:uPdCIaeh
>>628
ありがとうございます。
2021/05/31(月) 21:24:09.59ID:Zh+Gn3zr
モj

…原理主義者が騒ぐから止めとこ…
2021/05/31(月) 22:50:13.59ID:Puq8NKSh
必要な値を直接引数で渡せばいいのに、何で「form自体をを引数」だの「Publicなワークエリアに保存する」
だの「モj」だのという謎の発想になるのw

もうマジ意味不明過ぎるwwww
2021/05/31(月) 23:51:20.41ID:Zh+Gn3zr
>>631
ふーん…
パラメータ30でも40でも書き連ねるんだ…
そっちの方が意味不明だな
2021/06/01(火) 00:09:02.35ID:mzNrSMac
>>632
なるほど「モj」は必要なパラメータを自動的に減らしてくれる魔法なのか
頭良すぎてついてけいないねw

こういう訳分からん思考回路の人はプログラミング向いてないよほんと
適性ゼロ
2021/06/01(火) 07:57:04.86ID:J7xgNxsR
>>633
自己紹介乚
朝鮮ゴキブリみたいw
2021/06/01(火) 17:52:13.18ID:fMIWlz8l
VBスレらしい民度の低さに思わずニッコリ
2021/06/01(火) 18:08:09.46ID:xMp5onVw
VB6以前からの悪習
2021/06/07(月) 13:38:45.51ID:Fd6HiZks
>>626
COBOLプログラマーかき集めるのかな
2021/06/13(日) 23:49:12.43ID:QeM7ycnl
そもそも VB や C# ごときの言語仕様でイミュータブルとかアホくさ。

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

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

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

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

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

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