NSRange
fouf
Membre
Voila ce que je cherche a faire :
j'ai un NSRange (si j'ai bien compris, il s'agit d'un objet qui permet de recuperer une partie des charactères d'un NSString) et je voudrais avoir en plus des characteres deja "selectionnes", 4 charactères en plus a gauche et a droite.
Exemple j'ai la phrase :
"Quousque tandem, Catilina, abutere patentia nostra" (Ciceron pour les non latinistes (les chanceux )
et un NSRange qui "contient" les char "abutere". Or, je veux aussi recuperer les characteres "na, "(a gauche) et " pat" a droite. Comment faire? :why?:
Vous me donnerez deja un bon coup de main si vous me disiez a quoi correspond les variables location et length dans NSRange (euh, oui, j'ai regarder dans la doc d'Apple pendant une heure C'est imbitable :why?:)
Merci de me repondre, je l'ecrirais rapidos dans mes notes
"Verba volant, scripta manent"
j'ai un NSRange (si j'ai bien compris, il s'agit d'un objet qui permet de recuperer une partie des charactères d'un NSString) et je voudrais avoir en plus des characteres deja "selectionnes", 4 charactères en plus a gauche et a droite.
Exemple j'ai la phrase :
"Quousque tandem, Catilina, abutere patentia nostra" (Ciceron pour les non latinistes (les chanceux )
et un NSRange qui "contient" les char "abutere". Or, je veux aussi recuperer les characteres "na, "(a gauche) et " pat" a droite. Comment faire? :why?:
Vous me donnerez deja un bon coup de main si vous me disiez a quoi correspond les variables location et length dans NSRange (euh, oui, j'ai regarder dans la doc d'Apple pendant une heure C'est imbitable :why?:)
Merci de me repondre, je l'ecrirais rapidos dans mes notes
"Verba volant, scripta manent"
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Attention, ça commence à 0 et pas à 1.
A partir de là , tu dois pouvoir arriver à quelque chose.
Y'a aussi une autre fonction qui permet d'éclater une chaine à partir d'un charactère comme l'espace, mais là , j'ai oublié le nom...
EDIT : componentsSeparatedByString je crois...
ça renvoie les groupes de mots ds un tableau.
J'essaye ca tout de suite
la methode pour eclater les chaines est substringWithRange:
Merci encore <br />
PS:excusez-moi pour ces crise de latiniste en ma de citations
En fait je voulais juste rajouter quelque chose sur NSRange. C'est un peu à côté de la question, mais ce n'est pas grave puisque oxitan y a déjà répondu. Par contre, c'est un truc que j'ai découvert par hasard, et que je m'empresse de diffuser dans la mesure où c'est très pratique.
Dans Cocoa, il n'y a pas que des classes, il y a aussi des trucs comme NSRange, NSRect... qui sont des struct C bien pratiques, mais qui du coup ont le défaut de ne pas avoir de constructeur (via alloc, init...), bref, je trouvais ça un peu lourdingue à manipuler.
Et puis un jour, je suis tombé sur NSMakeRange(), que j'ai cru tombée du ciel. Faites cette recherche dans la doc de XCode, et hop ! on tombe sur une page avec plein de fonctions super pratiques pour gérer ces structures qui ne sont pas des objets !
+
Chacha
Alors comme l'a dit Chacha NSRange n'est pas un objet mais une structure C. En fait elle ne contient pas de caractères mais seulement deux entiers : "location" et "length".
Dans le code suivant :
Tu demande en fait à créer un nouvel objet NSString qui contiendra les caractères de anotherString à partir de l'index "location" et sur une longueur de "length" caractères.
Donc si on reprend ton exemple et que aRange vise bien les caractères que tu voulais pour avoir en plus les autres il suffit de faire ainsi :
Mais attention si anotherString ne contient pas 4 caractères avant et après ça va planter.