問題タブ [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.
c# - MSDN C# DeflateStream サンプル コードの問題
以下のサンプルで、100 (buffer.Length + 100) を追加する必要がある理由を教えてください。buffer.Length は、解凍されたバッファーの長さと同じである必要があるため、さらに 100 を追加する必要はありません。:-)
http://msdn.microsoft.com/en-us/library/bc2dbwea.aspx
前もって感謝します、ジョージ
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
- ジャコ
c# - Deflateを使用して文字列を圧縮および解凍します
文字列を圧縮および解凍する必要があります
コードは次のとおりです。
と
UnZipStrメソッドにエラーがあるようです。誰かが私を助けることができますか?
.net - deflatestreamを使用して、圧縮データを使用して.NET(Vb)でHTTPPOSTを実行します
VB.Netクライアントから投稿しているデータが大きいので、圧縮したいと思います。「POST」を実行したいのですが、Apacheサーバーはmod_deflateをサポートしています。DeflateStreamを郵便番号に統合しようとしていますが、機能していないようです。
標準コードを使用して、圧縮せずにデータを送信できます。
ただし、DeflateStreamを使用して圧縮を追加する方法がわかりません。私の推測は次のとおりですが、機能していないと思います。
質問。
- 圧縮ストリームのContentLengthを送信する必要がある場合、送信するにはどうすればよいですか。
- データストリームに書き込むか、圧縮する必要がありますか?
- これは、DataStreamとDeflateStramを一緒に使用する方法ですか?
- サーバー側では、Apacheが自動的に膨張を処理することになっていることを考えると、Apacheが機能していることをどのように知ることができますか(これまでのところ、上記の2つの方法の間に投稿の節約はありません)。
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 から正常に読み取る既知の方法はありますか? それとも、同じ機能を持つサードパーティのオープンソース アセンブリがいくつかあるのでしょうか?
asp.net-mvc-2 - コンテンツを圧縮して縮小する方法を教えてください。
Response.Filter を GZip または Delfalte ストリームとして宣言することで応答を圧縮できることはわかっていますが、圧縮と圧縮の両方を一緒に実行するにはどうすればよいでしょうか? Stream を継承する新しいクラスを宣言し、最初にコンテンツを縮小してから、サポートされている User-Agent に応じて GZip または Deflate で圧縮しますか?
.net - .NET デフレート ストリーム エラー/バグ
.NET Deflate Stream の使用中に次のエラーが発生した人はいますか?
このエラーは、ディスクから読み取った deflate ストリームを解凍するときに発生します。私は、デフレートでエンコードされた小さなチャンクが多数含まれる単純なインデックス付きファイルを使用しています。数十万 (または数百万) の圧縮アイテムのうち、このエラーが発生するのは 1 つだけであるため、これは非常にまれなエラーです。
HuffmanTree.CreateTable メソッドが例外であり、ルーチンが制限を超えて配列を埋めようとしているようです。
解凍のために元のサイズの 2 倍の配列を割り当てようとしましたが、それでもエラーがスローされます。
デコードされたデータは無傷のように見えますが、ルーチンはデコードを試み続け、バッファをオーバーフローさせます。
このエラーが発生したかどうかを試行/キャッチして検出し、対処しようとすることができると思います。
問題への洞察をいただければ幸いです。
(作業している 64 ビット環境でさまざまな問題を引き起こしている DotNetZip を試しました。)
c# - GZipStreamとDeflateStreamはより大きなファイルを生成します
C#でdeflate / gzipストリームを使用しようとしていますが、圧縮後のファイルが以前よりも大きくなっているようです。
たとえば、900koのdocxファイルを圧縮しますが、1.4Moのファイルが生成されます。
そして、それは私が試したすべてのファイルに対してそれを行います。
私のやり方が間違っているのかもしれませんか?これが私のコードです:
c# - DeflateStreamがデータを解凍しない(初回)
だからここに奇妙なものがあります。Base64でエンコードされた収縮した文字列を取得して、元のデータを返すこのメソッドがあります。
に2番目の呼び出しを追加しない限り、これは空の文字列を返しますds.CopyTo(inflate)
。(WTF?)
(Flush
/ Close
/ Dispose
onds
は効果がありません。)
DeflateStream
最初の呼び出しで0バイトをコピーするのはなぜですか?でループを試しましRead()
たが、最初の呼び出しでゼロを返し、2番目の呼び出しで機能します。
更新:これが私がデータを圧縮するために使用している方法です。