问题标签 [binary-data]

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

.net - SQL Server:服务器端 Blob 游标?

我想从 blob 中读取二进制数据,使用它周围的 Stream 接口。

但我不希望 Blob 必须完全加载到客户端并存储在内存或文件中。

我希望使用 blob 的代码能够查找和读取,并且仅通过网络传输支持查找/读取所需的尽可能多的数据。

假装blob 是一个 250MB 的 Photoshop 图像。缩略图代码知道如何读取图像的前 8 个字节,识别它是 PSD 文件,寻找包含 3k 缩略图的偏移量,然后读取它。

因此,与其尝试分配 250MB 的内存,或者必须创建一个临时文件,也不必等待 250MB 通过网络传输:假设的 SQLServerBlobStreamServerCursor 类知道如何将数据流量传输到实际请求的数据。


研究

如何:通过在 ADO.NET 和 Visual Basic .NET 中使用分块读取和写入文件到 BLOB 列, 其中谈到能够以块的形式读取和写入。但是代码是不可读的被切断,我无法忍受。我稍后再看。

这个人还提到了一种新的 SQL Server 2005 [ column .Write()]3 T-SQL 语法来写入数据 -可用于以小块写入数据(以避免消耗所有服务器的内存)。也许有一个[]。Read () 伪方法

微软有一篇文章:Conserving Resources When Writing BLOB Values to SQL Server

0 投票
1 回答
7314 浏览

nhibernate - 使用 NHibernate 持久化 Blob 流

如果我有一个类声明为:

如何使用 NHibernate 的映射将 MyData 属性持久化到数据库和从数据库中取出?

0 投票
2 回答
576 浏览

flash - Whats AMFPHP 以及如何使用它来读取二进制文件?

我需要一个解决方案来从存储在服务器上的任何文件类型中读取原始二进制文件。

我听说过 AMFPHP,但最初被推迟了,因为我认为它需要管理员访问权限才能在服务器上安装服务。

我可以用它来读取二进制文件吗?对此的任何解决方案都会被广泛接受。

(不,我在 XML CDATA 部分尝试了二进制,但有太多非法的“控制”字符)

0 投票
5 回答
8672 浏览

python - 在 Django 模型字段中存储二进制哈希值

我有一个 20 字节的十六进制哈希,我想将它存储在 django 模型中。如果我使用文本字段,它会被解释为 unicode 并且返回乱码。

目前我正在对其进行编码和解码,这确实使代码混乱,因为我必须能够通过它进行过滤。

这是过滤的示例

这是 django 开发人员推荐的方法,但我真的很难接受仅存储 20 个字节就这么丑陋的事实。

也许我太纯粹了,但理想情况下我可以写

这些属性允许我写:

所以这就是我可以要求的。

0 投票
1 回答
44306 浏览

sql - 如何查看sql二进制数据字段的内容?

有人知道如何查看 MS SQL Server 2005 数据库中包含二进制数据的字段内容吗?

0 投票
10 回答
10895 浏览

comparison - 计算二进制数据相似度

我在这里看到了一些与确定文件相似性有关的问题,但它们都与特定域(图像、声音、文本等)相关联。作为解决方案提供的技术需要了解被比较文件的基础文件格式。我正在寻找的是一种没有此要求的方法,可以比较任意二进制文件而无需了解它们包含什么类型的数据。也就是说,我正在寻找确定两个文件的二进制数据的相似性百分比

为了提供更多细节供您使用,尽管这可能适用于许多事情,但我确实有一个正在处理的特定问题。我目前也有一个可行的解决方案,但我认为它并不理想。在比较方法和存储结果方面可能有很多优化。希望这里的一些人能够给我一些新的想法。几天后我可能会编辑一些关于我当前方法的信息,但我不想通过告诉你我已经在做什么来偏见人们对这个问题的看法。

我正在处理的问题是视频游戏 ROM 映像的克隆检测。对于那些没有仿真经验的人来说,ROM 是游戏卡带上数据的转储。ROM“克隆”通常是同一游戏的修改版本,最常见的类型是翻译版本。例如,NES原版《最终幻想》的日文版和英文版都是克隆版。游戏共享几乎所有的资产(精灵、音乐等),但文本已被翻译。

目前有几个小组致力于维护各种系统的克隆列表,但据我所知,这一切都是手动完成的。我正在尝试做的是找到一种方法来自动和客观地检测相似的 ROM 映像,基于数据相似性而不是“这些看起来像同一个游戏”。检测克隆有几个原因,但主要动机之一是与Solid 压缩一起使用。这允许将所有游戏克隆一起压缩到同一个存档中,整个压缩克隆集通常只占用比单个 ROM 稍多的空间。

