2009-06-22 5 views
6

J'ai un fichier de mots/phrases séparés par des retours à la ligne. J'ai besoin d'obtenir le fichier et lire chaque mot/phrase dans le tableau. J'ai ce jusqu'à présent:Lire le fichier dans le tableau

NSFileHandle *wordsFile = [NSFileHandle fileHandleForReadingAtPath:[[NSBundle  mainBundle] pathForResource:@"WordList" 
                              ofType:nil]]; 
    NSData *words = [wordsFile readDataToEndOfFile]; 
    [wordsFile closeFile]; 
    [wordsFile release]; 

Mais je ne sais pas si c'est vrai, et si oui, où aller à partir de là.

En outre, la réponse de teabot de

NSString componentsSeparatedByCharactersInSet: NSCharacterSet newlineCharacterSet

fonctionne très bien, mais il est seulement 10,5. Comment ce comportement serait-il répliqué pour 10.4?

Répondre

11

Voici une approche qui devrait fonctionner - Je vais laisser à un exemple de code réel que la mise en œuvre doit être donnée assez simple suivante:

Construire un NSString à partir de votre fichier avec:

NSString stringWithContentsOfFile:encoding:error 

diviser la chaîne dans un tableau de NSStrings en utilisant les éléments suivants:

NSString componentsSeparatedByCharactersInSet: 
NSCharacterSet newlineCharacterSet 

Vous devriez finir avec un NSArray de NSStrings w chaque chaîne contenant l'une des lignes de votre fichier.

+1

Ne pas oublier de filtrer les chaînes vides causées par des lignes vides, y compris celui que les éditeurs UNIX (comme vi) partira à la fin du fichier. –

+1

Cela fonctionne très bien, mais ces deux derniers sont 10.5 seulement - ce qui les remplacerait si je veux la compatibilité sur 10.4? – Walker

+0

Bon appel re: 10.4.x - Je vous conseille de réviser la question pour refléter cela. – teabot

11

Juste pour être complet (et parce que je me ennuie) voici un exemple complet bassed sur le poste de teabot:

NSString *string = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] 
                  pathForResource:@"file" ofType:@"txt"]]; 

    NSArray *array = [string componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 
    NSLog(@"%@",array); 
+1

stringWithContentsOfFile: pathForResource: ofType obsolète "Utiliser stringWithContentsOfFile: encodage: erreur: ou stringWithContentsOfFile: usedEncoding: erreur: à la place." –

Questions connexes