我正在寻找代码来转换iOS和Mac OS X上的MacBinaryIII编码文件。我能找到的唯一两个是Christopher Evans MacBinaryIII和Sean Hummels MacBinaryIII OSAX 1.0.1,它们都使用不可用的API在iOS或64位Mac OS X Obj-C运行时上运行。适用于iOS和Mac OS X的MacBinary转换器
回答
你现在处于一个不可饶恕的位置,不得不复活旧的代码来处理一种编码,即使在这些日子里,这些编码也没那么用。只需要解码就可以让您的任务变得更轻松。
在MacBinaryIII.c/.h
,请执行下列操作:
摆脱EncodeMacBinaryFile()
,EncodeMacBinaryFiles()
,EncodeMacBinary()
和FSpIsMacBinary()
。
也摆脱SetDesktopComment()
,并删除其在DecodeMacBinaryFiles()
和DecodeMacBinary()
;如果你想要的只是转换后的文件,这是多余的。
虽然大大简化了事情,但您需要转换代码,使其适用于文件路径,而不是那些以Pascal字符串保存文件名的FSSpec
结构,最大限制为31个字符。为此目的:
重命名带.m扩展名的文件而不是.c来处理Cocoa的东西。
要确定文件是否存在,您可以使用-[NSFileManager fileExistsAtPath:]
。
要读取文件,您可以使用NSFileHandle
快速和肮脏的获取文件内容进行转换。你会得到一个NSData,并且需要制作一个可变的副本来转换它的内容。为了写出转换后的数据,可以利用NSMutableData写出文件的功能。
最后,在执行字节操作时要小心endian问题。这段代码是在68000(和后代)硬件和PowerPC:big-endian的日子里编写的。
我希望我有一些东西,我可以放在你的腿上,准备去,但考虑到这个特殊的任务,这是我所能提供的。
祝你好运!
无法控制的立场,我认为这是我的工作头衔;)Thx。 – catlan
- 1. 适用于Mac OS X的MapKit?
- 2. 适用于Mac OS X的openAL教程
- 3. 适用于Mac OS X的ldconfig
- 4. 适用于Mac OS X的AirPlay API
- 5. 适用于Mac OS X的乳胶
- 6. 适用于Mac OS X的UIPopoverController?
- 7. Tkinter的扶养适用于Mac OS X
- 8. 适用于Mac OS X的Pascal IDE
- 9. 适用于DirectShow的Mac OS X,GraphEdit
- 10. 适用于Mac OS X的构建
- 11. OpenGLScreenSnapshot不适用于Mac OS X 10.7 - Lion
- 12. 用于Mac OS X的Fortran调试器
- 13. 找到适用于OS X但不适用于iOS的标头
- 14. 适用于Mac OS X的16位Real Mode C编译器
- 15. 适用于Mac OS X的核心动画乐器?
- 16. 适用于iOS和Mac OS X的跨平台方法是什么?
- 17. 适用于Mac OS和iOS的通用类
- 18. 哪个Emacs适用于Mac OS X?...适用于Windows?适用于Linux?
- 19. 适用于iOS和OS X应用程序的库?
- 20. 为Mac OS X转换Linux shell脚本
- 21. 如何启用适用于Mac OS 10.8.3
- 22. 同步iOS和Mac OS X数据
- 23. jQuery.data()适用于Mac OS WebKit,但不适用于iPhone OS?
- 24. Mac OS X和Mercurial
- 25. MAC OS X - Xcode4和
- 26. 适用于iPhone开发者的Mac OS X上的OpenGL
- 27. 适用于Mac OS X的独立SVN客户端
- 28. 适用于Mac OS X的Commodore 64开发工具
- 29. 适用于Mac OS X的系统范围快捷方式
在[Open Powerplant](http://sourceforge.net/projects/open-powerplant/)中有一个MacBinary类,但我怀疑它是更现代的代码。 – JWWalker