VB.NET質問スレ(Part43) [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2016/06/15(水) 11:41:09.50ID:bPj3FmGk
前スレ

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/
2016/11/08(火) 02:35:47.42ID:crOcTVn5
他の、ImmGetContext等のhWndが入る部分はIntPtrにしているのですが……(+_+)

Private Declare Function ImmGetCompositionString Lib "imm32.dll" (ByVal hIMC As IntPtr, ByVal dwIndex As Integer, ByVal lpBuf As StringBuilder, ByVal dwBufLen As Integer) As Integer
これでもエラーが出るみたいです
2016/11/08(火) 03:01:24.83ID:crOcTVn5
やばい寝落ちそう……

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

1時間くらいは粘りたかったけど、眠いのでいったん引き上げます
もう一回試行錯誤して、どうしても駄目ならまた改めて来ます
>>420さん答えてくれてありがとう
2016/11/08(火) 07:24:04.77ID:Tr1jXB8d
Windows NT/2000 は Unicode 版と ANSI 版を実装
2016/11/08(火) 07:25:30.64ID:Tr1jXB8d
そもそも「エントリ ポイントが見つかりません」の意味分かってる?
2016/11/08(火) 07:35:37.22ID:ic1oOtKi
そもそもRichTextBoxにOnPaintで文字を描写って意味がわからん
それRichTextBox使う意味あるのか?
2016/11/08(火) 07:49:06.42ID:Iqb/ffmt
近年、若者のエラーメッセージ離れが深刻な問題になっています
2016/11/08(火) 09:05:00.96ID:crOcTVn5
おはよう

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

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

普通は違うのでやるんですかね? 例えばPictureBoxに描くとかですか?
もっと効率良い方法とかってあります?
2016/11/08(火) 09:38:24.41ID:+DS6ozoh
オープンソースのエディタのソース読んだ?
話はそれからだ
2016/11/08(火) 10:18:57.02ID:Tr1jXB8d
>>427
imm32.dllの中にImmGetCompositionStringが無いよって言ってるんだから
ImmGetCompositionStringAかImmGetCompositionStringW探せって言ってるんだけど…
2016/11/08(火) 11:11:17.92ID:crOcTVn5
Declare Function ImmGetCompositionString Lib "IMM32" Alias "ImmGetCompositionStringA" (ByVal hIMC As Integer, ByVal dwIndex As Integer, ByVal lpBuf As StringBuilder, ByVal dwBufLen As Integer) As Integer
に変えたら解決しました。ありがとうございます(*^-^*)

>>428
なるほど、確かにそうやって勉強できますね!
探してみます。ありがとう
2016/11/08(火) 11:49:04.58ID:h2p8PH96
ん?
いちいちAとかWとかつけなくても自動的にUnicodeバージョンが選択されるように
なってるはずだと思ったけど、VBは違うのか?
2016/11/08(火) 12:11:48.40ID:h2p8PH96
DllImport使わずにDeclareなんてVBのレガシー機能使ってるからかな。
ちなみに、デフォではANSIバージョンが選択されるんだな記憶違いだった
2016/11/08(火) 13:57:55.49ID:VtVauF4w
わざわざAliasなんて付けるから自動選択が働かない
なんでか知らんけどDeclareのサンプルはほとんどAlias付けてるんだよな
VB6だと必須だったのかね?
2016/11/08(火) 15:14:26.16ID:Tr1jXB8d
>>433
付けないとエラーになるっつってんだろ
2016/11/08(火) 15:23:43.48ID:VtVauF4w
あ、ごめん
Declare Autoにした場合のみだったのね
2016/11/08(火) 20:21:53.56ID:t3tssHtU
デフォはどっちかすぐ忘れるから明示する
437デフォルトの名無しさん
垢版 |
2016/11/09(水) 00:41:48.78ID:NSJDTbF5
>>416
駄目です。
2016/12/06(火) 23:28:37.80ID:qDbNXMxz
テキストボックスとかコントロールをコピーしたいんだけど、簡単にできませんかね?
2016/12/07(水) 00:48:28.39ID:wAmrJ/1m
ctrl-c、ctrl-v じゃあかんの?
2016/12/07(水) 00:59:33.95ID:SEeb/ONi
すいません、インスタンスをコピーです
2016/12/07(水) 02:09:55.02ID:fOypxOSG
>>438
簡単にできる
http://ideone.com/ZFaUb7
2016/12/20(火) 21:56:31.88ID:f9HTxJj+
データベースから大量のデータを取得するときってDataTableとDataReaderどっちがいいの?
2016/12/20(火) 22:13:21.49ID:wmh5vlKz
DataTableはオンメモリだから処理できるデータ量には限界があるし、
DataTable.Loadだと全部のロードが終わるまで処理を始められないので
ロード中のIO待ちの時間が無駄になる。
もし大量データ処理時のメモリ使用量やスループットが問題になっているなら
DataReaderでストリーミング処理することで性能を大幅に改善できるはず。
444デフォルトの名無しさん
垢版 |
2016/12/20(火) 22:40:05.78ID:gUOuUtAj
youtubeを開くと
一番上の検索ボックスがさ
入力無しだとグレイ文字で検索って表示されてて
(この検索文字にカーソルは移動しない)
何かを入力するとグレイ文字が消える
これってどうやって実装するんすかね?
パッと思いつかんのだが。。。
445デフォルトの名無しさん
垢版 |
2016/12/20(火) 22:43:07.08ID:TSG9jdVQ
パッと思いつかん時はジックリ考えろ
それでも思いつかんかったらソープ行け
2016/12/20(火) 23:12:04.98ID:wmh5vlKz
>>444
HTMLのplaceholderだよ
2016/12/20(火) 23:16:47.98ID:gUOuUtAj
>>446
ありがとう
知らんかったわ
勉強になった

vbでも実装できないかな?
2016/12/23(金) 17:17:30.06ID:89cvwMZr
時々テキストボックスを監視して、空の時だけ重ねた別のテキストプレーンにSearchとか表示させるとか…
他にも色々方法はあるやろ
2016/12/23(金) 17:58:29.05ID:89cvwMZr
言った手前
Private Sub TextBox1_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox1.TextChanged
If textBox1.Text = "" Then
textBlock1.Text = "Search"
Else
textBlock1.Text = ""
End If
End Sub
2016/12/23(金) 18:19:03.14ID:jhZLEzKr
カレットが入るまでは淡色の文字表示しとってカレットが入ったら背景画像に差し替える
文字が入ったら白背景とかw
2016/12/29(木) 07:29:02.60ID:qvNXwZDz
データベースをアクセスするプログラムってACCESS以外は、埋め込みSQLとC言語を使ってUNIX上でしかやったこと無いロートルですが、
VB.NETでDBアクセスって今は何が主流なん?
ADO.NET関係の書籍って、アマゾンでも結構古いのが多いんだけど、ADO.NETって過去の遺物なん?
2016/12/29(木) 07:50:42.07ID:HW4fqFSE
SQLServerならばADO.NET
OracleならODP.NETだな
2016/12/29(木) 11:13:15.20ID:BD9K+jOv
ADO.NETは過去の遺物だけど現役だよ
新機能の拡張が期待できないってだけ
Entity FrameworkやサードのフレームワークもADO.NETに依存してる
ADO.NETは抽象的なフレームワークで実装はプロバイダごとに異なる
MSならSqlClient、OracleならODP.NET、ポスグレならNpgsql
ODBCドライバやOleDbドライバ用の実装もある
2016/12/29(木) 11:15:53.14ID:KEC+z4ay
>>441
コピーできましたが、コンボボックスのデータソースなどがコピーされませんでした。
完璧に同じ物をコピーすることって簡単にできないでしょうか? 
2016/12/29(木) 11:42:16.70ID:/FtNyMoj
俺はSQLite使ってる
2016/12/29(木) 17:42:29.56ID:qvNXwZDz
>>452>>453
d。
かなり古い書籍だけど教科書としては十分といことですね。
何冊か尼でポチってみます。
2016/12/29(木) 18:11:55.59ID:ICm4kcbN
今時ADO.NETなんて括りに意味はないぞ
Entity FrameworkとかもADO.NETに含まれているらしく、
もはや「.NETのデータベース関連の機能」というだけのふわっとした総称でしかない
単純に低レベルAPI使って普通にSQL投げたいだけならDbConnectionのあたりを適当にググれば十分
2016/12/29(木) 19:04:08.62ID:qvNXwZDz
>>457
トランザクションもできるんですね。
今やろうとしてるのには十分そうです
2016/12/29(木) 20:37:49.89ID:KEC+z4ay
ストアドパッケージ使ってるとEntity Frameworkを使う気になれない
2017/01/02(月) 12:24:29.63ID:sj4687w4
VBに限らずだけど、ORMっていうの?オブジェクトに対してSQL生成してくれる
機能あるけど、SQL書かないってそんなにメリットあるんですかね?
複雑なSELECT文ならORMでは対応しずらいので結局SQL書くだろうし、その他の
INSERT・UPDATE・DELETE・MERGEなんてバリエーションが限られるだろうから、
テーブル名と列名さえあれば、ExcelVBAとかVBSとか自作VBツールとかで自動生成可能なはず。

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

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

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

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

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

つかインピーダンスミスマッチでググれ
2017/01/02(月) 22:21:51.15ID:51wJDYeu
めんどくさいからシリアライズしてBlobにぶち込んでやる
472デフォルトの名無しさん
垢版 |
2017/01/08(日) 15:10:33.24ID:mLyjhJYP
C#スレのVBキチガイはよ引き取って
VB.NETerってガイジしかいないのか?
2017/01/11(水) 00:13:49.51ID:VkQ91OHA
はい
ガイジしかいないので
こっちには来ない方が身のためですよ
474デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:24:13.54ID:OuvvCRzR
ああああああああああああああああああああああああああああ
あいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい

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

ええええええええええええええええええええええええええええええええええええええええええええええ
475デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:32:49.65ID:NUbhUDcn
ああああああ
476デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:33:24.09ID:NUbhUDcn
ああああああああああああああああああああああああああああああああああああ
477デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:34:28.71ID:NUbhUDcn
あああああああああああああああああああああああああああああああああああああああああ
いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
うううううううううううううううううううううううううううううううううううううううううううううううううううううううう
ええええええええええええええええええええええええええええええええええええええええええええ
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
かかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかかか
きききききききききききききききききききききききききききききききききききききききききききき
くくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくくく
けけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけけ
こここここここここここここここここここここここここここここここここここここここここここここここ
http://http://http://http://http://http://http://http://http://http://http://http://http://http://
478デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:36:20.68ID:NUbhUDcn
あああああああああああああああああああああああああああああああああああああああああ
いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい
うううううううううううううううううううううううううううううううううううううううううううううううううううううううう
ええええええええええええええええええええええええええええええええええええええええええええ
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
479デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:36:42.86ID:NUbhUDcn
http://http://http://http://http://http://http://http://http://http://http://http://http://http://
>>1-10>>11-20>>21-30>>1-10>>11-20>>21-30>>31-40>>41-50>>51-60
480デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:38:00.89ID:C+ssGhBJ
>>1-1000
481デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:38:48.36ID:C+ssGhBJ
>>1-1000
482デフォルトの名無しさん
垢版 |
2017/01/19(木) 16:39:02.17ID:TQyidl81
>>1-1000
2017/01/20(金) 21:19:52.47ID:rk0wOt7y
My.Computer.FileSystem.WriteAllText  連続で使うとだめなのかなぁ。
30行目あたりでロックかかったまま、削除もできない。
2017/01/20(金) 21:53:51.85ID:gkjLNWs8
Fileクラスの方のWriteAllTextを使ってみたら?
Myは基本的に糞なので、使う前に標準の.NETのAPIで同じようなのがないか確認したほうがいいよ
2017/01/21(土) 16:11:14.78ID:q70X02VY
Fileクラス側を使ったらうまくいった! 
今回はたまたま見つけたからいいけど、見逃してたらわからないかも・・
2017/02/03(金) 20:50:22.69ID:IoUjw6fZ
VB2010で作ったやつが↓の3ソフトでことごとくウィルス判定されるんだが・・・どういうこと?
Bkav:[.NET executable]
CrowdStrike Falcon:(ML)malicious_confidence_100% (D)
Qihoo-360:HEUR/QVM03.0.0000.Malware.Gen
2017/02/04(土) 08:24:10.05ID:Drluuz2Q
おまえがウィルスなんだよ
2017/02/04(土) 08:56:18.21ID:jd1YqHKB
>>487

隕石を爆破したりしないぞ?
2017/02/07(火) 08:56:41.61ID:/DttlwM1
スリープからの復旧をSystemEvents.PowerModeChangedイベントで取得してるんだけど
Windows7やWindows8.1のデスクトップPCでは正常に動作するけどWindows8.1版のSurface Pro3だと動作しない

解決方法ご存じないですか?
2017/02/07(火) 09:30:57.72ID:YgeqT8Pn
Instant Goとかその辺で実際にはスリープになってないとかそんなんじゃない
Windows 10のモダンスタンバイとやらではこんな記事があったけど
https://blogs.msdn.microsoft.com/japan_platform_sdkwindows_sdk_support_team_blog/2016/06/09/
2017/02/08(水) 10:12:32.24ID:AcXEhNH6
datareaderで数万件のデータをデータベースから取得したいんですが数十秒くらいかかってしまいます
どうにかはやくできないでしょうか?
2017/02/08(水) 14:47:01.33ID:MzR5zH1p
クエリを簡単にする
列数を減らす
2017/02/08(水) 19:21:32.32ID:jEQSlM2Q
普通に書けばそんな時間かからんよ
2017/02/08(水) 22:02:33.67ID:AcXEhNH6
単純なSELECTなんですよ
30000件で15秒もかかってしまいます
最後までread回しただけなのに…
2017/02/08(水) 22:07:06.15ID:qO3OS2QJ
ディスクやネットワークが糞なんだろ
あと見落としやすいのがDBサーバーのメモリ量
繰り返し読むならキャッシュヒット率が全然違ってくる
いずれにしてもVB関係ない
2017/02/08(水) 22:11:04.89ID:qO3OS2QJ
まずはVBを介さずにDBクライアントを使って直接コマンド実行してアンロードしてみたらどうだ
それでも遅かったらVB関係ないとわかるし、遅くなかったらVBでの読み方がまずいんだろう
一番にその程度の切り分けはやれよ
2017/02/08(水) 23:05:47.54ID:jRyNzfB1
ListViewのアイテムをすべて選択するコードなんですが
5万件くらいで重いのですが軽くする方法は無いものでしょうか。

For i As Integer = 0 To lvMain.Count - 1
lvMain.SelectedIndices.Add(i)
Next
2017/02/08(水) 23:15:30.62ID:qO3OS2QJ
>>497
前提がおかしい
全件に対して処理をすることが最初から想定されてるんなら全件処理のコマンドを用意しとけば済む話だろう
ListViewに読み込む必要も選択する必要もない
2017/02/08(水) 23:58:47.11ID:Bd3hz3fH
>>497
lvMain.BeginUpdate() 〜 lvMain.EndUpdate() で囲えば多少改善するかもしれない
それでもダメなら VirtualMode を使う
2017/02/09(木) 07:08:33.82ID:nszO0639
>>499
残念ながらBeginUpdate()では改善しませんでした。
ListViewは既にVirtualModeです。
どうもSendMessageでLVM_SETITEMSTATEを送ってやればよさそうという
ところまで来ました。
2017/02/09(木) 23:54:41.55ID:nszO0639
LVM_SETITEMSTATEをSendMessageで一瞬で全選択できるようになりました。
2017/02/10(金) 12:28:40.22ID:izdz/JI9
全選択なんて組み込みのメソッドで用意されててもよさそうなものだけどないんだねw
今まで気づかなかった
2017/02/20(月) 16:07:27.58ID:OgBdAYpr
ふらっとC#スレの質問見てちょっと思ったんんだけど、
C#ではメソッドの戻り値に属性を適用する明示的な書き方があるけど、
VBではこれどうやって書くんだっけ?
https://msdn.microsoft.com/ja-jp/library/b3787ac0.aspx
2017/02/20(月) 17:17:50.36ID:M6W8cvGm
>>503
https://msdn.microsoft.com/ja-jp/library/z0w1kczw(v=vs.120).aspx
書き方はC#と同じだな
ただし、戻り値に属性指定とかNot supportedらしい

そもそも戻り値はメソッド内で生成されるんだから、属性を呼び出し側で指定できるのがおかしな気がする
2017/02/20(月) 19:49:55.03ID:C+5kpca0
>>504
ありがと
2017/02/21(火) 19:33:45.43ID:zN7/wz8g
経過時間を設定したContent.Timeで割って余りが0の時にReload()を実行するようになってるんですが、
Reload()を何回も実行するんです。
minuteをContent.Timeで割った回数実行してしまうようなんですよね。

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

Sub _Check()
'1分過ぎた
minute += 1
'すべてのページをチェック
For Each Content As Contents In List
'指定した時間が過ぎていたら
If minute Mod Content.Time = 0 Then
'確認=>表示 再生
If Content.ReLoad() Then
2017/02/21(火) 19:35:31.07ID:zN7/wz8g
>>506
補足ですけど、minuteが1進む毎(1分)に、minuteをContent.Timeで割った回数実行してしまうみたいです。
2017/02/21(火) 21:50:52.18ID:OY4bcTch
エスパー召喚が必要だねw
2017/02/21(火) 22:26:45.05ID:zN7/wz8g
>>508
私がコピペした部分じゃ足りないですか??
じゅうぶんだと思うんですが。
2017/02/22(水) 10:13:28.88ID:hB8WtiG5
そこで足りると思うんなら
ステップ実行でわかるだろうよ
2017/02/22(水) 11:03:24.94ID:di0eqEJ2
>>510
ステップ実行なんてのがあるなんて知りませんでした。
ありがとうやってみます。
2017/02/25(土) 08:49:36.06ID:Z1WBMYZL
dllのロードに関して質問がございます。

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

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

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

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

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

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

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

っていうか、教えられなくてもそれぐらいのこと思いつくようでないと
実用的なプログラムなんて何も書けないよw
■ このスレッドは過去ログ倉庫に格納されています