Je dois écrire (au début de l'application) et supprimer le contenu (à la fin de l'application) un csv dans mon fichier bac à sable avec un flux de données. Pour votre expérience, quelle est la meilleure façon de faire cela?iphone, écrire le fichier csv dans le bac à sable
modifier:
je suis en train avec ceci:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filename [email protected]"test.csv";
NSString *fullPathToFile = [documentsDirectory stringByAppendingPathComponent:filename];
if(![[NSFileManager defaultManager] fileExistsAtPath: fullPathToFile]) {
[[NSFileManager defaultManager] createFileAtPath: fullPathToFile contents:nil attributes:nil];
}
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath: fullPathToFile];
NSString *data = [NSString stringWithFormat:@"%@,%@\n", latitudine.text, longitudine.text];
[handle writeData:[data dataUsingEncoding:NSUTF8StringEncoding]];
fonctionner, mais .... chaque writedata temps est d'appeler je suis arrivé qu'une seule ligne, pas append. je veux rassembler toutes les valeurs de mes deux textlabel.
Où est mon erreur?
Edit2:
yessss, trouver la solution avec ce code:
première fois que je créer celui-ci:
- (NSString *)dataFilePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingPathComponent:@"myfile.csv"];
}
et dans mon viewDidLoad je vérifie et si n'existe pas, créer mon fichier
if (![[NSFileManager defaultManager] fileExistsAtPath:[self dataFilePath]]) {
[[NSFileManager defaultManager] createFileAtPath: [self dataFilePath] contents:nil attributes:nil];
NSLog(@"Route creato");
}
et dans l'une de ma méthode j'ajouter le code pour récupérer des données et ajouter à mon dossier:
NSString *data = [NSString stringWithFormat:@"%@,%@ ", latitudine.text, longitudine.text];
//create my data to append
NSFileHandle *handle;
handle = [NSFileHandle fileHandleForWritingAtPath: [self dataFilePath] ];
//say to handle where's the file fo write
[handle truncateFileAtOffset:[handle seekToEndOfFile]];
//position handle cursor to the end of file
[handle writeData:[data dataUsingEncoding:NSUTF8StringEncoding]];
//write data to with the right encoding
Hope this helps!
Vous devez toujours les supprimer vous-même: "Votre application doit supprimer les fichiers de ce répertoire lorsqu'elle détermine qu'ils ne sont plus nécessaires." de la [docs] (http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/FilesandNetworking/FilesandNetworking.html#//apple_ref/doc/uid/TP40007072-CH21-SW12) – progrmr
ok C'est à tous. La meilleure façon de travailler avec csv est nsfilehandle? Je suis maintenant en train de vérifier ce document. – zebra