問題タブ [unpack]

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

regex - Perlのunpack( "A4 / A *")の長さ+バイトの構文(正規表現形式)

perlpacktutで詳しく説明されているように、X / Y *の解凍文字列を使用して、最初にバイトストリームの長さを取得し、次にその数のバイトを正確に読み取ることができます。ただし、たとえば、単純なASCII数値と文字列を使用した正規表現内で、そのようなものを見つけるのに苦労しています。たとえば、ベンコード文字列は次の形式です。

私はかつてこれをやってのけることができたのを覚えていますが、?? {}を使用するだけで、今はコードが手元にありません。これは、新しい5.10キャプチャ/後方参照の1つを使用して、?? {}(これは非常に実験的です)なしで実行できますか?

明白な表現は機能しません:

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

ruby - Rubyを使用してアンパックされた配列を単一の値に変換するには?

4 バイト配列のアンパック値を変換しようとしていますか? これはRubyで可能ですか?

私が書いたb1 = b.unpack("N")と言って、どの値が であるかを出力b11ます。しかし、.to_i コンソールを使用して b1 を整数に変換しようとすると、エラーtest.rb:13: undefined methodto_i' for [118]:Array (NoMethodError)`がスローされます

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

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

php - 大きな zip を PHP で部分的にフォルダに解凍します

おそらく1500を超えるpdfファイルを含むzipファイルを解凍しようとしています。一度に 20 MB のファイルでサーバーのメモリがオーバーフローしないように、圧縮ファイルはフォルダーに分割して解凍する必要があります。

部分的に解凍する方法の例はすでに見つかりました。ただし、この方法では、解凍したファイルを表示できるディレクトリなどは作成されません。ディレクトリではなく、新しいzipのように見えるファイルを1つだけ作成します。

この関数は、上で説明したように、別の zip ファイルのように見えるファイルを作成します。最初に解凍したいフォルダーを作成し、それを $dstName として使用すると、ファイルが見つからないという警告が表示されます。また、宛先リンクの最後に「/」を含む「ファイル」を作成させると、その警告が表示されます。

fopen の代わりに opendir を使用しても警告は表示されませんが、何も抽出されていないようです。ハンドラーのタイプが間違っていると思われます。

この大きな圧縮ファイルを分割してフォルダーに解凍するにはどうすればよいですか?

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

ruby - ruby: バイナリ文字列を Bignum で表現する

任意の長さのバイナリ文字列の数値表現が必要です。この一見些細な作業は、予想外に複雑であることが判明しました。これまでのところ私が思いつくことができる最高のものは

ただし、この操作には可逆性がありません。これは、unpack が最上位のニブルで先行ゼロを返す可能性があるためです。

ここで、整数から変換した後に偶数のニブルが得られたかどうかを確認する必要があります。必要に応じてゼロで埋めます。

例で更新:

それでは、デコードしましょう:

つまり、最初と同じ値にデコードできませんでした。

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

maven - 解凍された JAR 依存関係を使用して WAR を構築しますか?

ディレクトリに Jar を配置する代わりに.class、依存関係の jar からすべてのファイルを WARディレクトリに含めたいと考えています。classes/lib/

私は持っている :

をお願いします :

maven-dependency-pluginも表示されますが、jar がローカルまたはリモートのリポジトリにインストールされている必要があります。しかしmylib-1.0-SNAPSHOT.jar、私のWARの直前にコンパイルされ、私が呼び出すとmvn package、失敗します!

では、jar 依存関係を war クラスに展開する方法は? (maven-shade-pluginジャーのように)

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

performance - Perl で結合と組み合わせた unpack のパフォーマンス

固定長レコードのファイルを解析する Perl で書かれたパーサーがあります。レコードの一部は、数字のみで構成された複数の文字列 (これも固定長) で構成されています。文字列内の各文字は、ASCII char ではなく数値としてエンコードされます。つまり、文字列 12345 がある場合、それは (31 32 33 34 35 ではなく) 01 02 03 04 05 としてエンコードされます。

unpack でレコードを解析すると、この特定の部分が として展開され@array = unpack "C44", $sます。次に、 のような単純な結合で必要な文字列を復元します$m = join("", @array)

それが最適なデコード方法かどうか疑問に思っていました。ファイルは非常に大きく、何百万ものレコードがあり、明らかに最適化が可能かどうかを調べようとしました。Profiler は、ほとんどの時間がレコードの解析に費やされていることを示しています (つまり、読み取り、書き込み、およびその他のものは問題ではありません)。解析では、ほとんどの時間がこれらの結合に費やされています。join は非常に効率的な操作であることを他の情報源から覚えています。コードをさらに高速化することが可能か、それともすでに最適化されているかについてのアイデアはありますか? おそらく、代わりにパック/アンパックの組み合わせを使用するなど、何らかの巧妙な方法でこの中間配列を回避することは可能でしょうか?

編集:コード例

最適化しようとするコードは次のようになります。

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

perl - Perl で RC4 を使用しているときに、暗号化されたテキストを取得できません

RC4 で暗号化された資格情報を含むファイルがあります。そのような資格情報をファイルに書き込むためのコードは次のとおりです。

したがって、そのコードは次のようなものを返します:3F9FDCE3891C6B8851 しかし、次のことを試してみると:

表示されることを期待していますlocalhostが、代わりに大量のバイトが表示されるので、元のテキストを取得するにはどうすればよいですか?

パスフレーズと 16 進数でエンコードされた文字列を使用してオンラインの RC4 デクリプタで確認済みで、オンラインの RC4 デクリプタが返さlocalhostれるので、暗号化された文字列が正しいことを確信しています。

ありがとう!

PS : 上記の例は隔離された環境で動作しますが、私のスクリプトに関しては動作しません。元の文字列を取り戻すことはできません。

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

perl - perl。64ビットの2進数を10進数に変換します

64個のバイナリシンボルを含む文字列があります。

10進数に変換する必要があります。どうすればPerlでそれを行うことができますか?

動作しません。最初の32ビットだけを変換します。

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

ruby-on-rails - Base64 でエンコードされた文字列をファイルに (Ruby on Rails) - 未定義のメソッド「unpack」エラー

Rails コントローラの 1 つで、Base64 でエンコードされた文字列を取得し、デコードしてファイル (.png) に書き込もうとしています。これが私のコードです:

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

ここで何がうまくいかないのですか?

編集:本当に奇妙なことの1つは、ファイルを書き込むコードがレールコンソールでは完全に正常に機能するが、アプリケーションの実行時には機能しないことです。

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

perl - Unpack を使用してバイナリ データをチャンクに分割する Perl

私はTransfer-Encoding: chunkedHTTP応答を書くために使用しています。

応答は、次のように分割されます。

コンテンツ タイプが の場合、これは正常に機能しますがtext/htmlapplication/pdf.

unpackバイナリデータを等しい長さに分割するために使用できますか?