gpt4 book ai didi

objective-c - 适用于 iOS 和 Mac OS X 的 MacBinary 转换器

转载 作者:可可西里 更新时间:2023-11-01 05:45:55 26 4
gpt4 key购买 nike

我正在寻找在 iOS 和 Mac OS X 上转换 MacBinaryIII 编码文件的代码。我能找到的唯一两个是 Christopher Evans MacBinaryIII和肖恩·胡梅尔斯 MacBinaryIII OSAX 1.0.1它们都使用 iOS 或 64 位 Mac OS X Obj-C 运行时不可用的 API。

最佳答案

您处于一个不值得羡慕的位置,不得不重新使用旧代码来处理一种编码,好吧,这些日子即使根本没有使用过那么多。只需解码,您的任务就会变得更简单。

MacBinaryIII.c/.h 中,执行以下操作:

摆脱 EncodeMacBinaryFile()EncodeMacBinaryFiles()EncodeMacBinary()FSpIsMacBinary() .

也删除 SetDesktopComment(),并删除它在 DecodeMacBinaryFiles()DecodeMacBinary() 中的使用;如果您只需要转换后的文件,那么这是多余的。

虽然您已经大大简化了事情,但您需要转换代码,使其适用于文件路径,而不是那些将文件名保存在 Pascal 字符串中且最大限制为 31 个字符的 FSSpec 结构。为此:

使用 .m 扩展名而不是 .c 重命名文件以处理 Cocoa 内容。

要确定文件是否存在,您可以使用 -[NSFileManager fileExistsAtPath:]

要读取文件,您可以使用 NSFileHandle 快速获取文件内容进行转换。你会得到一个 NSData 回来,并且需要制作它的可变副本来转换它的内容。要写出转换后的数据,您可以利用 NSMutableData 的写出到文件的能力。

最后,在执行字节操作时要注意字节序问题。这段代码是在 68000(和后代)硬件和 PowerPC:big-endian 时代编写的。

我希望我有一些东西可以放在你的腿上,随时准备出发,但鉴于这项特殊的任务,我只能提供这些。

祝你好运!

关于objective-c - 适用于 iOS 和 Mac OS X 的 MacBinary 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13749502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com