2009-06-22 15 views
6

Tengo un archivo de palabras/frases separadas por líneas nuevas. Necesito obtener el archivo y leer cada palabra/frase en la matriz. Tengo esto hasta ahora:Leer archivo en matriz

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

Pero no estoy seguro de si eso es correcto, y si es así, dónde ir desde allí.

Además, la respuesta de teabot de

NSString componentsSeparatedByCharactersInSet: NSCharacterSet newlineCharacterSet

funciona muy bien, pero es sólo el 10,5. ¿Cómo se replicaría este comportamiento para 10.4?

Respuesta

11

Aquí es un enfoque que debería funcionar - Voy a dejar salir un ejemplo de código actual, la aplicación debe ser bastante sencillo dada siguiente:

Construir una NSString de su archivo con:

NSString stringWithContentsOfFile:encoding:error 

dividir la cadena en una matriz de NSStrings utilizando el siguiente:

NSString componentsSeparatedByCharactersInSet: 
NSCharacterSet newlineCharacterSet 

Usted debe terminar con un NSArray de NSStrings w con cada cadena que contiene una de las líneas en su archivo.

+1

No se olvide de filtrar las cadenas vacías causadas por líneas en blanco, incluyendo el que los editores de UNIX (como vi) saldrá al final del archivo. –

+1

Eso funciona muy bien, pero esos dos últimos solo son 10.5, ¿qué los reemplazaría si quiero compatibilidad en 10.4? – Walker

+0

Good call re: 10.4.x - Te aconsejaría que revises la pregunta para reflejar esto. – teabot

11

simplemente para la corrección (y porque soy aburrido) aquí es un ejemplo completo bassed en el post de teabot:

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

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

stringWithContentsOfFile: pathForResource: ofType obsoleto "Usar stringWithContentsOfFile: encoding: error: o stringWithContentsOfFile: usedEncoding: error: instead." –

Cuestiones relacionadas