3

基本的に、Objective C だけを使用して解決する必要がある懸念があります。(私はCで試しました)

  • ドキュメントディレクトリに配置されたファイルから1文字ずつ(EOFまで)読み取るための適切な方法はありますか?したがって、ファイル内のすべての逆コンマの前にエスケープ文字を追加し、各行の前に特殊文字 (/ など) を追加します。

    交換

    (タイプ == "プロジェクト")

    /(doc.type == \"プロジェクト\")

私のアプローチが正しくないと感じた場合、このタスクを効率的に達成するための他の方法はありますか?

4

2 に答える 2

4

ファイルからすべての行を取得し、文字の置換やテキストの追加などの変更を加えてから、ファイルを保存します。

NSString *objPath = [[NSBundle mainBundle] pathForResource:@"textfile" ofType:@"txt"];
NSData *objData = [[NSData alloc] initWithContentsOfFile:objPath];

NSString *objString = [[NSString alloc] initWithData:objData encoding:NSUTF8StringEncoding];
NSMutableArray *lines = [NSMutableArray arrayWithArray:[objString componentsSeparatedByString:@"\n"]];

for (int i = 0; i < lines.count; i++) {
    NSString *oneLine = [lines objectAtIndex:i];
    if (oneLine.length < 2) {
        continue;
    }
    oneLine = [NSString stringWithFormat:@"/%@", oneLine];
    oneLine = [oneLine stringByReplacingOccurrencesOfString:@"`" withString:@"\`"];

    [lines replaceObjectAtIndex:i withObject:oneLine];        
}
NSString *finalString = [lines componentsJoinedByString:@"\n"];
//save the file
于 2012-07-02T11:54:05.760 に答える
2

NSFileHandle を使用して readDataAtLength: を値 1 で呼び出すことができます。

于 2012-07-02T11:23:12.340 に答える