问题标签 [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 数字和字符串。例如,Bencoded 字符串的形式为:

我记得曾经能够做到这一点,但只能使用 ??{},而且我现在手头没有代码。这可以在没有 ??{} (这是超级实验性的)的情况下使用较新的 5.10 捕获/反向引用之一来完成吗?

明显的表达不起作用:

0 投票
1 回答
987 浏览

ruby - How to convert unpacked array to single value using Ruby?

I am trying to convert unpacked value of 4 byte array? Is this possible in Ruby?

say I wrote b1 = b.unpack("N") and print value of b1 which is 1 . But when I try to convert b1 to some integer using .to_i console throws error test.rb:13: undefined methodto_i' for [118]:Array (NoMethodError)`

My code is following:

0 投票
2 回答
794 浏览

php - 使用 PHP 将大 zip 部分解压到一个文件夹中

我正在尝试解压缩一个可能包含 1500 多个 pdf 文件的 zip 文件。压缩文件应分部分解压到一个文件夹中,以免一次 20mb 的文件溢出服务器内存。

我已经找到了一个关于如何分段解压缩的示例。但是,此方法不会创建可以查看解压文件的目录或其他内容。它只创建一个文件,而不是目录,这似乎又是一个新的 zip。

如上所述,此函数创建一些看起来像另一个 zip 文件的文件。如果我创建了我想首先解压缩的文件夹并将其用作 $dstName,它会发出警告,提示它找不到该文件。此外,当我让它在目标链接的末尾创建一个带有“/”的“文件”时,它会发出警告。

使用 opendir 而不是 fopen 不会发出警告,但似乎没有提取任何内容,猜测处理程序的类型错误。

如何将这个大压缩文件部分解压缩到文件夹中?

0 投票
1 回答
1026 浏览

ruby - ruby:将二进制字符串表示为 Bignum

我需要一个任意长度的二进制字符串的数字表示。这个看似微不足道的任务,却意外地变得复杂起来。到目前为止我能想到的最好的是

但是这个操作缺乏可逆性,因为 unpack 可能会在最高半字节返回前导零:

现在我需要检查从整数转换后是否有偶数个半字节,如果需要则用零填充等。这一切都很好而且很清楚,但我简直不敢相信这一定如此复杂。

更新示例:

现在让我们解码:

换句话说,我们未能解码到与开始时相同的值。

0 投票
1 回答
432 浏览

maven - 使用解压缩的 JAR 依赖项构建 WAR?

我想将我.class的所有依赖项 jar 包含到 WARclasses/目录中,而不是在lib/目录中包含一个 Jar。

我有 :

我想 :

我也看到了 maven-dependency-plugin但它要求我的 jar 安装到本地或远程存储库中。但是mylib-1.0-SNAPSHOT.jar在我的 WAR 之前编译,如果我打电话mvn package,那就失败了!

那么,如何将我的 jar 依赖项解压到 war 类中呢?(就像maven-shade-plugin罐子一样)

0 投票
3 回答
406 浏览

performance - Perl 中 unpack 结合 join 的性能

我有一个用 Perl 编写的解析器,它解析固定长度记录的文件。部分记录由几个字符串(也是固定长度)组成,仅由数字组成。字符串中的每个字符都被编码为数字,而不是 ASCII 字符。即,如果我有字符串 12345,它被编码为 01 02 03 04 05(而不是 31 32 33 34 35)。

我用 unpack 解析记录,这个特定部分被解包为@array = unpack "C44", $s. 然后我用简单的连接恢复所需的字符串,比如$m = join("", @array).

我想知道这是否是解码的最佳方式。文件很大,有数百万条记录,显然我试图看看是否可以优化。Profiler 显示大部分时间都花在了解析记录上(即,读、写和其他东西都不是问题),而解析大部分时间都花在了这些连接上。我记得从其他来源那里加入是非常有效的操作。有什么想法可以加快代码速度还是已经达到最佳状态?也许有可能以某种巧妙的方式避免这个中间数组,例如,改用打包/解包组合?

编辑:代码示例

我尝试优化的代码如下所示:

0 投票
1 回答
1007 浏览

perl - 在 Perl 中,使用 RC4 时我无法取回加密文本

我有一个带有 RC4 加密凭据的文件,负责将此类凭据写入文件的代码如下:

所以那段代码会返回类似:3F9FDCE3891C6B8851 但如果我尝试以下操作:

我期待看到localhost,但相反,我得到了一堆字节,那么我将如何取回原始文本?

我已经用我的密码和我的十六进制编码字符串在线检查了 RC4 解密器,并且在线 RC4 解密器确实返回localhost,所以我确信加密的字符串是正确的。

谢谢!

PS:上面的例子在一个孤立的环境中工作,但是当涉及到我的脚本时它没有。我无法取回原始字符串。

0 投票
2 回答
2471 浏览

perl - perl. 将 64 位二进制数转换为十进制数

我有一个包含 64 个二进制符号的字符串。

我需要将其转换为十进制数。我怎样才能在 perl 中做到这一点?

不起作用。它只转换前 32 位。

0 投票
2 回答
5106 浏览

ruby-on-rails - Base64 编码的字符串到文件(Ruby on Rails) - 未定义的方法“解包”错误

在我的一个 Rails 控制器中,我试图获取 Base64 编码的字符串,对其进行解码并将其写入文件 (.png)。这是我的代码:

我收到以下错误:

这里出了什么问题?

编辑:一件非常奇怪的事情是编写文件的代码在rails控制台中工作得很好,但在运行应用程序时却不行。

0 投票
2 回答
902 浏览

perl - Perl 使用 Unpack 将二进制数据拆分成块

Transfer-Encoding: chunked用来编写 HTTP 响应。

响应通过以下方式分成几部分:

当内容类型为 时,这可以正常工作text/html,但它会破坏二进制数据,例如application/pdf.

unpack用于将二进制数据分成相等的长度?