2012-02-11 7 views
-2

ファイルからX文字を読み取るにはどうすればよいですか?
バイトではありません。
どのようなクラスが私を助けますか?iPhone:ファイルからX文字を読み取る

難しいのは、エンコードが指定されていることです。

+0

バイトと "char"の違いは何ですか? –

+1

UTF8では、1〜6バイトの任意の文字を使用できます。 – StilesCrisis

+0

おそらく、NSFileHanldeはseekToFileOffsetとreadDataLengthを許可します。問題はそのバイトです。たぶん最悪の場合の文字数のバイト数を読み取ってから、NSString stringWithTF8Stringsがバイトを渡しますか?ここでちょうど推測する – bryanmac

答えて

0

解決方法は1バイトを読み取り、それを文字に変換しようとしています。例外が発生した場合は、1バイト以上を読み込み、6バイトまたは成功を読み取るまで変換してください。
成功すると、この文字を文字列に追加し、次のバイトを読み込みます。

1

可能であれば、ファイル全体をNSMutableStringに読み込み、必要に応じて先頭から文字を抽出します。これがオプションの場合は実装が非常に簡単です。

+0

これはできません:iOSデバイスのRAM容量は小さいです(ファイルが大きい)。また、文字の読み取りとバイトの読み取りが混在する可能性があります。 – DmitryR

+0

小さなバッファに読み込み、そのように文字を追跡します。それでは、記憶はもはや問題ではありません。 –

+0

それはあなたが必要とするものによって異なります。あなたは "ファイルの150,000番目の文字が必要ですか?"最初の100文字は必要ですか?あなたは "最後の1,000,000文字が必要ですか?"それぞれにはおそらく異なるアプローチがあります。また、あなたは、既知のエンコーディングがあると言いました。それは何ですか?それも答えに影響します。 – StilesCrisis

関連する問題