lire variable dans fichier texte

yachiro

Membre confirmé
22 Juin 2011
29
0
37
Bonjour à tous,

J'ai un problème avec le traitement d'un fichier texte. En effet, je développe une application cocoa qui lorsque je vais cliquer sur un bouton va créer un fichier txt dont la taille et le nombre de section va varier selon tel ou tel paramètre mais dont le format sera toujours identique c a d :

[section]
name1 = var1
name2 = var2
name3 = var3
name4 = var4

[section]
name1 = mavar1
name2 = mavar2
name3 = mavar3
name4 = mavar4

etc..

Vous l'aurez compris je cherche donc à stocker les variables (var1-4, mavar1-4) dans des NSString, ou int tout dépend du type de la variable.
Le nom de la section reste toujours le même et les indices name1-4 également seul ce qui suit le "=" change et c'est ce que je dois récupérer et stocker.

J'ai cherché un peu partout sans réellement trouver mon bonheur, je sais lire le contenu entier d'un fichier, ou même ligne par ligne, mais je n'arrive pas à faire ce dont j'ai besoin.

C'est pourquoi je demande votre aide vraiment car je suis dans un impasse et j'ai besoin au plus vite de régler ce problème pour passer à la suite!

Ah et j'oubliais le fichier commence toujours par un commentaire de type #...generated from...

je voudrais donc en faire abstraction bien entendu dans la lecture du fichier.

Merci à tous pour votre attention j'espère avoir été assez clair n'hésitez pas à me le dire dans le cas contraire.

Cordialement.
 
La solution brutale :

Bloc de code:
NSString *str = @"a = b";
int i, l = [str length];

for (i = 0; i < l; i++) 
{
      unichar c = [str characterAtPosition:i];
     if (i == '=')
     {
           NSString *newstr = [str substringFromString:i+1];
           // ici tu fais ce que tu veux de ton texte.
     }
}

Sethy
 
Merci pour la réponse mais la méthode characteratposition est inexistante..

---------- Nouveau message ajouté à 11h36 ---------- Le message précédent a été envoyé à 11h35 ----------

Et pour ce qui est du XML bah j'aimerais bien aussi mais bon on me l'interdit ! j'vais voir au niveau du NSScanner
 
Bon alors voila ce que j'ai fais

Bloc de code:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    NSString * tmp;

	NSArray *arrayData = [[NSArray alloc] init];
	arrayData = [[NSString stringWithContentsOfFile:@"/Users/ineovation/Desktop/test.cfg"] componentsSeparatedByString:@"\n"];
	
	NSMutableArray * ArrayApp = [[NSMutableArray alloc] initWithArray:arrayData];
	[ArrayApp removeObjectAtIndex:0];
	[ArrayApp removeObjectAtIndex:1];
	
	NSEnumerator *nse = [ArrayApp objectEnumerator];
	while(tmp = [nse nextObject]) {
        NSLog(@"%@", tmp);
		
		NSString * stringafterequal;
		NSScanner *scanner = [NSScanner scannerWithString:tmp];
        [scanner scanUpToString:@"=" intoString:nil];
        [scanner scanString:@"=" intoString:nil];
        [scanner scanUpToString:@"\n" intoString:&stringafterequal];
			[ArrayApp addObject:stringafterequal];
	}
	
	NSString * name = [[ArrayApp objectAtIndex:0]retain];
	NSString * IPServ = [[ArrayApp objectAtIndex:1]retain];
	NSString * transport = [[ArrayApp objectAtIndex:2]retain];
	NSString * port = [[ArrayApp objectAtIndex:3]retain];
	
	[pool release];

Il me sort une erreur SIGBART en me disant que "-[NSCFArray insertObject:atIndex:]: attempt to insert nil'" donc à priori j'essaierai d'insérer un nil dans mon tableau ce qui est impossible et le pire c'est que je ne vois pas du tout ou j'essaie d'insérer un nil dans le tableau...

Bref navré de solliciter à nouveau votre aide mais là j'suis coincé