問題タブ [zlib]

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

delphi - Delphi2009のZlib

アプリをDelphi2009にアップグレードしています。アプリはSoapを使用し、Zlibを使用してsoapの要求と応答のストリームを圧縮します。これはDelphi2006では正常に機能しますが、Delphi2009では機能しません。

そこで、Delphi 2006に戻り、FastZlibを使用するように変更しました。Delphi2006ではすべて正常に機能しましたが、Delphi 2009では機能せず、解凍エラーが発生します。

他の誰かがこの問題を抱えていましたか?

これを修正するにはどうすればよいですか?

Sandeep

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

deployment - maven-war-plugin 対「ZLIB 入力ストリームの予期しない終了」

私は maven-war-plugin を使用していますが、jboss にデプロイするときに予期しない ZLIB 入力ストリームの終わりが表示されることがあります。これは、ファイルが jboss ディレクトリで作成され、そこに移動/コピーされていないためです。(maven を使用して)修正する方法はありますか?

私の構成:

p>

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

zlib - z/OS USS 上の zlib

z/OS USS (メインフレーム) で z/lib をコンパイルしようとしています。ive は gmake と c89 コンパイラ (c89 標準に準拠していると想定しています) を取得しており、USS は POSIX に準拠しているはずです。

しかし、zlibがつまずいているようです

次のエラーで

FAR *を徐々に取り出すと(ファーポインターだと思いますが、実際にはよくわかりません)、エラーはなくなります。しかし、これはライブラリであるため、これを削除することで他のアーティファクトが生成されるかどうかはわかりません。

誰かアイデアを持っていますか?

古いメインフレームはありますか?

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

c# - Python: Inflate と Deflate の実装

サーバーに送信されるデータがDeflateアルゴリズム (ハフマン エンコーディング + LZ77) で圧縮されている必要があり、 Inflateに必要なデータも送信するサーバーとインターフェイスしています。

Python には Zlib が含まれており、Zlib の C ライブラリはInflateDeflateの呼び出しをサポートしていることは知っていますが、これらは明らかに Python Zlib モジュールでは提供されていません。CompressDecompressを提供しますが、次のような呼び出しを行うと:

次のエラーが表示されます。

Gzip は良くありません。次のような呼び出しを行う場合:

次のエラーが表示されます。

データは真の Gzip ファイルではなく、Deflatedファイルであるため、これは理にかなっています。

利用可能なDeflate実装 (Pyflate) があることはわかっていますが、 Inflate実装については知りません。

いくつかのオプションがあるようです:

  1. PythonでInflateDeflateの既存の実装 (理想) を見つける
  2. InflateDeflateを含む zlib c ライブラリに独自の Python 拡張機能を記述します。
  3. コマンドラインから実行できる何かを呼び出します (zlib のInflate / Deflate呼び出しは Ruby で完全にラップされているため、Ruby スクリプトなど)。
  4. ?

解決策を探していますが、解決策がありません。洞察、建設的な意見、アイデアに感謝します。

追加情報: 文字列のデフレート (およびエンコード) の結果は、必要な目的のために、次の C# コードのスニペットと同じ結果になるはずです。ここで、入力パラメーターは、圧縮するデータに対応する UTF バイトの配列です。

文字列「deflate and encode me」に対してこの.NETコードを実行すると、結果が得られます

Python Zlib.compress() を介して "deflate and encode me" を実行し、次に base64 でエンコードすると、結果は "eJxLSU3LSSxJVUjMS1FIzUvOT0lVyE0FAFXHB6k=" になります。

zlib.compress() が標準の Deflate アルゴリズムと同じアルゴリズムの実装ではないことは明らかです。

詳細情報:

b64 デコード後の .NET deflate データ ("7b0HY...") の最初の 2 バイトは 0xEDBD であり、Gzip データ (0x1f8b)、BZip2 (0x425A) データ、または Zlib (0x789C) データに対応しません。

b64 デコード後の Python 圧縮データ (「eJxLS...」) の最初の 2 バイトは 0x789C です。これは Zlib ヘッダーです。

