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

database - 在数据库中存储数据包

问题描述: 在我的应用程序中,我必须以某种格式呈现数据包的内容。一个例子:

示例 任何打包的二进制数据,例如:4 字节头、4 字节类型(类型代码具有预先定义的含义),然后是源地址、目标地址等。

以前,我制作了将数据存储在二进制文件中的自制实现(固定记录长度允许快速查找),但随着时间的推移,我意识到我正在发明某种数据库。例如,我正在为非常大的数据文件实现我自己的高效二进制存储格式。我还实现了自己的索引以在某些字段上快速运行搜索。我认为一个真正的数据库(甚至是简单的 SQLite)可以使这些东西变得透明简单。

问题#1:数据库对存储此类数据有用吗?应该如何做?请注意,这里没有一对多、多对多的映射和其他高级的东西,它只是一个简单的数据包序列,具有一定的内部结构,我想向用户显示并让他与之交互(即搜索由某个领域)。

问题#2:现在假设用户自己可以指定他的数据包的格式,即在配置文件中:每个字段的长度、它的类型、它的值的含义(在枚举的情况下)等等。如何为此扩展由数据库支持的实现?用户应该定义数据库模式吗?配置文件是否应该自动翻译成这个模式?奥姆?

问题#3:更高级……现在假设数据包的长度和内容可以不同。即,对于类型#2 的包,有一些字段,对于类型#3,还有一些其他字段,等等。但我仍然希望我的应用程序能够处理它,很好地显示所有内容并允许用户在配置文件中指定格式。它是如何完成的?

提前致谢。

0 投票
3 回答
1738 浏览

c# - 如何以二进制格式向端口发送数据

我是低级编程的新手。在我的项目(C#.NET)中,我们使用 EDBS 协议(7 位格式)进行通信,我有位格式的数据要发送,如 00101010,所以我们请指导我如何将这些发送到端口。我知道串行端口类接受二进制格式的数据,但不知道如何将位格式转换为字节。

提前致谢

前置

0 投票
1 回答
2530 浏览

blob - 使用 ODBC 将二进制 std::string 插入 BLOB 列

谁能给我一个例子,如何使用 ODBC 和 C++ 将二进制 std::string 插入 BLOB 列,好吗?

编辑:

How to INSERT binary std::string into BLOB (MySQL)的副本。

0 投票
2 回答
5323 浏览

clojure - 如何在 Clojure 中解析二进制文件

在 clojure 中解析二进制数据的最简洁方法是什么?我需要能够同样干净地读取/写入文件或套接字。

就像是:

和相反的数据放回。以某种方式定义一次结构并让读写函数使用相同的定义真的很棒。

0 投票
5 回答
9492 浏览

.net - C#/.NET - 自定义二进制文件格式 - 从哪里开始?

我需要能够以自定义二进制文件格式存储一些数据。我以前从未设计过自己的文件格式。它需要是一种在 C#、Java 和 Ruby/Perl/Python 世界之间穿梭的友好格式。

首先文件将包含记录。一个 GUID 字段和一个 JSON/YAML/XML 数据包字段。我不确定用什么作为分隔符。逗号、制表符或换行符之类的东西似乎太脆弱了。Excel 是做什么的?还是 XML 之前的 OpenOffice 格式?您应该使用 ASCII 字符 0 还是 1。不知道从哪里开始。有没有关于这个主题的文章或书籍?

此文件格式稍后可能会扩展为包含“标题部分”。

注意:首先我将在 .NET 中工作,但我希望该格式易于移植。

更新:
“数据包”的处理可能很慢,但文件格式内的导航不能。所以我认为 XML 不在讨论范围内。

0 投票
3 回答
682 浏览

c++ - C++ 中是否有创建 .bin 文件的函数,或者这段代码缺少什么?

我有一个看起来像这样的代码:

当我单独运行它时,它以-1退出,因此显然它无法打开“test.bin”。但是,如果我将一个空白记事本文件保存为“test.bin”并运行它,它就可以正常工作。我想知道的是,如果名为“test.bin”的文件尚不存在,我如何让我的 C++ 程序自动生成一个空文件“test.bin”。

0 投票
4 回答
199 浏览

c++ - 为什么这个程序不能从 .bin 文件中正确读取(或写入?)?(C++)

我创建了这个程序:

这应该将整数“n”写入.bin文件“test.bin”,然后从“test.bin”读取数据到整数“x”,然后在屏幕上显示“x”。

当我运行程序时,它显示的不是 5,而是 -842150451。为什么会发生这种情况,我该如何解决?

0 投票
4 回答
1393 浏览

c++ - 如何将整数值“0”存储在 .bin 文件中?(C++)

编辑:显然,问题出在读取功能中:我在十六进制编辑器中检查了数据

02 00 00 00 01 00 00 00 00 00 00 00

所以零被存储为零,而不是读为零。

因为当我使用我的正常存储在 bin 文件功能时:

它将 0 存储为char版本,或“\0”,显然没有存储(因为它是一个空值?)所以当我调用我的函数来读取零值时,它会在它之后(或之前读取值)如果它是文件中的最后一个)。那么如何正确地将零存储在 .bin 文件中呢?

编辑:以下是与读/写过程相关的一些功能:

此外,使用的输出sector::Init如下:

我试图写入垃圾箱的输出是

因此,要么 0 被读/写为 1,要么没有被写入,而 Init 正在读取最后一个值两次。

0 投票
2 回答
4128 浏览

ruby-on-rails - Rails:将二进制字段的内容保存到文件中

我有一个带有包含文件的二进制字段的模型。我想将此文件保存到磁盘作为我需要做的过程的一部分。出于某种原因,我找不到有关如何执行此操作的任何信息。

该模型包含一个文件名字段和一个文件内容字段。我想做这样的事情:

任何帮助,将不胜感激!

0 投票
9 回答
24645 浏览

character-encoding - 什么是最有效的二进制文本编码?

到目前为止,我能找到的最接近的竞争者是 yEnc (2%) 和 ASCII85 (25% 开销)。yEnc 似乎存在一些问题,主要围绕它使用 8 位字符集这一事实。这导致了另一个想法:是否存在基于 UTF-8 字符集的文本编码二进制文件?