問題タブ [vb.net]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
7712 参照

c# - コンソールアプリケーションの信頼性の高いタイマー

.NETには3つのタイマータイプがあることを認識しています( .NET Frameworkクラスライブラリのタイマークラスの比較を参照)。メインスレッドがビジーの場合、他のタイプがドリフトする可能性があるため、スレッドタイマーを選択しました。これは信頼できるものである必要があります。

タイマーの制御でこのタイマーが機能する方法は別のスレッドに配置されるため、ビジーでないときに親スレッドで完了した作業の開始に合わせて常にチェックすることができます。

コンソールアプリケーションでのこのタイマーの問題は、タイマーが別のスレッドで動作している間、メインスレッドがアプリケーションを閉じるために何もしていないことです。

ループを追加しようとしましたwhile trueが、タイマーが切れるとメインスレッドがビジー状態になります。

0 投票する
2 に答える
5967 参照

c# - C#/VB.NETでのT-SQLCASTのデコード

最近、私たちのサイトはAsproxボットネット SQLインジェクション攻撃の復活で大騒ぎになりました。詳細に立ち入ることなく、攻撃はT-SQLコマンドをASCIIエンコードされたBINARY文字列にエンコードすることによってSQLコードを実行しようとします。これは次のようになります。

これをSQLでデコードすることはできましたが、その時点で何が起こっているのか正確にわからなかったため、これを行うことには少し警戒していました。

簡単なデコードツールを作成しようとしたので、 SQLServerに触れることなくこのタイプのテキストをデコードできました。デコードする必要がある主な部分は次のとおりです。

次のコマンドをすべて試しましたが、運がありませんでした。

SQL Serverを使用せずにこのエンコーディングを変換する適切な方法は何ですか?出来ますか?私もそれに精通しているので、VB.NETコードを使用します。


さて、私はここで何かが欠けていると確信しているので、ここに私がいます。

私の入力は基本的な文字列なので、エンコードされた部分のスニペット(4445434C41(DECLAに変換))から始めました。最初の試みはこれを行うことでした...

...そして、各文字をバイトに変換したので、私が入力したものとまったく同じものを返すだけでした。

まだそれを行うメソッドがわからないため、2文字ごとに手動で1バイトに解析する必要があることに気付きました。そのため、私の小さなデコーダーは次のようになります。

最初の数ペアは問題ないように見えますが、「4C」ペアに到達するとループが停止し、文字列の形式が正しくないと表示されます。

興味深いことに、デバッガーをステップ実行して、その時点まで解析できたバイト配列のGetStringメソッドに移動すると、結果として「、-+」が返されます。

何が欠けているのかを理解するにはどうすればよいですか?バイトを解析するのではなく、バイトごとに「直接キャスト」を実行する必要がありますか?

0 投票する
11 に答える
68591 参照

c# - CSVファイルを.Netの強く型付けされたデータ構造にインポートします

CSVファイルを強く型付けされたデータ構造にインポートする最良の方法は何ですか?

0 投票する
15 に答える
102595 参照

c# - .NET での使用後にオブジェクトを Null/Nothing に設定する

オブジェクトを使い終わったら、すべてのオブジェクトをnull( VB.NET で) に設定する必要がありますか?Nothing

.NET では、インターフェイスを実装するオブジェクトのインスタンスを破棄して一部のリソースを解放することが不可欠であることを理解していますIDisposableが、オブジェクトは破棄された後でも何かになる可能性があります (したがって、isDisposedフォームのプロパティ)。記憶の中で、または少なくとも部分的に?

また、オブジェクトがスコープ外になると、ガベージ コレクターの次のパスに備えてコレクションのマークが付けられることも知っています (ただし、これには時間がかかる場合があります)。

したがって、これを念頭に置いnullて、システムがメモリを解放する速度を上げるように設定します。これは、メモリが範囲外であることを解決する必要がなく、悪い副作用があるからですか?

MSDN の記事では例としてこれを行うことはありません。現在、害が見られないため、これを行っています。ただし、さまざまな意見が混在しているため、コメントは役に立ちます。

0 投票する
3 に答える
5755 参照

