iOS および Mac OS X で MacBinaryIII エンコード ファイルを変換するコードを探しています。私が見つけたのは Christopher Evans MacBinaryIIIと Sean Hummels MacBinaryIII OSAX 1.0.1の 2 つだけで、どちらも iOS または 64 ビットでは使用できない API を使用しています。 Mac OS X Obj-C ランタイム。
1 に答える
あなたはうらやましい立場にあり、最近ではあまり使用されていないエンコーディングを処理するために古いコードを復活させなければなりません。デコードのみが必要なため、作業が多少簡単になります。
MacBinaryIII.c/.h
で、次の手順を実行します。
EncodeMacBinaryFile()
、、、およびEncodeMacBinaryFiles()
を取り除きます。EncodeMacBinary()
FSpIsMacBinary()
SetDesktopComment()
too を取り除き、 and での使用を削除しDecodeMacBinaryFiles()
ますDecodeMacBinary()
。変換されたファイルだけが必要な場合、これは不要です。
FSSpec
大幅に単純化しましたが、最大 31 文字のパスカル文字列でファイル名を保持する構造ではなく、ファイル パスで機能するようにコードを変換する必要があります。そのために:
ファイルの名前を .c ではなく .m 拡張子に変更して、Cocoa のものを処理します。
ファイルが存在するかどうかを判断するには、-[NSFileManager fileExistsAtPath:]
.
ファイルを読み取るには、NSFileHandle
quick と dirty を使用して、変換するファイルの内容を取得できます。NSData を取得し、その内容を変換するために変更可能なコピーを作成する必要があります。変換されたデータを書き出すために、ファイルに書き出す NSMutableData の機能を利用できます。
最後に、バイト操作の実行中はエンディアンの問題に注意してください。このコードは、68000 (およびその子孫) ハードウェアと PowerPC: ビッグエンディアンの時代に書かれました。
膝の上に置いてすぐに使えるものがあればいいのですが、この特定のタスクを考えると、これが私が提供できるすべてです。
幸運を!