在提出潜在方法时需要考虑的一些问题:

  • ROM 的大小差异很大,具体取决于系统。有些很小,但现代系统可能有较大的系统,256MB 或更多。一些(全部?)系统只有 2 作为可能大小的幂,其中一个系统上的 130MB 游戏将有 256MB ROM,大部分是空的。请注意,因此,如果游戏版本超过阈值并且必须使用两倍大小的卡带,某些克隆的大小可能会有很大差异。
  • 目前,许多系统上有数千个已知的 ROM,大多数系统仍在不断发布新的 ROM。即使对于旧系统,也有一个主要的 ROM 黑客社区经常生产修改后的 ROM。
  • 为每对可能的 ROM 存储相似性数据将为任何更流行的系统产生数百万行数据。一个有 5000 个 ROM 的系统需要 2500 万行相似性数据,而一个新游戏又增加了 5000 行。
  • 处理的状态必须是可恢复的,这样如果它被中断,它可以从中断的地方继续。使用任何方法都需要进行大量处理,并且假设整个事情将在一批中运行是不安全的。
  • 可以随时添加新的 ROM,因此该方法不应假定它已经具有“完整”集。也就是说,即使您已经确定了所有现有 ROM 的相似性,如果添加了一个新 ROM(这也可能在之前的处理完全完成之前发生),必须有一种方法将其与所有之前的 ROM 进行比较,以确定哪个(如果有的话)是它的克隆。
  • 更高的处理速度应该优先于准确性(到一个点)。知道两个 ROM 是 94% 还是 96% 相似并不是特别重要,但如果需要一天的时间来比较一个新的 ROM 和以前的所有 ROM,那么程序可能永远不会真正完成。

这是一个有趣的问题,我期待看到其他人能想出什么。如果您需要更多详细信息,请在评论中告诉我,我会尽力提供。

0 投票
4 回答
12567 浏览

c# - c#从字节数组中检测xml编码?

好吧,我有一个字节数组,我知道它是字节数组中的一个 xml 序列化对象,有什么方法可以从中获取编码吗?

我不打算对它进行反序列化,但我将它保存在 sql 服务器上的 xml 字段中......所以我需要将它转换为字符串?

0 投票
1 回答
420 浏览

c# - 二进制数据 Vb6 到 C#

我有问题!

我有一个我知道是使用 Vb6 创建的二进制数据,我想使用 C# 读取所有信息。

我怎样才能做到这一点?

我没有文件的数据结构!!!

感谢您的关注

0 投票
8 回答
11218 浏览

java - 是否有任何用于二进制文件解析的 Java 框架?

我的问题是,我想用一个用 JAVA 实现的通用解析器来解析不同类型的二进制文件。可能使用解析器读取的配置文件来描述文件格式,或者创建根据某种解析规则解析文件的 Java 类。

我在互联网上搜索了很多,但几乎没有找到关于这个主题的任何内容。

我发现的只是处理编译器生成器(Jay、Cojen 等)的东西,但我认为我不能用它们来生成解析二进制文件的东西。但在这个假设上我可能是错的。

是否有任何框架可以特别处理二进制文件的简单解析,或者任何人都可以给我一个提示,我可以如何使用解析器/编译器生成器来做到这一点?

更新:我正在寻找可以编写配置文件的东西

它会自动生成解析以“MAGIC”开头的文件,然后是十倍的内容包(它本身由一个字节、一个长字符串和一个 10 字节字符串组成)。

Update2:我找到了类似的东西,我正在寻找“构造”,但遗憾的是这是一个 Python 框架。也许这可以帮助某人了解我正在寻找的东西。

0 投票
11 回答
46935 浏览

database - 您会将二进制数据存储在数据库中还是文件系统中?

这是一个之前已经提出的问题(large-text-and-images-in-sql),但主要针对将要更改的数据。在我的情况下,数据将被存储并且永远不会改变。将所有东西放在一起似乎是明智的。

为什么我不应该将静态二进制数据存储在数据库中?

假设这是明智之举,将此类数据存储在单独的表中是否有任何优势?(你现在可能开始意识到我不是数据库专家......)

澄清:可能不会超过 10-20 个用户,但这些用户将在美国和英国。在任何情况下都必须传输二进制数据。