解決した

ヘッダーとチェックサムなしで生のデフレートとインフレートを処理するには、次のことが必要です。

デフレート/圧縮時: 最初の 2 バイト (ヘッダー) と最後の 4 バイト (チェックサム) を取り除きます。

inflate/decompress: ウィンドウ サイズの 2 番目の引数があります。この値が負の場合、ヘッダーは抑制されます。base64エンコーディング/デコーディングを含む現在の私の方法は次のとおりです-そして正しく動作しています:

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

php - PHPgzcompressとgzopen/gzwrite

gzipで圧縮されたファイルを生成するPHPスクリプトを書いています。私が使用しているアプローチは、PHPで文字列を作成し、スクリプトの最後でファイルに書き出す前にその文字列をgzcompress()することです。

現在、より大きなファイルでスクリプトをテストしていて、メモリ割り当てエラーが発生しています。結果の文字列が大きくなりすぎて、一度にメモリに保持できないようです。

これを解決するために、PHPで大きな文字列が割り当てられないようにgzopen()とgzwrite()を使用しようとしました。ただし、gzwrite()で生成されたgzipファイルは、gzcompress()を使用した場合とは大きく異なります。さまざまなzipレベルで実験しましたが、役に立ちません。また、gzdeflate()を使用してみたところ、gzwrite()と同じ結果になりましたが、それでもgzcompress()とは似ていません。異なるのは最初の2バイト(zlibヘッダー)だけではなく、ファイル全体です。

gzcompress()は、PHPの他のgzip関数と何が違うのですか?結果を段階的に生成しながら、gzcompress()の結果をエミュレートする方法はありますか?

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

c++ - C /C++のパッキングと圧縮

私は、いくつかのファイルをアーカイブにバンドル(パック)してから圧縮する必要がある商用プロジェクトに取り組んでいます。現在、ユーティリティライブラリにzlibがありますが、zlibに複数のファイルを1つのアーカイブに圧縮する機能があるようには見えません。私がこれに使用できる無料のライブラリを知っている人はいますか?

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

ruby - 誰かがUbuntu(できればUbuntu 9)のソースからrubyとrubygemsをインストールしようとしましたか?

Ruby on RailsのWebサイトでは、LinuxでソースからRubyをインストールすることを推奨しています。Ubuntu9のクリーンインストールでソースからrubyをビルドする際にCライブラリの問題がいくつか発生しました。

Ubuntuへのrubyのインストールについてネット上で見つけたすべての手順には、事前にパッケージ化された(.debベースの)rubyの使用が含まれています。明らかに、これは人々が推奨するものではありません。

rubyのクリーンソースビルドを実行したとき、zlib拡張機能が機能しなかったためにRubygemsをインストールできなかったことがわかりました。

2つの問題が発生します。

1)zlib拡張機能がビルドされていません。

解決:

i)rubyソースのextnディレクトリ内のセットアップファイルでzlibのコメントが解除されていることを確認します。

ii)これらのzlibubuntuパッケージがインストールされていることを確認します。

2)上記の問題1を修正した後(そしてrubyのクリーンな再構築を行った後)、拡張機能のロードに失敗したため、zlibはまだ機能しません。

これを実行して出力「false」を取得すると、モジュールのロードに失敗することがわかります。

これは、extnディレクトリ内の他の任意の数のC拡張機能で発生することを確認したため、これらの拡張機能では、zlib固有のものよりも一般的な問題のようです。

要約する:

  • 私のrubyのビルドでは、ruby固有のC zlib拡張機能が見つかりましたが、zlibモジュールのロードに失敗しました。
  • この動作は、/extn内の他の拡張機能で発生するようです。

モジュールがロードに失敗する理由を見つける方法はありますか?ある種のトレース/冗長モード?

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

gzip - zlibを使用して.NETGZipStreamを解凍できますか?

C++のzlibライブラリを使用して.NETGZipStreamを使用して圧縮されたバイトストリームを解凍できますか?