问题标签 [binaryfiles]

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 投票
7 回答
70579 浏览

c# - 将二进制文件读入结构

我正在尝试使用 C# 读取二进制数据。我拥有我想要阅读的文件中有关数据布局的所有信息。我能够“逐块”读取数据,即获取前 40 个字节的数据将其转换为字符串,然后获取接下来的 40 个字节。

由于数据至少有三个略有不同的版本,我想直接将数据读入一个结构。感觉比“逐行”阅读要正确得多。

我尝试了以下方法但无济于事:

该流是一个打开的 FileStream,我已经开始从中读取。使用时我得到一个AccessViolationException Marshal.PtrToStructure

由于我对文件末尾的数据不感兴趣,因此该流包含的信息比我尝试读取的要多。

结构定义如下:

示例代码从原始代码更改为使此问题更短。

如何将文件中的二进制数据读入结构?

0 投票
6 回答
4503 浏览

.net - 使用 Oracle 10g 保存和检索二进制文件的最佳方式是什么?

我即将在我们的应用程序中实现一项功能,该功能允许用户“上传”PDF 或 Microsoft PowerPoint 文档,然后应用程序将在查看器中将其提供给其他用户(因此他们无法“下载”它在“另存为..”的意义上)。

我已经知道如何在数据库列中保存和检索任意二进制信息,但由于这将是我们应用程序的一个常用功能,我担心该解决方案会导致数据库表非常大(我们知道我们的一个客户会想把PowerPoint 文档中的视频)。

我知道有一种方法可以在 Oracle 中创建一个“目录”对象,但是有没有一种方法可以使用此功能来存储和检索保存在数据库服务器上其他地方的二进制文件?

还是我对数据库大小过于偏执?

(为了完整起见,我们的应用程序是使用CoreLab / DevArt OraDirect.Net 驱动程序到 Oracle 10g的 .Net WinForms )

0 投票
4 回答
2028 浏览

serialization - 了解 Ada 如何序列化记录

当我在 Ada 中调用 Write 以序列化记录时,我希望能够预测生成的二进制文件中的内容。你知道我在哪里可以查到这个吗?

我有一些旧版 Ada 软件通过写入记录来生成二进制文件,我需要调试一个应该编写兼容二进制文件的 C++ 程序。所以,我想了解 Ada 在序列化记录时遵循的规则,以便我可以确保 C++ 代码将生成功能等效的记录。

0 投票
6 回答
6741 浏览

php - 以编程方式确定视频文件格式?

好的,我了解了视频格式的基础知识——有一些容器格式,然后你就有了核心视频/音频格式。我想编写一个基于 Web 的应用程序来确定文件使用的视频/音频编解码器。

如何最好地以编程方式确定视频编解码器?最好通过系统调用使用标准库并解析其输出?(例如ffmpeg、转码等?)

0 投票
17 回答
49924 浏览

git - 使用 git 版本控制系统锁定二进制文件

一年半以来,我一直在关注 git 社区,希望能够摆脱 SVN。阻碍我的一个特殊问题是无法锁定二进制文件。在过去的一年里,我还没有看到这个问题的进展。我知道锁定文件违背了分布式源代码控制的基本原则,但我不知道当存在二进制文件冲突的可能性时,Web 开发公司如何利用 git 来跟踪源代码和图像文件的更改。

为了达到锁定的效果,必须确定一个“中央”存储库。不管 git 的分布式特性如何,大多数公司都会有一个软件项目的“中央”存储库。我们应该能够将文件标记为需要从指定地址的管理 git 存储库中锁定。也许这很困难,因为 git 跟踪文件内容而不是文件?

你们有没有处理过修改前应该锁定的 git 和二进制文件的经验?

注意:Source Gear 的新开源分布式版本控制项目 Veracity 似乎将锁定作为其目标之一。

0 投票
2 回答
5042 浏览

asp.net - 如何将 XPS 文档流式传输到浏览器并将其嵌入网页中?

我正在寻找一些关于如何解决这个问题的建议。任何输入表示赞赏!

目前,我有一个 ASP.NET MVC 应用程序。在客户端,我有一个带有 XPS 文档 ID 的链接。当用户单击该链接时,他们会被带到一个包含文档详细信息的页面。除了此信息之外,我希望在同一页面中显示此信息旁边的文档。

