标签: binaryfiles

在Ruby中解析二进制文件

我需要能够用Ruby解析二进制文件.此文件包含通过包含文件偏移量和每个块长度的标头找到的数据块.

如何正确获取数据?到目前为止,我一直无法根据我读出的偏移来寻找文件,因为它们出现在字符串中,我不知道如何转换为IO#seek理解的格式.

有帮助吗?将偏移量和长度转换为可用的东西(如整数或其他东西)的一般方法会很有帮助.

ruby binaryfiles

8
推荐指数
1
解决办法
4628
查看次数

对于二进制文件,我应该使用bfiles还是bigfiles?

处理大型二进制文件有一些mercurial扩展.

我想使用最有可能是官方的(即与mercurial分发).
Kiln 2.0使用Bfiles的分支作为其二进制文件.这是否更有可能成为官方?

哪个是处理二进制文件的首选(半官方)扩展?

version-control mercurial binaryfiles mercurial-bigfiles

8
推荐指数
1
解决办法
1124
查看次数

Ubuntu:如何链接二进制文件

我有一个C++代码.我编译它,我现在有二进制xyz.现在,每次我需要执行二进制文件时,我都必须切换到相应的目录来使用./xyz执行它.但是如何使用命令xyz从任何地方运行二进制文件.如何将此二进制文件链接到ubuntu中的命令.我目前使用的是Ubuntu 10.10

linux ubuntu binaryfiles

8
推荐指数
1
解决办法
2万
查看次数

关于二进制文件的一般问题

我是初学者,我在抓取二进制文件时遇到了麻烦.当我以二进制模式(在python中)写入文件时,我只写正常文本.关于它没有任何二进制文件.我知道我的计算机上的每个文件都是二进制文件,但是我无法区分我用二进制模式写的文件和音频,视频等文件,如果我在文本编辑器中打开它们就会显示为乱码.

文件如何显示为乱码?你能举个像这样创建的小文件的例子,最好是在python中吗?

我有一种感觉,我问的是一个非常愚蠢的问题,但我不得不问它.谷歌搜索并没有帮助我.

python binaryfiles binary-data

8
推荐指数
1
解决办法
1719
查看次数

读取/写入java中的大型文件

我有一个以下格式的二进制文件:

[N bytes identifier & record length] [n1 bytes data] 
[N bytes identifier & record length] [n2 bytes data] 
[N bytes identifier & record length] [n3 bytes data]
Run Code Online (Sandbox Code Playgroud)

如你所见,我有不同长度的记录.在每个记录中,我有N个字节固定,其中包含和id以及记录中的数据长度.

这个文件很大,可以包含3百万条记录.

我想通过应用程序打开此文件,让用户浏览和编辑记录.(插入/更新/删除记录)

我的初步计划是从原始文件创建和索引文件,并为每条记录保留下一个和上一个记录地址,以便轻松地前后导航.(某种链表,但文件不在内存中)

  • 是否有库(java库)来帮助我实现这个要求?

  • 您认为有用的任何推荐或经验?

-----------------编辑-------------------------------- --------------

感谢您的指导和建议,

更多信息:

原始文件及其格式不受我的控制(它是第三方文件),我无法更改文件格式.但我必须阅读它,让用户浏览记录并编辑其中一些(插入新记录/更新现有记录/删除记录),最后将其保存回原始文件格式.

你还推荐使用DataBase而不是普通的索引文件吗?

-----------------第二次编辑------------------------------- ---------------

更新模式下的记录大小是固定的.它表示更新(编辑)的记录与原始记录的长度相同,除非用户删除记录并创建不同格式的另一条记录.

非常感谢

java file-io binaryfiles

8
推荐指数
1
解决办法
1342
查看次数

C在二进制文件的中间写入而不覆盖任何现有内容

今天的问题是我需要在起始位置的二进制文件中编写一个数字数组.我有它应该开始的位置,我不想在此之后覆盖值,只是想将数组插入文件的起始位置.例如:

12345
Run Code Online (Sandbox Code Playgroud)

让我们在第2位推456:

