问题标签 [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 投票
1 回答
2556 浏览

c# - C#,写入二进制数据

我在写入二进制文件时遇到问题。

问题是它错误地写入文件。大多数情况下它会正确写入信息,但一旦超过127它就会写入633F错误的表示)直到255.

然后它重复这个错误,直到512

错误可能是什么?

0 投票
3 回答
793 浏览

performance - 具有二进制数据/图像的表中的性能

我做了一个人员维护屏幕。客户希望我将每个人的照片存储在数据库中,我做到了没有问题。我有一个单独的表格,用于包含两个字段 Id_person 和 Image 的图像。

我有点担心,因为这是我第一次使用数据库中的图像。当表格超过 1000/5000 个图像时,我会遇到性能问题吗?我想每张图片的大小都会有所不同。我确信我需要控制用户不要在数据库中保存非常大的图像。

什么是好的尺寸限制?客户只需要面部照片,但我相信有人会尝试使用“最后一个模型”相机制作全质量照片;)

谢谢。

0 投票
1 回答
332 浏览

java - 用于从 .img、.osc 和 .mccd 文件中读取元数据的 Java 库

我需要从 .img、.osc 和 .mccd 文件中读取元数据。

你能推荐任何图书馆或提供任何关于我将如何去做的指针。最终,我需要将该元数据放入一个 XML 文件中,以便存储库可以获取它。

0 投票
2 回答
3324 浏览

ruby - 使用 Ruby 创建二进制数据?

我正在使用 ruby​​ 套接字,所以我最终尝试将一个 IP 数据包放在一起,然后我拿了一个 ip 数据包并尝试制作一个像它一样的新数据包。

现在我的问题是:如果数据包是:45 00 00 54 00 00 40 00 40 01 06 e0 7f 00 00 01 7f 00 00 01,这显然是十六进制,所以我将其转换为十进制,然后使用 .pack 方法转换为二进制数据,并将其传递给 send 方法,然后Wireshark显示给我与我创建的东西非常奇怪的不同,我做错了什么???,我知道,但无法弄清楚:

还有另一种方法可以解决整个问题吗?例如,我可以直接将要发送的数据写入套接字缓冲区吗?

提前致谢。

0 投票
4 回答
665 浏览

c# - 读/写压缩的二进制数据

我到处读到人们谈论一点一点地压缩对象的地方。诸如“前三位代表某某,接下来的两位代表这个,十二位代表那个”

我理解为什么需要尽量减少内存使用,但我想不出一个好的方法来实现这一点。我知道我会将它打包成一个或多个整数(或长整数,等等),但我无法想象一种简单的方法来使用它。如果有一个类可以让我从任意长度的二进制字段中获取/设置任意位,那将是非常酷的,它会为我处理好事情,而且我不必胡乱处理 &'s 和 |' s和面具等等。

这种事情有标准模式吗?

0 投票
4 回答
4977 浏览

sql-server - 克服在 DataGridView 中显示二进制列的 .NET 问题

如果 DataSet 包含作为时间戳或其他二进制值的列,则在显示该列中的任何数据时,其关联的 DataGridView 将引发 ArgumentException。也就是说,假设您有一些包含二进制列的表,例如:

在 Visual Studio 2008 中,添加一个指向可疑表的新数据源。将表格从数据源资源管理器拖到新 WinForm 的可视化设计器表面上,以自动创建 DataGridView、BindingSource 等。执行应用程序,您将获得运行时异常。听起来像个缺陷,对吧?

如果您检查 DataGridView 的 Columns 集合,您会发现它将列类型设置为 DataGridViewImageColumn。为什么?因为,根据微软的说法,.NET 假定二进制列是图像。事实上,微软确认这种行为是设计使然!请参阅 Microsoft Connect 上的此缺陷报告:http ://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=93639

正如对话框礼貌地指出的那样,可以通过处理 DataGridView 的 DataError 事件来抑制错误对话框,但这引出了问题。我想找到一种方法来避免首先出现错误情况。也就是说,我想要一个 DataGridViewTextColumn 显示二进制数据的文本表示,例如“0x1234a8e9433bb2”。我正在寻找一个通用的解决方案,因为我的实际代码没有使用上面示例中的特定表。相反,我将一些任意查询放入 dataAdapter.SelectCommand,然后调用

