Bonjour.
Voici le code pour séparer les mots en virant les chaînes vides. Note l'usage de StringSplitOptions. Il faut penser à regarder les surcharges (et utiliser le débogueur pour comprendre ce qui cloche). 
En C# :
root.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Conversion automatique vers VB :
root.Split(New Char() {" "C}, StringSplitOptions.RemoveEmptyEntries)
PS : Split est une "méthode". Au pire, "fonction".
PPS : Pour le coup des mots à partir de la position N, on cherchera d'abord l'index k du premier espace à partir de la position N - 1 avec String.IndexOf(" "C, N-1) puis on utilisera String.Substring(k + 1). Gaffe au cas où k est trop grand.
PPPS : Si un problème de performances est constaté, on peut tenter de désactiver l'interning des strings (google, "disable string interning dotnet") ou bien d'utiliser une approche plus manuelle en n'utilisant qu'IndexOf et pas Split si on n'a pas besoin de connaître les mots eux-mêmes mais seulement leurs positions. Pour IndexOf, la surcharge avec StringComparaison doit pouvoir permettre de booster encore le tout. Enfin, si tout cela finit par être concaténé, c'est sans doute là qu'est le problème et on gagnera à utiliser un StringBuilder.
Partager