12456345
Run Code Online (Sandbox Code Playgroud)

我知道可能我必须自己实现它,但我想知道你对如何尽可能有效地实现它有什么看法.

c file-io binaryfiles

8
推荐指数
2
解决办法
6526
查看次数

git:只保留特定文件的最新版本

我在 github 中保留了一些LaTex 课程笔记。我的同事不知道如何使用LaTex,并要求我将最终的PDF放在repo中。

将二进制构建结果保存在 repo 中通常是一个坏主意,并且在每次推送后将PDF 作为外部文件上传并不方便。

有没有办法在 repo 中只保留最新版本的 PDF?

pdf git version-control binaryfiles github

8
推荐指数
1
解决办法
3057
查看次数

如何序列化二进制文件以用于芹菜任务

我最近在我的一个应用程序中集成了芹菜(django-celery更具体).我在应用程序中有一个模型如下.

class UserUploadedFile(models.Model)
    original_file = models.FileField(upload_to='/uploads/')    
    txt = models.FileField(upload_to='/uploads/')
    pdf = models.FileField(upload_to='/uploads/')
    doc = models.FileField(upload_to='/uploads/')

    def convert_to_others(self):
        # Code to convert the original file to other formats
Run Code Online (Sandbox Code Playgroud)

现在,一旦用户上传文件,我想将原始文件转换为txt,pdf和doc格式.调用该convert_to_others方法是一个昂贵的过程,所以我打算使用芹菜异步.所以我写了一个简单的芹菜任务如下.

@celery.task(default_retry_delay=bdev.settings.TASK_RETRY_DELAY)
def convert_ufile(file, request):
    """ 
    This task method would call a UserUploadedFile object's convert_to_others
    method to do the file conversions.

    The best way to call this task would be doing it asynchronously
    using apply_async method.
    """
    try:
        file.convert_to_others()
    except Exception, err:
        # If the task fails …
Run Code Online (Sandbox Code Playgroud)

django binaryfiles pickle celery

8
推荐指数
1
解决办法
4444
查看次数

如何使用c#从二进制文件中读取浮点值?

我正在尝试floatbinary文件中读取值,

public static void tmpTest ( )
    {
        string fileName = @"c:\debug\tmp_1.bin";

        /* Write */
        using ( BinaryWriter bw = new BinaryWriter ( File.Open( fileName, FileMode.Create ) ))
        {
            bw.Write ( 10.001f );
            bw.Write ( 10.002f );
        }

        /* Read */
        using ( BinaryReader br = new BinaryReader ( File.Open ( fileName, FileMode.Open ) ) )
        {
            int val_1 = br.Read (); // Output : 25
            int val_2 = br.Read (); // Output : 4
        } …
Run Code Online (Sandbox Code Playgroud)

c# binaryfiles

8
推荐指数
1
解决办法
6885
查看次数

解析帝国时代的游戏记录文件(.mgx)

我是过时的帝国时代II(AoE)游戏的粉丝.我想用Python编写AoE游戏记录(.mgx文件)的解析器.

我在GitHub上做了一些搜索并发现了很少的项目,最有用的是aoc-mgx格式,它提供.mgx游戏记录文件的一些细节.

这是问题所在:

根据参考文献,.mgx文件的结构如下:

| header_len(4byte int)| next_pos(4byte int)| header_data | ...... |

十六进制数据的mgx格式的字节顺序是小端.

header_len存储Header部分的数据长度(header_len + next_post + header_data)

header_data存储我需要的有用信息,但它用zlib压缩

我试图用zlib模块解压缩header_data中的数据,如下所示:

import struct
import zlib

with open('test.mgx', "rb") as fp:
    # read the header_len bytes and covert it to a int reprents length of Header part
    header_len = struct.unpack("<i", fp.read(4))[0]

    # read next_pos (this is not important for me)
    next_pos = struct.unpack("<i", fp.read(4))[0]

    # then I …
Run Code Online (Sandbox Code Playgroud)

python binaryfiles zlib inflate

8
推荐指数
1
解决办法
932
查看次数