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

Windows Forms Discussion :

[vb.net][string.indexOf(char)] trouver le n caractère


Sujet :

Windows Forms

  1. #1
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut [vb.net][string.indexOf(char)] trouver le n caractère
    bonjour, la méthode indexOf de String permet de trouver l'index du premier caractère de la chaine recherché.
    la méthode IndexOf renvoi l'index du dernier caractère recherché.
    Par contre est il possible de lui dire de nous ramener l'index du 3eme caractère qu'il rencontre ?
    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    :/
    je crois qu'il faut faire 3 fois la fonction indexOf il m semble ? nan ?

  3. #3
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    ben, oui tu peux faire une fois la fonction, puis stocker une nouvelle chaine dans une variable pour refaire la fonction ..
    mais c'est un peu lourd

  4. #4
    Membre habitué Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    ben tu peux te faire une petite fonction qui te fait tout ca...un truc genre
    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
     
    public int FindNOccurence( string pToAnalyse, string pToSearch, int pNOccurence )
    {
    	int startIndex = 0;
    	int occurence = 0;
    	bool find = false;
    	while(!find)
    	{
    		int index = pToAnalyse.IndexOf( pToSearch, startIndex );
    		if (index != -1)
    		{
    			occurence += 1;
    			startIndex = index + 1;
    			if (occurence == pNOccurence)
    				find = true;
    		}
    		else 
    		{
    			if (occurence == 0)
    				return -1;
    		}
    	}
    	return startIndex ;
    }
    j'ai pas testé mais ca doit marcher (heu ya surement moyen d 'optimiser tout ca, c'est à titre d'exemple...)

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Tu peux toujours essayer avec cette méthode (mais aucune garantie d'optimisation ! ):
    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
    		static int NIndexOf(string source, string target, int rank)
    		{
    			int index = -1;
     
    			string[] segments = source.Split(new string[] { target }, StringSplitOptions.None);
     
    			if (segments.Length >= rank + 1)
    			{
    				for (int i = 0; i < rank; i++)
    				{
    					index += segments[i].Length;
    				}
    				index += target.Length * (rank - 1) + 1;
    			}
     
    			return index;
    		}

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

Discussions similaires

  1. [C++.Net] Conversion de String en char
    Par tunisienne84 dans le forum MFC
    Réponses: 3
    Dernier message: 27/04/2006, 16h41
  2. Convertir String en Char: comment?
    Par nmathon dans le forum Langage
    Réponses: 2
    Dernier message: 22/08/2005, 20h58
  3. [VB.NET] Obtenir un Char a partir de son ASCII Decimal ...
    Par maitrebn dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/09/2004, 14h49
  4. [Debutant(e)]limitation du String 65536 char
    Par srane dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 28/05/2004, 23h42
  5. [VC++ .NET] String::Format({?}, ...
    Par benoitB dans le forum MFC
    Réponses: 2
    Dernier message: 15/12/2003, 13h22

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