vb.net - 「最良の」差分アルゴリズム

テキストの2つの異なるバージョン間の変更を見つけるために、VB.NETにDiffアルゴリズムを実装する必要があります。私はウェブの周りにスカウトを持っていて、いくつかの異なるアルゴリズムを見つけました。

ここにいる誰かが、私が実装できる「最良の」アルゴリズムを知っていますか?

0 投票する
5 に答える
12579 参照

vb.net - VB.NET アプリケーションを展開する最良の方法は何ですか?

通常、VB.NET プログラムを作成するときに ClickOnce を使用しますが、いくつかの欠点があります。私は他のものを実際に使用したことがないので、私のオプションが何であるかわかりません.

ClickOnce の欠点:

  • 複数のファイルで構成されている - 多数のファイルを管理し、ダウンローダーでそれらのファイルをダウンロードするよりも、1 つのファイルを配布する方が簡単なようです。
  • CD インストール用に再度ビルドする必要があります (エンド ユーザーがインターネットを使用していない場合)。
  • プログラムが Program Files に収まらない - 一部のアプリケーション キャッチ フォルダーに隠され、ショートカットするのがはるかに難しくなります。

ClickOnce の利点:

  • できます。魔法のように。また、VisualStudio 2008 Express に組み込まれています。
  • アプリケーションのアップグレードを容易にします。

Windows インストーラーもこれらのことを行いますか? ClickOnce の短所がないことはわかっていますが、ClickOnce の長所もある場合は知っておくとよいでしょう。

更新: 最終的に Wix 2 を使用しました (Wix 3 は利用可能でしたが、プロジェクトを行った時点では、有能なチュートリアルはありませんでした)。私が(最終的に)必要とした3つのことをサポートしてくれたので良かったです. オプションの Windows で起動するショートカット、インストーラーが完了したら起動するオプション、およびユーザーが間違ったオプションをクリックしないように上司が考える 3 つの段落のテキスト。

0 投票する
4 に答える
841 参照

.net - Windows フォーム アプリケーションで実行時間の長いコードを見つける最善の方法は何ですか?

VB.Net で記述された Windows フォーム アプリを継承しました。アプリの特定の部分が非常に遅くなります。コードのどの部分が問題を抱えているかを見つける最も簡単な方法は何ですか? アプリを高速化するために、最も遅いサブルーチンをすばやく見つけて最初に取り組む方法を探しています。

各サブルーチンの所要時間を表示するコード プロファイラー製品がいくつか購入可能であることは知っていますが、無料のソリューションを見つけたいと思っていました。

0 投票する
2 に答える
1945 参照

vb.net - VB.NET ソリューションの SVN クライアント無視パターン

TortoiseSVN が VB.NET ソリューションに持つべき最適な SVN 無視パターンは何ですか?

0 投票する
3 に答える
1669 参照

vb.net - 勤務日の時間をラップする最良の方法は何ですか?

日付に時間を追加し、新しい日付を稼働日にラップしたい状況があります。この新しい日付を決定する関数を作りましたが、何も忘れていないことを確認したいと思います。

加算される時間は「遅延」と呼ばれます。代わりに、簡単に関数のパラメーターにすることができます。

提案を投稿してください。【VB.NET注意事項】

: 遅延が 9 時間を超える場合、これはおそらく機能しません。3 から 3 までは決して変化しないはずです。

編集: 目標は、現在の時刻に数時間を追加した結果として得られる日付と時刻を見つけることです。これは、提出期限のデフォルト値を決定するために使用されます。期日を取得するために、現在の時刻に 3 時間を追加したいと考えています。ただし、当日の午後 5 時を超える期日は望ましくありません。そこで、(今日の午後 5 時まで) と (明日の午前 8 時から) の間で時間を分割して、午後 4 時に 3 時間を追加すると午前 19 時になるようにしました。時間は明日の初めに追加されます。

0 投票する
3 に答える
130590 参照

vb.net - 「break」に相当する VB キーワード

私は職場の Visual Basic チームに移りました。

Visual Basic での同等のキーワードbreak、つまり、メソッドではなくループを早期に終了するキーワードは何ですか?