自动生成我的数据表。由于 DataGridView 有(恕我直言)错误,我想我需要检查数据表的列(即 dataTable.Columns[n].DataType.Name.Equals("Byte[]") ?)并在我将 dataTable 连接到 DataGridView 之前手动将任何字节数组转换为它们的文本形式

那我的问题:

有没有更简单或更优雅的方式在 DataGridView 中显示二进制列?

(请注意,VS 2005 和 VS 2008、.NET 2.0 和 .NET 3.5 都存在此问题。)

0 投票
4 回答
2201 浏览

c# - 并行二进制反序列化?

我有一个解决方案,我需要非常快速地将对象读入内存,但是二进制流可能会缓存在内存中压缩以节省磁盘 io 上的时间。

我已经修改了不同的解决方案,显然 XmlTextWriter 和 XmlTextReader 不是那么好,内置的二进制序列化也不是。Protobuf-net 非常好,但还是有点太慢了。以下是一些统计数据:

文件大小 XML:217 kb

文件大小二进制:87 kb

压缩二进制:26 KB

压缩的 XML:26 KB

使用 XML (XmlTextReader) 反序列化:8.4 sek

使用二进制反序列化(Protobuf-net):6.2 sek

使用 Binary wo string.interning (Protobuf-net) 反序列化:5.2 sek

使用内存中的二进制反序列化:5.9 Sek

将二进制文件解压到内存的时间:1.8 sek

使用 Xml (XmlTextWriter) 序列化:11 sek

使用二进制序列化(Protobuf):4 sek

使用二进制长度前缀序列化(Protobuf-net):3.8 sek

这让我想到,似乎(如果我错了,请纠正我)反序列化的主要罪魁祸首是实际的字节转换而不是 IO。如果是这样,那么它应该是使用新的并行扩展的候选者。

由于我在二进制 IO 方面有点新手,但在我投入时间解决之前,我会很感激一些输入:)

为简单起见,假设我们要反序列化一个没有可选字段的对象列表。我的第一个想法是简单地存储每个长度前缀。将每个的 byte[] 读入 byte[] 列表并使用 PLINQ 进行 byte[] -> 对象反序列化。

但是,使用这种方法,我仍然需要单线程读取 byte[],所以也许可以将整个二进制流读入内存(顺便说一句,二进制文件有多大?)并在二进制文件的开头存储如何有许多对象,每个对象的长度和偏移量。然后我应该能够创建 ArraySegments 或其他东西并并行进行分块。

那你们怎么看,可行吗?

0 投票
1 回答
393 浏览

mysql - 固定宽度二进制数据的理想字段类型

如果我想存储二进制数据(哈希值)并且它们总是 128 字节长,我应该使用什么字段类型?BLOBs 很好,但它们不是固定宽度(并导致动态表).. CHAR需要一个字符集。

0 投票
12 回答
580143 浏览

c# - 在 C# 中将大文件读入字节数组的最佳方法?

我有一个 Web 服务器,它将大型二进制文件(几兆字节)读入字节数组。服务器可能同时读取多个文件(不同的页面请求),因此我正在寻找最优化的方法来执行此操作,而不会过多地占用 CPU。下面的代码足够好吗?

0 投票
4 回答
2769 浏览

svn - 如果文件大小固定,我如何让 SVN 实现二进制文件的更改

我正在使用一个程序,该程序将数据写入我存储在颠覆档案中的固定大小的二进制文件。

然而,问题是 SVN(命令行客户端和 TortiseSVN)认为由于文件的大小没有改变,文件本身没有改变,它不应该提交它。

有没有办法改变使用的差异方法,还是我必须求助于诸如向文件添加虚拟属性之类的技巧?


编辑:原来解决方案不是因为文件大小的事情。我只是自动假设会是这种情况,因为大多数 nieve diffing altorithims 一直都在这样做。 [黄鼠狼的话]