問題タブ [binarywriter]
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.
c# - BinaryWriter異常な16進数
BinaryWriterを介したデータの転送で問題が発生しました。
送ろうとすると
それは0x00への出力に入ります-経由
この問題の原因は何ですか?
ご挨拶
.net - ファイルの最後にBinaryWriterだけを使用してデータを追加するにはどうすればよいですか?
Stackoverflowでも同様の質問があったかもしれませんが、問題の解決策を見つけることができないようです。
書き込み可能なバイナリストリームを開き、同じストリームを使用してファイルにデータを追加できるようにしたいだけです。どうやら、書き込み用にファイルを開くと、そこに含まれていたすべてのデータが消去され、新しいデータが開始されます。さらに、読み取り専用のファイルを開くと、書き込みはできず、読み取りのみが可能になります。人々はオンラインで2つの別々のストリームを使用することを提案しました-1つは読み取り用、もう1つは書き込み用です。この場合、それはうまくいかないと思います。
私のサンプルコードを見てください、私は似たようなことをしたいです:
c# - BinaryWriter で大きなファイルを書き込む方法
大きなバイナリファイルを書き込むプログラムがあります。そして、私は問題に遭遇しました:エラーをスローせずにファイル書き込み時に私のプログラムがクラッシュすることがあります(ブロックキャッチは実行されません.私はこの問題を見つけて修正するためにいくつかのテストコンソールアプリケーションを書きます.このようなもの:
そして、私はそのような結果を持っています: 一部のファイルのサイズは 0 です。たとえば、番号が 8、10、15、17、... のファイル
私の自宅の(あまり強力ではない)コンピューターでは、すべてのファイルが正しく書き込まれていますが、私の職場のコンピューターでは、一部のファイルのサイズが 0 になっています。Thread.Sleep(1); のコメントを外すと、(または他の方法でプログラムを遅くします)すべてのファイルは私の仕事用コンピューターでも正しいですが、そのような「修正」は私のサーバーコンピューターでは機能しません。誰がエラーが発生したのか、どうすれば修正できるのか説明できますか? 使用する代わりに try-cath-finally を使用しようとしましたが、catch ブロックはこのエラーをキャッチしません。
c# - サーバーからクライアントにバイト配列を受け取りますか? BinaryReader / BinaryWriter エラー?
こんにちは、私は c# の初心者で、tcp/ip ソケット接続を介してテキスト ファイルを共有するためのサーバーとクライアントを実行しています。BinaryReader / BinaryWriter を使用してクライアントからサーバーにアップロードしましたが、サーバーからクライアントにスタックしました: クライアントからサーバーへ:
サーバー内:
public void ReadCallBack(IAsyncResult ar) {
stream.Dispose();
今、サーバーからクライアントまで同じ方法を使用しようとしましたが、エラーが発生しました
stateObject はエラーですか?
c# - Process.StandardInput.BaseStream にイメージを書き込む高速な方法
多くのデスクトップでキャプチャされた画像をエンコーダー (FFmpeg) stdin に送信しようとしています。
次のコード例は機能します。
このCaptureScreen()
関数は、5 ~ 10 ミリ秒で画像を提供します。
画像を MemoryStream に保存すると、ほとんど時間がかかりません。
しかし、45 ミリ秒ごとに 1 つの画像しか proc.StandardInput.BaseStream に保存できません。
質問は:
保存プロセスをより速く行うことはできますか?
この方法で安定した60 fpsを取得しようとします
c# - BinaryWriterは、AppendModeでの書き込みの開始時にダーティ文字を配置します
重複の可能性:
BinaryWriterがストリームの開始にギブリッシュを追加するのはなぜですか?どうやってそれを避けますか?
この問題は、ファイルに多くのレポートを書き込むNTServiceの実行中に発生します。これは私が使用した単純なコードです:
出力はファイル内で適切にフラッシュされますが、すべての書き込みの開始時に2つの奇妙な文字が表示されます(�)。サービスを複数のマシンにデプロイしましたが、問題は解決しません。
よろしくお願いします。
c++ - std::stringstream を使用した符号なしバイトの読み取り/書き込み
unsigned chars を stringstream に書き込もうとしています。
書き込む必要がある情報には 0x00 が含まれています。0 から 40 までの値を ASCII 文字ではなく、実際の数値として書き込む必要があります。
編集: 明確にするために、0 ~ 40 の値以上のものを書いています。バイナリである必要があります。入ってくるものは、ストリームに書き込まれると文字に変換されるのではなく、そのままにしておく必要があります...
以下は私がやっていることの要旨です。
最終的に何が起こるかというと、0x00 によって文字列ストリームが終了し、0x01 がそこに到達しないようです。
私は同様の方法で読んでいます:
0x00 が書き込まれ、すべてが終了してしまうため、うまくプレイしたくないようです。
それはまさにその通りですか、それとも何かが足りないのですか?ios_base::binary を使用してみました。また、TCHAR の代わりに uint8_t を使用してみましたが、キャストなどの混乱が生じているようです。これが必要なルートかもしれないのではないかと心配していますが、実行する前に確認したいと思います.
簡単に言うと、C# の BinaryReader/Writer に相当する C++ を見つけようとしています。
ありがとう!
c# - ファイルを再度開いた後、ファイルの最後に書き込み続ける
[C#で]ファイルを開いたままにしておくと、複数の入力を書き込むことができ、保存されますが、ファイルを閉じて再度開いて再度書き込みを開始すると、最初から開始され、すべてが上書きされます。私はそれを開こうFileMode.Append
としましたFile.Seek(0, SeekOrigin.End);
ファイルを開くコードは次のとおりです。
常に最後に書き込むことをどのように保証できますか?
c# - BinaryWriter.Write(Int32)
次のような構造体を含むファイルがあります。
単語については、int32が4バイトであることを知っているので、書き込む前に必ず30バイトに拡張し、posをそのまま書き込みます。
ファイルに書き込むコードは次のとおりです。
コードはコンパイルされ、1 つのことを除いて正常に動作します: int32 は書き込まれません。notepad ++を使用してファイルを確認すると、intがあるべき場所に次のように表示SOH NULL NULL NULL
されます。SOHを調べたところ、SOH(見出しの開始)であるはずです:
この文字は、アドレスまたはルーティング情報を含む見出しの開始を示すために使用されます。
私のint32が書いていない理由がわかりますか?
試すコード (ファイルはプロジェクトの bin デバッグ フォルダーに保存されます):
c# - これをどのように短縮できますか?
私はここにこのコードを持っています:
try/catch & Write(Command) はこれらの各メソッドで常に等しいため、この関数を一般化したいと思います。今、これを行う最も効率的な方法は何だろうと思っています。
基本的に、私は次のような方法を考えました:
ただし、他のパラメーター (文字列メッセージなど) を指定することはできませんでした。
もう 1 つの可能性は、パラメーターをオブジェクト型に変更することですが、BinaryWriter
何にアクセスすればよいかわからず、毎回明示的な会話を行う必要があります。何か案は?