Tag: binaryfiles

将二进制文件读入结构

我正在尝试使用C#读取二进制数据。 我有关于我想要读取的文件中的数据布局的所有信息。 我能够读取数据“块大块”,即获得数据的前40个字节转换为一个string,获得下一个40个字节,… 由于至less有三个稍微不同的版本的数据,我想直接读取数据到一个结构。 它只是比“逐行阅读”更为合适。 我已经尝试了以下方法,但无济于事: StructType aStruct; int count = Marshal.SizeOf(typeof(StructType)); byte[] readBuffer = new byte[count]; BinaryReader reader = new BinaryReader(stream); readBuffer = reader.ReadBytes(count); GCHandle handle = GCHandle.Alloc(readBuffer, GCHandleType.Pinned); aStruct = (StructType) Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(StructType)); handle.Free(); 该stream是一个已经开始读取的已打开的FileStream。 当使用Marshal.PtrToStructure时,我得到一个AccessViolationException。 该stream包含更多的信息比我试图读取,因为我不感兴趣的数据在文件的末尾。 结构是这样定义的: [StructLayout(LayoutKind.Explicit)] struct StructType { [FieldOffset(0)] public string FileDate; [FieldOffset(8)] public string FileTime; [FieldOffset(16)] public int […]

使用linux命令将hex信息转换为二进制

我在我的linux系统上有这个二进制文件.. udit@udit-Dabba ~ $ cat file.enc Salted__s bO <0 F Jw! ] :`C LKȆ l 使用hexdump命令,我看到这样的信息.. udit@udit-Dabba ~ $ hexdump -C file.enc 00000000 53 61 6c 74 65 64 5f 5f 1b 73 a1 62 4f 15 be f6 |Salted__.s.bO…| 00000010 3c 30 cc 46 ee 10 13 11 84 bf 4a 77 21 a4 […]

我如何区分“二进制”和“文本”文件?

非正式地,我们大多数人都明白,有“二进制”文件(目标文件,图像,电影,可执行文件,专有文件格式等)和“文本”文件(源代码,XML文件,HTML文件,电子邮件等)。 一般来说,你需要知道一个文件的内容,以便能够对它做任何有用的事情,并且如果编码是“二进制”或“文本”就形成了这个观点,这并不重要。 当然文件只是存储数据的字节,所以它们都是“二进制的”,“文本”并不意味着什么都不知道编码。 然而,讨论“二进制”和“文本”文件仍然是有用的,但为了避免这个不准确的定义,我将继续使用“恐吓”引号。 但是,有各种各样的工具可以处理各种文件,实际上,您希望根据文件是“文本”还是“二进制”来做不同的事情。 一个例子是在控制台上输出数据的任何工具。 简单的“文本”将看起来很好,是有用的。 '二进制'的数据混乱了你的terminal,一般没有用处。 当确定是否应该输出匹配到控制台时,GNU grep至less使用这个区别。 所以,问题是,你如何判断文件是“文本”还是“二进制”? 而进一步限制,你如何告诉一个像Linux文件系统的Linux? 我不知道任何文件系统的元数据表明文件的“types”,所以通过检查文件的内容,问题进一步变成了“文本”还是“二进制”? 为了简单起见,我们将“文本”限制为可在用户控制台上打印的字符。 特别是你将如何执行这个? (我认为这是暗示在这个网站上,但我想这是有帮助的,一般来说,指出现有的代码,这样做,我应该指定),我不是真的在现有的程序可以用来做什么这个。

如何编辑unix系统上的二进制文件

在Windows机器上,有许多第三方编辑器可以编辑二进制文件。 我相信那里应该有一些在* nix系统中的similer buildin。 任何想法如何编辑unix上的二进制文件?

使用请求获取Node.js中的二进制内容

我正在尝试使用request GET二进制数据,并且有如下所示的内容: var requestSettings = { method: 'GET', url: url, }; request(requestSettings, function(error, response, body) { // Use body as a binary Buffer } 但是body总是与预期不同的几个字节。 经过进一步的调查,我发现request假定body是string,并取代所有非Unicode字节。 我试图添加 encoding: 'binary' 请求设置,但它没有帮助。 我怎样才能得到二进制数据?

如何识别文件内容为ASCII或二进制

如何将文件内容识别为使用C ++的ASCII或二进制文件?

PHP:从二进制数据重新创build和显示图像

是否有可能从二进制数据(如果需要处理它们)重新创build图像,并显示它们,都在同一个脚本? 就像是 // get and display image 1: $imagedata1 = file_get_contents('assets/test.png'); $imagedata1 = process_using_gd_or_something($imagedata1); echo "<img src={$imagedata1} >"; // <– IS THIS (OR EQUIVALENT) POSSIBLE? // get and display image 2: //etc… 我想避免将图像存储到磁盘,并从那里获取或使用外部脚本…

使用gitpipe理大型二进制文件

我正在寻找如何处理我的源代码(Web应用程序)所依赖的大型二进制文件的意见。 目前我们正在讨论几个备选scheme: 手动复制二进制文件。 临:不确定。 Contra:我强烈反对这一点,因为它增加了在build立一个新站点/迁移旧站点时出现错误的可能性。 build立另一个障碍。 用git来pipe理它们。 专业版:删除“忘记”复制重要文件的可能性 Contra:扩大版本库并降低pipe理代码库和checkouts / clone / etc的灵活性需要相当长的一段时间。 分开的存储库。 专业版:检出/克隆源代码的速度一如既往,并且图像被正确存档在自己的存储库中。 Contra:删除在项目上拥有唯一的 git仓库的简单性。 当然会介绍一些我没有想过的事情。 你对此有什么经验/想法? 另外:有没有人有多个git仓库的经验,并在一个项目中pipe理他们? 更新 :这些文件是用于生成包含这些文件的PDF的程序的图像。 文件不会经常变化(如年),但与程序非常相关。 该程序不会没有文件工作。