IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

rechercher une chaine dans une chaine [Objective-C]


Sujet :

Objective-C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 61
    Points
    61
    Par défaut rechercher une chaine dans une chaine
    bonjour,
    suite à mon problème de \n, je continue ma recherche sur un titre de livre/auteur.
    pour une chaine égale pas de soucis isEqualToString fait l'affaire.
    Par contre si je ne recherche qu'un morceau de la chaine ?
    j'ai essayé avec compare: puis localizedCaseInsensitiveCompare:
    mais je n'arrive à rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    - (void)findBookWithString:(NSString *)whichString 
    				  ofType:(NSString *)newType
    				 inArray:(NSMutableArray *)myList{
    	Book *book;	
    	//je regarde si c'est une recherche par auteur
    	if ([newType isEqualToString:@"AUTEUR"]) {
    		//je parcours mes livres
    		for (NSString * key in myLibrary) {
    			book=[myLibrary objectForKey:key];
    			//si le nom de l'auteur est exactement le même casse comprise je le retrouve ça marche
    			if ([book.author isEqualToString:whichString]) {
    				[myList addObject:book];
    			}
    			//si je n'ai qu'une partie du nom et que je ne tiens pas compte de la casse je n'y arrive pas
    			if ([book.author localizedCaseInsensitiveCompare:whichString]== NSOrderedSame){
    				[myList addObject:book];
    			}
    		}
    	}else {
    	//pour une recherche sur le titre qui est aussi la clé de mon dictionnaire, qui serait aussi à revoir pour une recherche sur un mot du titre
    		book=[myLibrary objectForKey:whichString];
    		if (book != nil) {
    				[myList addObject:book];
    		}		
    	}
    }
    pourquoi ma recherche n'aboutit pas ?
    merci de vos conseils.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Voir la famille de méthodes "rangeOfString:" pour tester si une chaîne est incluse dans une autre.

    Sinon il y a aussi des frameworks Objective-C pour les expressions régulières, si vos besoins s'étendent jusque là … (OGReKit, RegExKitLite et d'autres…).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    ben j'ai testé ça aussi et ça ne marche pas non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    for (NSString * key in myLibrary) {
    		book=[myLibrary objectForKey:key];
    		NSRange range;
    		int location=0;
    		int length=0;
    		if ([newType isEqualToString:@"AUTEUR"]) {
    			range=[book.author rangeOfString:whichString];
    			location=range.location;
    			length = range.length;
    		}else {
    			range=[book.title rangeOfString:whichString];
    			location=range.location;
    			length = range.length;
    		}
    		if (location != 0){
    			[myList addObject:book];
    			location=0;
    		}
    	}

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 98
    Points : 61
    Points
    61
    Par défaut
    ok résolu je n'avais pas vu le retour NSNotFound si non trouvé.
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  3. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  4. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  5. Réponses: 7
    Dernier message: 21/08/2006, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo