0

コンマで区切られたUITextFieldから既存のtxtファイルにテキストを追加するにはどうすればよいですか?

私はこのコードを使用します:

  NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
NSString  *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];

NSString *word = [NSString stringWithFormat:@"%@ ,", _wordInput.text];

[word writeToFile:textPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

ご覧のとおり、このコードを使用して、UITextField である _wordInput からテキストを追加し、コンマを追加します。その後、writeToFile オプションを使用してテキストを text.txt ファイルに書き込みます。

私はテストし、うまく機能しますが、既存のテキストを上書きするたびに..

テキストを上書きしないでください。カンマで区切ってください。

この時点で私の UITextField に「earth」というテキストがあるとしましょう。ボタンを押すと、上記のコードが実行されます。UITextField に別のテキストを入力して上記を実行すると、text.txt ファイルには「earth」が含まれます。コード、既存のテキストは上書きされますが、「アース」の後に追加する必要があります。

ありがとう。

4

2 に答える 2

1

書き戻すときは、元のテキストを含める必要があります。このようなもの:

NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
NSString  *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];
NSString *existingFileContents = [NSString stringWithContentsOfFile:textPath encoding:NSUTF8StringEncoding error:nil];

NSString *newFileContents = [NSString stringWithFormat:@"%@, %@", existingFileContents, _wordInput.text];

[newFileContents writeToFile:textPath atomically:YES encoding:NSUTF8StringEncoding error:nil];

write() や fwrite() などのシステム API 呼び出しを使用する方が効率的だと思いますが、測定したことはありません。テキスト ファイルが大きい場合は、調べてみることをお勧めします。

于 2013-08-08T22:05:05.680 に答える
1

以下の関数のようなものを使用することをお勧めします。

-(void)saveText:(NSString*)data
{
    NSString *imageName = [NSString stringWithFormat:@"Documents/text.txt"];
    NSString  *textPath = [NSHomeDirectory() stringByAppendingPathComponent:imageName];
    NSString *word = [NSString stringWithFormat:@"%@ ,", _wordInput.text];
    NSFileHandle *fileHandler= [NSFileHandle fileHandleForWritingAtPath:textPath];
    [fileHandler seekToEndOfFile];
    [fileHandler writeData:[word dataUsingEncoding:NSUTF8StringEncoding]];
    [fileHandler closeFile];
}
于 2013-08-08T22:08:04.250 に答える