Wie schreibe ich Strings line-by-line in eine .txt File?

I

IceCake97

Registriert
Thread Starter
Dabei seit
04.05.2012
Beiträge
4
Reaktionspunkte
0
Hallo!
Ich kann dazu leider nichts in Google o.ä. finden, alles was ich probiere funktioniert nicht...
Ich habe die .txt-File "textfile.txt" in meinen Projektordner kopiert und möchte nun durch das Drücken eines Buttons den Text der aktuell in einem TextView steht in die erste Zeile der "textfile" schreiben.
Wie mache ich das?
Wäre nett wenn ihr helfen könntet ;)
LG,
IceCake
 
Sorry, ich bin noch Anfänger. Das sagt mir leider nicht so viel ;)
 
Was sagt Dir "nicht so viel"? Hast Du es Dir durchgelesen?
 
Soweit bin ich nun schon:

NSString *output = TextView.text;
NSString *path = [@"textfile.txt" stringByStandardizingPath];
NSError *error = [[NSError alloc]init];
[output writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:&error];

NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
TextView2.text = content;

"TextView" entspricht hierbei dem TextView, dass den Text enthält, der in die "textfile.txt" geschrieben wird und im TextView2 wird er aus der .txt Datei ausgelesen und angezeigt. Ich weiß nur nicht, wie ich den Text immer ans Ende der .txt Datei speichern kann. Dazu kann ich in den zwei Links nichts finden (Vielleicht bin ich auch nur blind...). Ich habe mal etwas von "seekToEndOfFile" gehört, kann aber damit nichts anfangen ;)
LG,
IceCake
 
Üblicherweise würde man das nicht unbedingt so machen, weil das ja eine Schicht tiefer ist.

Man würde anstatt dessen einfach den Dateiinhalt in den String lesen modifizieren und danach zurückschreiben.
Dann bleiben Dateiinhalt und String-Objekt auch wirklich gleich.

Um Dein Beispiel aufzunehmen (Link 1):
Code:
NSMutableString * filetext = [NSMutableString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
[filetext appendString:@"Die letzte Zeile\n"];
[B][filetext writeToFile:path atomically:NO encoding:NSUTF8StringEncoding error:&error];[/B]


Möchte man das aber aus bspw. technischen bedingten Gründen unbedingt direkt auf Dateiebene modifizieren (Link 2):

Code:
FILE* theFile = fopen([path UTF8String], "a");
[B]fputs("Letzte Zeile. Wirklich!!\n", theFile);[/B]
fclose(theFile);

Ist der Groschen gefallen?
 
Zuletzt bearbeitet:
Man würde anstatt dessen einfach den Dateiinhalt in den String lesen modifizieren und danach zurückschreiben.
Dann bleiben Dateiinhalt und String-Objekt auch wirklich gleich.
Das skaliert aber nicht gut - spätestens wenn Du mal 500MB Text einlesen willst, ist das alles eklig :)
 
Zurück
Oben Unten