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

c# - 在 C# 中从/向二进制文件读取/写入数组内容的最佳方法是什么?

我想读取和写入大型原始卷文件(例如 MRI 扫描)的内容。这些文件只是一个序列,例如 32 x 32 x 32 浮点数,因此它们可以很好地映射到一维数组。我希望能够将二进制卷文件的内容读入一维数组,例如 float 或 ushort(取决于二进制文件的数据类型),并类似地将数组导出回原始卷文件。

使用 C# 执行此操作的最佳方法是什么?使用 BinaryReader/BinaryWriter 一次读取/写入 1 个元素?使用 FileStream.Read 将它们分段读取到字节数组中,然后在数组之间执行 System.Buffer.BlockCopy?写我自己的读者/作家?

编辑:似乎无法使用 > 2GB 的阵列,但问题仍然代表较小的阵列(大约 256 MB 左右)

0 投票
2 回答
2534 浏览

vim - 使用 vim 编辑最后一行没有 EOL 标记但具有 CRLF 行结尾的文件

我经常需要编辑脚本文件,其解释器将在文件最后一行具有 EOL 标记的文件视为错误(即文件将 CRLF 视为“换行符”,而不是“行尾”)。

目前,我在 Vim 中使用二进制模式(命令行上的 -b)打开这些文件。它会自动检测最后一行缺少 EOL 并适当地设置“noeol”选项,从而防止它在最后一行写入 EOL。

因为文件有 CRLF 行尾,所以我在行尾有很多^Ms (因为它似乎只以二进制模式解释 Unix 风格的行尾)。我无法在文本模式下打开它,因为非二进制文件会忽略“noeol”选项。

这很烦人,我总是要记住^M在每行的末尾手动输入!有什么方法可以强制它在二进制模式下接受 DOS 样式的行尾,或者强制它在文本模式下听 EOL 选项?

0 投票
1 回答
373 浏览

unix - UNIX - ASCII 文件似乎是二进制的

我刚刚尝试了hg diff一些 C 源文件,并被告知它们是二进制文件。

所以,我的问题是:如何让 UNIX 和 Mercurial 相信这些文件实际上是 ASCII?

在此先感谢您的帮助。

0 投票
4 回答
10657 浏览

python - Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

这是漫长的一天,我有点难过。

我正在阅读一个包含大量宽字符字符串的二进制文件,我想将它们作为 Python unicode 字符串转储。(要解压非字符串数据,我使用的是 struct 模块,但我不知道如何对字符串做同样的事情。)

例如,阅读“系列”这个词:

如何将原始宽字符数据编码为 Python 字符串?

编辑:我正在使用 Python 2.6

0 投票
9 回答
18415 浏览

bash - 使用 bash:将整数的位表示写入文件

我有一个包含二进制数据的文件,我需要在某个位置替换几个字节。我想出了以下方法来将 bash 指向偏移量并告诉我它找到了我想要的位置:

现在,使用“文件”作为输出:

这似乎工作得很好,我可以查看在十六进制编辑器中所做的更改。问题是,“anInteger”将被写为该整数的 ASCII 表示(这是有道理的),但我需要编写二进制表示。

我想为此使用 bash,并且脚本应该在尽可能多的系统上运行(我不知道目标系统是否会安装 python 或其他任何东西)。

如何告诉命令将输入​​转换为二进制(可能来自十六进制)?

0 投票
2 回答
21798 浏览

c++ - 在 C++ 中读取和写入二进制文件

我需要制作一个包含“name”的文件,它是一个字符串-char数组-和“data”,它是字节数组-C++中的char数组-但我面临的第一个问题是如何分隔“name”从“数据”?换行符在这种情况下可以工作(假设我的名称中没有“\n”),但我可以在“数据”部分有特殊字符,所以无法知道它何时结束,所以我放了一个文件中具有“数据”大小的数据之前的 int 值!我尝试使用以下代码执行此操作:

但我不知道“int”部分是否正确,所以我尝试了许多其他代码,包括这个:

当我打开文件时,我在文件中看到 4 个“NULL”字符,而不是看到一个整数。这正常吗?我面临的另一个问题是再次从文件中读取!我尝试阅读的代码根本不起作用:(我尝试使用“fread”但我不确定是否应该使用“fseek”或者它只是读取它之后的另一个字符。

我想使用一个类如下,然后写和读回来:

但这在 C++ 中可不是件容易的事!

我还尝试了以下方法:

但是阅读也没有奏效。

在阅读时,我得到了奇怪的字符。


到目前为止,对我有用的代码是这样的:

但阅读中的问题是:

1-(我认为这不是一个真正的问题)除了实际数据之外,它还会打印其他字符。2-关于readData函数我得到了6次输出(最后一次我把每个字段都作为一个空字段),而我只写了5次!有谁知道这是为什么?和这有关系while(!filestr.eof())吗??

感谢帮助

0 投票
1 回答
760 浏览

c++ - 从二进制文件到 std::string 而不是 c-string 的未格式化输入

好的,我有这个程序使用 c-strings 工作。我想知道是否可以将未格式化的文本块读入 std::string?我玩弄了一下,if >>但这是逐行读取的。我一直在破坏我的代码并试图使用 std::string 撞到墙上,所以我认为是时候招募专家了。这是一个工作程序,您需要提供一个包含一些内容的文件“a.txt”以使其运行。

我试图愚弄:

但它表现得很奇怪。我必须做std::cout << memblock.c_str()才能打印出来。并memblock.clear()没有清除字符串。

无论如何,如果您能想到一种使用 STL 的方法,我将不胜感激。

这是我使用 c-strings 的程序

如果您看到任何可以使此代码更好的内容,请随时告诉我。

0 投票
2 回答
8163 浏览

python - 将 Python 中的二进制文件读入结构

如何在 Python 中打开二进制数据文件并将值一次读回long 一个结构。我现在有这样的东西,但我认为这会继续覆盖idList,我想附加到它,所以我最终得到long了文件中所有值的元组 -

0 投票
4 回答
8469 浏览

binaryfiles - 如何从扩展名为 *.spa 的 Nicolet FTIR 光谱文件中读取数据

  1. *.spa 二进制文件格式是商业机密吗?但是 Perkin Elmer 向公众发布了 *.sp 格式;

  2. 如何阅读?

0 投票
1 回答
295 浏览

c# - 将数据文件中的元素位置映射到类属性

我需要按照第三方规范提供的格式读取/写入文件。规范本身非常简单:它说明了将保存在文件中的数据的位置和大小。例如:

列表很长,大约有 400 个元素。但是它们中的许多可以组合在一起。例如,小时、分钟、秒、日、月和年可以组合在一个 DateTime 对象中。我将元素分为大约 4 个类别,并创建了单独的类来保存数据。所以,我有一些较小的类,而不是代表数据的大结构。我还创建了不同的类来读取和写入数据。

问题是:如何将文件中的位置映射到对象属性,这样我就不需要重复读/写类中的值了?我可以使用一些自定义属性并通过反射检索它们。但由于代码将在内存和处理器较小的设备上运行,因此最好找到另一种方式。我当前读取的代码如下所示:

关于这个有什么想法吗?