問題タブ [binary]

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 に答える
441 参照

.net - バイト[]を検索しています

文字列内の文字列の検索は .NET で非常によくサポートされていますが、検索する必要があるデータが文字列ではない場合はどうすればよいでしょうか?

NetworkStream を介して通常のチャンクで到着するバイナリ データがあります。パケットはバイナリですが、すべてバイトのシグネチャ シーケンスで始まります。チャンクをより大きなバッファーに蓄積し、パケット開始の署名を探します。

私が本当に探しているのは、メソッドbyte[]と同等です。String.IndexOf(ss)ループとステートマシンを使ってこれを自分で実装しなければならなくなる気がします。

助言がありますか?あなたに!


示唆されているように、 Array.IndexOf(byte) は少なくとも明示的なループを節約します。投稿以来、最初の署名バイトを見つけて、最後の署名バイトがあるべき場所を先に調べて、両方が一致する場合は、文字列の残りの部分を力ずくで比較してみることにしました。このアプローチには、誤った一致を安価に拒否し、別のチャンクを保留している部分的な署名がある場合に安価に拒否できるという利点があります。

Googleは、上記の素晴らしい計画が「KMP」またはKnuth-Morris-Prattアルゴリズムの退化したケースであることを明らかにしています. 明るい面では、クヌースが彼の名前を付けた場合、それはおそらく油を塗った稲妻です.

ドナルド・クヌースにポイントを与えることはできないので、ネルソンに行くと思います。

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

python - Pythonでバイナリ16進形式のデータを解凍するにはどうすればよいですか?

PHP のpack()関数を使用して、文字列をバイナリ 16 進数表現に変換しました。

H* フォーマットは、「16 進文字列、最初に上位ニブル」を意味します。

これを PHP でアンパックするには、H* フォーマット フラグを指定してunpack()関数を使用するだけです。

このデータを Python で展開するにはどうすればよいですか?

0 投票する
1 に答える
2042 参照

sql - MS SQL Server 2005 でバイナリ フィールドを読み取ることができます

データベース (Project Server 2007; dbo.MSP_CALENDAR) のバイナリ フィールドを読み込もうとしています。MS は PSI に機能を実装しません。

みんな提案ある?

前もって感謝します

Sポ

データベース Piblished のテーブル dbo.MSP_CALENDAR で、CAL_DATA という名前のフィールドが見つかりました。このフィールドは BINARY です。このフィールドを文字列または DateTime に CAST または CONVERT しようとしています....... Microsoft はこのフィールドを使用してリソースの個人用カレンダーを保存していますが、Microsoft Office Project Pro 2007 でのみデータを取得することはできません。以前のバージョンでは、カレンダーは日時でした。Project 2007 の新しいバージョンでは、Ms はバイナリ フィールドに情報を入力しました。この情報を読むための解決策を見つけようとしています。

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

matlab - Matlab のバイナリ ファイルの読み書き

matlab に関する私の知識は単に知る必要があるため、これはおそらく初歩的な質問です。それにもかかわらず、ここに来ます:

バイナリ形式で保存されたデータ (16 ビット整数) を含むファイルを取得しました。matlabのベクトル/配列に読み込むにはどうすればよいですか? このデータを matlab のファイルに書き込むにはどうすればよいですか? 大量のデータ (ギガバイト) を読み書きするときのパフォーマンス速度を上げるスマートな調整はありますか?

0 投票する
1 に答える
810 参照

java - オブジェクト(出力|入力)ストリーム バイナリ プロトコル

で使用されるバイナリ プロトコルについて説明しているリソースがあるかどうか疑問に思っていましたObjectOutputStream。もちろん、オブジェクト自体がインターフェイスを実装することでそのデータを指定できることは理解していExternalizableます。そのため、オブジェクト グラフの構造、つまりメタデータをより重視していると思います。

