に変換します。このファイルは、情報をチェックするために最初のバイトを読み取る必要があります。 Cのコードは多かれ少なかれ次のものです。それは大きなコードなので、ここで基本機能を書いただけです。CをObj-Cファイルの読み込みコード
ここでは100%Objective-Cにしたいと思いますが、正しく実行する方法が見つかりません。
FILE *f;
char *buf;
f = fopen ("/Users/foo/Desktop/theFile.fil", "rb");
if(f) {
fseek(f , 0 , SEEK_END);
size = ftell(f);
rewind (f);
buf = (char*) malloc (sizeof(char)*size);
switch(ntohl(*(uint32 *)buf)) {
case 0x28BA61CE:
case 0x28BA4E50:
NSLog(@"Message");
break;
}
fclose(f);
free (buf);
私はこれになった最も近いが、以下のものです:
NSData *test = [[NSData alloc] initWithContentsOfFile:filePath];
これは私のすべてのバイナリを取得しますが、とにかく、私は捕まってしまいました。すべてを開始しようとするといいです。
なぜ組み込みの方法を使用しないのですか? '+ [NSString stringWithContentsOfFile]'など? –
まず、コードが間違っているように見えます。あなたは 'malloc'でファイル全体のバッファをmallocしていて、何も読まなくてもそのバッファを検査しています。そして、あなたが述べた目標が単にファイルの先頭を読むことであるなら、大きなバッファを必要としません。 –
@KevinBallardこれは一時的な解決策に過ぎません。私の目標はObj-Cを使うことなので、C言語で最良のコードを置き換えるだけでなく、私がそれに来たときに、その努力を記憶に入れて詳細をバッファできると思った。 switch文の中の値をどのように比較したいかの考え方。私はすでに使用したい16進値のリストを持っています。 – Apollo