[Résolu] - Splitter efficacement une chaà®ne
Bonjour,
J'utilise la méthode read de NSInputStream pour lire dans un stream. Cette méhode stocke les données lues dans un buffer de type (uint8_t *).
J'ai besoin de découper cette chaà®ne et je ne sais pas qu'est-ce qui est le plus efficace :
1. Convertir le buffer de type uint8_t * en NSString (stringWithCString:encoding) et utiliser la méthode componentsSeparatedByString:@\t
-> Si je ne me trompe pas, ça va allouer une nouvelle chaà®ne (pour le stringWithCString), puis un tableau puis des NSString pour les tronçons identifiées. Ca me semble gourmand ...
2. Utiliser une fonction C comme strtok pour splitter la chaà®ne
-> Le problème c'est que lorsqu'il y a 2 \t consécutifs, strtok ne me le signale pas, j'ai l'impression qu'il les "concatène" et de coup ça me fausse l'identification d'un champ.
Selon vous, qu'est-ce qui serait le plus efficace à faire dans mon cas ?
Merci
Réponses
Ouais bizarre, mais normal apparemment:
Donc, il faut utiliser autre chose (strchr par ex)
Sinon perso j'ai pas de problème avec componentsSeparatedByString:
c'est bien pratique et le fait que cela soit plus gourmand ou pas, n'a que peu d'importance pour une appli Cocoa me semble-t-il.
Merci. J'ai finalement opté pour le componentsSeparatedByString: qui comme indiqué est bien plus pratique !