レガシー Java プログラムと対話する必要がある C プログラムを作成しています。ObjectOutputStreamこれらの要件のいずれも変更する方法がないため、プロトコルのリバース エンジニアリングを行っています。(転送に HTTP を使用し、HTTP 応答として Object*Stream を返すサーバーがあります。)

しかし、私はそこにいる他の誰かが以前にこの仕事をしなければならなかったように感じます. 作業をスピードアップするためのリソースを教えてください。

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

binary - BITS/Bytes の推奨される読み方と、操作を実行するためのサンプル コードなど

ビット/バイト、16 進表記、およびプログラミングとの関係について復習する必要があります (C# を推奨)。

良い読書リストを探しています (できればオンラインで)。

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

binary - Sybase データベースのダンプ ファイルのサイズを小さくする方法はありますか?

Sybase データベースをダンプすると、テーブルにデータがあるかどうかは問題ではないようです。ファイル サイズは同じです。これは、ダンプ ファイルがバイナリで論理的ではないため、ダンプ ファイルのファイルはデータベースに割り当てられたサイズに基づいていることが原因であると言われています。Oracle が論理ダンプ ファイルを使用できることは知っていますが、Sybase に同様のことをさせることはできますか、またはダンプ ファイルのサイズを小さくするための他の卑劣な方法はありますか?

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

c# - C# BinaryFormatter - バイナリ データのクラスを調べるにはどうすればよいですか?

オブジェクトをデシリアライズしたいのですが、事前にクラスがわかりません。したがって、次のコードを検討してください...

事前にクラスがわからない場合はどうすればよいですか? たとえば、「MyFile.bin」が MyObject または MyFoo だったとします。インスタンス化するオブジェクトを決定するにはどうすればよいですか?

何かのようなもの...

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

perl - Perlでバイナリ文字列に1を追加する最も簡単な方法は何ですか?

4 バイトのネットワーク順 IPv4 アドレスを含む変数があります (これは pack と整数表現を使用して作成されました)。別の変数があります。これも 4 バイトのネットワーク順序のサブネットです。それらを一緒に追加して、サブネット内の最初の IP を取得するために 1 つ追加しようとしています。

ASCII 表現を取得するにinet_ntoa($ip&$netmask)は、ベース アドレスを取得できますが、それはエラーですinet_ntoa((($ip&$netmask)+1)。次のようなメッセージが表示されます。

何が起こっているのか、私が知る限り、4 バイトを見て、4 バイトが数値文字列を表していないことを確認し、1 を追加することを拒否していることです。

別の言い方をすれば、私がやりたいことは、最下位バイトに 1 を追加することです。これは 4 番目のバイトであることがわかっています。\n\r&\0つまり、文字列を取得して、文字列で終了したいと考えています\n\r&\1。それを行う最も簡単な方法は何ですか?

変数をアンパックして再パックせずにこれを行う方法はありますか?

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

c# - 多次元ジェネリック配列のバイナリ シリアル化の最適化

バイナリシリアル化する必要があるクラスがあります。クラスには、以下の 1 つのフィールドが含まれます。

これらの多次元配列は、かなり大きく (数十万の要素)、任意のプリミティブ型にすることができます。オブジェクトで標準の .net シリアライゼーションを試したところ、ディスクに書き込まれたファイルが大きく、.net は要素の型に関する多くの繰り返しデータを格納していて、おそらく効率的に実行できなかったと思います。

カスタムシリアライザーを探しましたが、多次元の汎用配列を扱うものは見たことがありません。また、シリアライズ後のメモリ ストリームのバイト配列に対する組み込みの .net 圧縮を試してみましたが、期待したほど速く圧縮されませんでした。

私の質問は、カスタム シリアライザーを作成して、この配列を適切な型に最適にシリアル化する必要がありますか (これは少し難しいようです)、または標準の .net シリアル化を使用して圧縮を追加する必要がありますか?

最善のアプローチに関するアドバイス、または多次元ジェネリック配列のシリアル化に取り組む方法を示すリソースへのリンクをいただければ幸いです。前述のように、私が見つけた既存の例はそのような構造をサポートしていません。