在服务器端,一旦我有了 ID,我就可以从数据库中获取文档,序列化为字节数组。问题是,将序列化文档放入网页的最佳方式是什么?

我非常希望不必将该文档放入文件系统中,然后将文件路径组合在一起。我希望能够将文档作为“application/vnd.ms-xpsdocument”的内容类型流式传输到浏览器。

我尝试使用 Web 控件来处理这个问题(不能写出二进制文件),考虑过创建一个 HTTP 处理程序来执行此操作(不知道从哪里开始),并且已经搞砸了其他几种获取文档的方法流到浏览器。

此外,还有如何在网页中嵌入文档的问题。我是否使用 EMBED 标签?还是一个对象?或者我是否使用 iframe 并将源设置为指向提供文档的任何内容?

再说一次,我不希望一个解决方案包在一个弓上。我正在寻找一些关于如何解决这个问题的建议。而且,虽然这个问题是关于 xps 文档的,但它适用于流式传输要在浏览器中托管的二进制文件(PDF 等)的任何应用程序。


好的,至于在浏览器中显示,一个字:Silverlight。这就解决了。我仍然有找出从服务器发送到浏览器的最佳方式的问题。


打那个。Silverlight 似乎还不够先进,无法显示 XPS 文档。我现在正在考虑一个指向 http 处理程序的 iframe ... iframe 有效。太糟糕了,它把整个事情都扔到了管道里。我想我总是可以撕掉第一页然后送那只小狗……


哇。不需要 HTTP 处理程序。MVC 中的自定义 ActionResult 就是您所需要的。这有多可怕?

0 投票
2 回答
6069 浏览

c# - 在 C# 中读取复合文档

我正在启动一个需要在 c# 中读取 Outlook msg 文件的项目。我有复合文档的规范,但是在 c# 中阅读它们时遇到了麻烦。任何指针将不胜感激。

谢谢。

0 投票
10 回答
2521 浏览

hex - 任何用于将十六进制转储转换为人类可读形式的通用实用程序或库?

我经常与各种设备进行串行通信,因此我经常需要分析日志文件中的十六进制转储。目前,我通过查看转储、查看协议规范并写下结果来手动执行此操作。然而,这是乏味且容易出错的,尤其是当消息包含数百个字节并且包含大端和小端数据、ASCII、Unicode、压缩、CRC、. . . .

我编写了一些 Python 脚本来帮助处理更常见的情况。但是有很多协议要处理,花时间编写自定义脚本是没有意义的,除非我知道我会有很多转储要分析。

我想要的是某种可以自动执行此活动的实用程序。因此,例如,如果我有这样的文本十六进制转储:

以及消息格式的某种描述,如下所示:

我会得到这样的输出:

基于硬件的协议分析器通常具有执行此类操作的精美功能,但我需要使用文本日志文件。

是否存在任何此类实用程序或库?


自从我设置赏金以来,已经出现了一些好的答案。我猜赏金工作!

Wireshark 和 HexEdit 看起来都很有前途;我会看看那些,并且可能会将赏金奖励给适合我需要的人。但我仍然对其他想法持开放态度。

0 投票
7 回答
21263 浏览

binaryfiles - 究竟是什么导致二进制文件“乱码”?

我还没有找到这个特定问题的答案;也许没有。但我一直在想这件事。

当您在文本编辑器中查看二进制文件时,究竟是什么导致二进制文件显示为“乱码”?加密文件也是如此。文件的二进制值是否试图转换为 ASCII?是否可以将视图转换为显示原始二进制值,即显示构成文件的 1 和 0?

最后,有没有办法确定哪个程序可以正确打开数据文件?很多时候,尤其是在 Windows 中,文件是孤立的,或者与特定程序无关。在文本编辑器中打开它有时会告诉你它属于哪里,但由于乱码,大多数时候不会。如果扩展程序不提供任何信息,您如何确定它属于哪个程序?

0 投票
6 回答
3897 浏览

python - 使用python从大型二进制文件中删除一系列字符

我想从 python 中的二进制文件中修剪相同值的长序列。一种简单的方法是简单地读取文件并使用 re.sub 替换不需要的序列。这当然不适用于大型二进制文件。可以用 numpy 之类的方法完成吗?