問題タブ [deflatestream]

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 投票する
2 に答える
3448 参照

c# - MSDN C# DeflateStream サンプル コードの問題

以下のサンプルで、100 (buffer.Length + 100) を追加する必要がある理由を教えてください。buffer.Length は、解凍されたバッファーの長さと同じである必要があるため、さらに 100 を追加する必要はありません。:-)

http://msdn.microsoft.com/en-us/library/bc2dbwea.aspx

前もって感謝します、ジョージ

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

c# - 不可解な.NetC#DeflateStreamの問題

誰かが私を悩ませている問題に光を当てることができるのだろうか:

圧縮解凍テストクラスを作成しています。それをテストするために、データセットをメモリストリームにシリアル化し、圧縮し、解凍して結果を比較しています。

圧縮は問題ありませんが、非圧縮はそれが汚れに当たる場所です。これは解凍機能です。

サイズ65536のバッファを使用すると、解凍されたストリームは、圧縮されていない場合よりも常に1バイト少なくなります。

今、これは私が戦っている2番目の問題に私をもたらします。一部のバッファサイズでは、抽出する圧縮データがまだ残っている場合でも、uncompressStream.Readは0を返します。

このような場合、deflateStream.Read(s)はdo {}ループで1回だけ実行され、バッファサイズを1バイト増やすと、バッファサイズに等しい非圧縮ストリームが返されます(欠落しているバイトを除く)。

65536のバッファサイズの出力:(元の非圧縮データは207833です)

189544のbuffersize(コードがタンクに入るいくつかのマジックナンバー)

また、バッファサイズ65536の3番目の読み取りに注意してください。例:bytesRead:[58472]バッファにまだデータが残っているので、明らかにこれも65536である必要がありますか?

どんなアイデアでも歓迎です。

tia

  • ジャコ
0 投票する
1 に答える
29782 参照

c# - Deflateを使用して文字列を圧縮および解凍します

文字列を圧縮および解凍する必要があります

コードは次のとおりです。

UnZipStrメソッドにエラーがあるようです。誰かが私を助けることができますか?

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

.net - deflatestreamを使用して、圧縮データを使用して.NET(Vb)でHTTPPOSTを実行します

VB.Netクライアントから投稿しているデータが大きいので、圧縮したいと思います。「POST」を実行したいのですが、Apacheサーバーはmod_deflateをサポートしています。DeflateStreamを郵便番号に統合しようとしていますが、機能していないようです。

標準コードを使用して、圧縮せずにデータを送信できます。

ただし、DeflateStreamを使用して圧縮を追加する方法がわかりません。私の推測は次のとおりですが、機能していないと思います。

質問。

  1. 圧縮ストリームのContentLengthを送信する必要がある場合、送信するにはどうすればよいですか。
  2. データストリームに書き込むか、圧縮する必要がありますか?
  3. これは、DataStreamとDeflateStramを一緒に使用する方法ですか?
  4. サーバー側では、Apacheが自動的に膨張を処理することになっていることを考えると、Apacheが機能していることをどのように知ることができますか(これまでのところ、上記の2つの方法の間に投稿の節約はありません)。
0 投票する
2 に答える
1289 参照

mono - Mono & DeflateStream

私は簡単なコードを持っています

そしてds2から読むとき、私は次のものを持っています:

スタックトレース:

at (ラッパーマネージからネイティブ) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>

at (ラッパーマネージからネイティブ) System.IO.Compression.DeflateStream.ReadZStream (intptr,intptr,int) <0x00004>

C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System の System.IO.Compression.DeflateStream.ReadInternal (byte[],int,int) [0x00031] で。 IO.Compression\DeflateStream.cs:192

C:\cygwin\tmp\monobuild\build\BUILD\mono-2.6.3\mcs\class\System\System の System.IO.Compression.DeflateStream.Read (byte[],int,int) [0x00086] で。 IO.Compression\DeflateStream.cs:214

C:\Users\ilukyanov\Desktop\Cassini\GZipDemo\Main.cs:27 の testtesttest.MainClass.Main (文字列[]) [0x00041] で

at (ラッパー ランタイム呼び出し) .runtime_invoke_void_object (オブジェクト、intptr、intptr、intptr)

このアプリケーションは、異常な方法で終了するようランタイムに要求しました。詳細については、アプリケーションのサポート チームにお問い合わせください。

この問題は、Mono 2.6.1 & 2.6.3 で発生します...

Mono で DeflateStream から正常に読み取る既知の方法はありますか? それとも、同じ機能を持つサードパーティのオープンソース アセンブリがいくつかあるのでしょうか?

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

asp.net-mvc-2 - コンテンツを圧縮して縮小する方法を教えてください。

Response.Filter を GZip または Delfalte ストリームとして宣言することで応答を圧縮できることはわかっていますが、圧縮と圧縮の両方を一緒に実行するにはどうすればよいでしょうか? Stream を継承する新しいクラスを宣言し、最初にコンテンツを縮小してから、サポートされている User-Agent に応じて GZip または Deflate で圧縮しますか?

0 投票する
0 に答える
828 参照

.net - .NET デフレート ストリーム エラー/バグ

.NET Deflate Stream の使用中に次のエラーが発生した人はいますか?

このエラーは、ディスクから読み取った deflate ストリームを解凍するときに発生します。私は、デフレートでエンコードされた小さなチャンクが多数含まれる単純なインデックス付きファイルを使用しています。数十万 (または数百万) の圧縮アイテムのうち、このエラーが発生するのは 1 つだけであるため、これは非常にまれなエラーです。

HuffmanTree.CreateTable メソッドが例外であり、ルーチンが制限を超えて配列を埋めようとしているようです。

解凍のために元のサイズの 2 倍の配列を割り当てようとしましたが、それでもエラーがスローされます。

デコードされたデータは無傷のように見えますが、ルーチンはデコードを試み続け、バッファをオーバーフローさせます。

このエラーが発生したかどうかを試行/キャッチして検出し、対処しようとすることができると思います。

問題への洞察をいただければ幸いです。

(作業している 64 ビット環境でさまざまな問題を引き起こしている DotNetZip を試しました。)

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

c# - GZipStreamとDeflateStreamはより大きなファイルを生成します

C#でdeflate / gzipストリームを使用しようとしていますが、圧縮後のファイルが以前よりも大きくなっているようです。

たとえば、900koのdocxファイルを圧縮しますが、1.4Moのファイルが生成されます。

そして、それは私が試したすべてのファイルに対してそれを行います。

私のやり方が間違っているのかもしれませんか?これが私のコードです:

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

c# - DeflateStreamがデータを解凍しない(初回)

だからここに奇妙なものがあります。Base64でエンコードされた収縮した文字列を取得して、元のデータを返すこのメソッドがあります。

に2番目の呼び出しを追加しない限り、これは空の文字列を返しますds.CopyTo(inflate)。(WTF?)

Flush/ Close/ Disposeondsは効果がありません。)

DeflateStream最初の呼び出しで0バイトをコピーするのはなぜですか?でループを試しましRead()たが、最初の呼び出しでゼロを返し、2番目の呼び出しで機能します。


更新:これが私がデータを圧縮するために使用している方法です。