Lire premiere caratere d'une chaine de caractere [Résolu]

Messages postés
142
Date d'inscription
mardi 24 avril 2007
Dernière intervention
6 avril 2012
- 21 févr. 2010 à 14:40 - Dernière réponse :
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 21 févr. 2010 à 22:50
bonjour,
si possible de m'aider, je veux lire le premier caractère d'une chaine j'ai essayé avec substring mais j'ai pas trouvé truc

exemple :
bonjour---->bon

bonjour tous--->bt

merci :)
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 15:28
3
Merci
Salut

.Substring

Extrait une partie d'une chaîne.

Le premier paramètre indique la position de départ; le second, le nombre de caractères à extraire.


Dim a As String= "Informatique"

MessageBox.show(a.Substring(2,3)) 'Affiche for

Le premier paramètre indique la position du caractère où doit commencer la sous-chaîne, en commençant à la position 0. (les caractères sont comptés 0, 1, 2, 3....

Le second paramètre la longueur de la sous-chaîne.

Exercice 1: comment obtenir les 4 caractères de droite:


Dim a As String= "Informatique"

MessageBox.show(a.Substring(A.Length-4)) 'Affiche ique

Ici on omet le second paramètre,la longueur de la sous-chaîne, va jusqu'a la fin de la chaîne.

Exercice 2: comment obtenir les 3 caractères de gauche:


Dim a As String= "Informatique"

MessageBox.show(a.Substring(0, 3)) 'Affiche inf


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain

Merci cs_Galain 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Galain
Meilleure réponse
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:25
3
Merci
Salut

Soit la chaine GRENIER Alain

 
        Dim i As Long
        Dim chn As String = "GRENIER Alain"
        chn = chn.Trim ' enlève les espaces au début et à la fin
        Dim resultat As String = String.Empty ' chaine vide
        resultat = chn.Substring(0, 1)
        For i = 1 To chn.Length - 1
            If chn.Substring(i, 1) " " Then resultat resultat + chn.Substring(i + 1, 1)
        Next i
        Label1.Text = resultat


Attention si la chaine est "GRENIER Alain" cela ne fonctionnera pas car il y a 2 espaces entre les 2 mots
Par contre la chaine peut plus que 2 mots : à chaque fois la première lettre du mot est extraite

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain

Merci cs_Galain 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Galain
Meilleure réponse
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 17:30
3
Merci
Attention le code précédent est faux : mille excuses
il ne gère pas les espaces multiples
voici le code corrigé


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
        Dim i As Long
        Dim chn As String = TextBox1.Text.ToString
        chn = chn.Trim ' enlève les espaces au début et à la fin
        Dim resultat As String = chn.Substring(0, 1)  ' première lettre du premier mot
        For i = 1 To chn.Length - 2 ' on cherche les espaces
           ' si le caractère courant est un espace et que le caractère suivant n'est pas un espace
           ' on ajoute la première lettre de ce mot  
           If chn.Substring(i, 1) " " and chn.Substring(i+1,1) <> " " Then resultat resultat + chn.Substring(i + 1, 1)
        Next i
        Label1.Text = resultat

Merci cs_Galain 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_Galain
Messages postés
142
Date d'inscription
mardi 24 avril 2007
Dernière intervention
6 avril 2012
- 21 févr. 2010 à 15:46
0
Merci
merci, c'est bien fonctionner seulement me reste quand il y a dans une chaine un espace comme bonjour tous
il dois me retourner bt
exemple:
GRENIER Alain ---return---> GA

merci en avance si tu me sors de ce petit problème
Commenter la réponse de lassad_haddaji
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 21 févr. 2010 à 16:21
0
Merci
Salut,

Dim str as string = "bonjour tous"
if (str.Contains(" ")) then
dim tab as string() = .Split(" ")
dim result as List(of String)= new List(Of String) 
foreach t as string in tab
    result = a.Add(t(0))
next
return result.Join("")
else
' substring()
end if



(Code non testé) Ca donne une idée.
Commenter la réponse de nhervagault
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:30
0
Merci
Attention si la chaine est "GRENIER Alain" cela ne fonctionnera pas car il y a 2 espaces entre les 2 mots
Je n'avais mis qu'un espace : désolé

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:33
0
Merci
Le site remplace mes 2 espaces par un seul dans la chaine "GRENIER Alain"
L'autre solution est valable aussi mais moins simple


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:39
0
Merci
Salut nhervagault

J'ai essayé ton code pour voir et il y a plusieurs avertissements
il doit manquer des éléments ou des définitions de variables



La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
142
Date d'inscription
mardi 24 avril 2007
Dernière intervention
6 avril 2012
- 21 févr. 2010 à 16:40
0
Merci
cool, merci Galain et encore merci à nhervagault
juste une remarque pour nhervagault que ca fonction il y a une erreur .Split(" ") normalement on utilise with d'abord

merci
Commenter la réponse de lassad_haddaji
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:41
0
Merci
Si cela te convient mets "Repose acceptée"
A+

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 16:43
0
Merci
Faute de frappe : Réponse bien sur
Tu as été plus rapide que moi


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
142
Date d'inscription
mardi 24 avril 2007
Dernière intervention
6 avril 2012
- 21 févr. 2010 à 16:46
0
Merci
le script final je le met peut être un autre à besoin

        Dim i As Long
        Dim chn As String = TextBox1.Text.ToString
        If (chn.Contains(" ")) Then

            chn = chn.Trim ' enlève les espaces au début et à la fin
            Dim resultat As String = String.Empty ' chaine vide
            resultat = chn.Substring(0, 1)
            For i = 1 To chn.Length - 1
                If chn.Substring(i, 1) " " Then resultat resultat + chn.Substring(i + 1, 1)
            Next i
            Label1.Text = resultat
        Else
            Label1.Text = chn.Substring(0, 2)

        End If
Commenter la réponse de lassad_haddaji
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
- 21 févr. 2010 à 17:18
0
Merci
Certaines lignes de ton script sont inutiles
Ici le cas d'espaces multiples successifs est traité

Dim i As Long
        Dim chn As String = TextBox1.Text.ToString
        chn = chn.Trim ' enlève les espaces au début et à la fin
        Dim resultat As String = chn.Substring(0, 1)  ' première lettre du premier mot
        For i = 1 To chn.Length - 1 ' on cherche les espaces
           ' si le caractère courant est un espace et que le caractère précédent n'est pas un espace
           ' on ajoute la première lettre de ce mot  
           If chn.Substring(i, 1) " " and chn.Substring(i-1,1) <> " " Then resultat resultat + chn.Substring(i + 1, 1)
        Next i
        Label1.Text = resultat
        


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
6069
Date d'inscription
dimanche 13 avril 2003
Dernière intervention
15 juillet 2011
- 21 févr. 2010 à 22:50
0
Merci
Ok j'avais mis

"bonjour à tous".Split(" ") 


Et apres j'ai refais le code avec une variable intermédiaire
sans changer la remettre dans mon code avant de poster.

Le but etait d'introduire
les tableaux de string et les split et les join
Commenter la réponse de nhervagault

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.