補助アプリケーションによって構築された DataFile があります。データ ファイルに含まれる部分文字列を特定する必要があります。それらは、それらを区切る文字記号によって識別できます。例えば : *!substring
qSxt .部分文字列はプロジェクトごとに異なるため、次の部分文字列を読み取るには、それらを区切る記号を見つける必要があります。また、ファイルをさまざまなエンコーディングで印刷し、どのエンコーディングが使用され、元のデータ ファイルと一致したかを調べました。であることがわかりましたMacOsRomanStringEncoding
。
NSRange:rangOfString
区切り記号を見つけるために使用します。これが私のコードです:
char *debutAudio ="jjbj";
char *finAudio ="qSxt";
NSString *debutAudioConverted = [[NSString alloc]
initWithCString: debutAudio
encoding:NSMacOSRomanStringEncoding];
NSString *finAudioConverted = [[NSString alloc]
initWithCString: finAudio
encoding:NSMacOSRomanStringEncoding];
NSRange debutaudioRange =[dataFileContent rangeOfString:debutAudioConverted];
NSRange finaudioRange =[dataFileContent rangeOfString:finAudioConverted];
NSLog(@"range is %@",NSStringFromRange(debutaudioRange));
NSLog(@"range is %@",NSStringFromRange(finaudioRange));
両方のNSLog
戻り値の範囲は {9223372036854775807, 0} であるため、そこに区切り文字列が見つかりません。
また、「設定」などのファイルに含まれる他の文字列を探すように依頼するとrangeOfString
、適切な場所と長さが返されます。
ファイルに複数のエンコーディングが含まれている可能性があると考え、initWithCString
可能なエンコーディングに変換しようとしましたが、何もしませんでした。
また、テキスト編集でファイルを開いて「検索」機能を使用すると、区切り文字列は見つかりませんが、他の単語が見つかります。私の内臓は、その関連性を教えてくれます。どこで情報を調べればよいかわかりません。ファイルは保護されている可能性がありますが、そのコピーを読んでいます。