begin process at 2012 02 16 20:32:52
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

extraction de caractere


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

extraction de caractere

jeudi 28 septembre 2006 à 11:46:49 | extraction de caractere

mimildi

Bonjour a tous
je recherche un petit coup de main.....j'aurais voulu connaitre comment en vb remplacer  un bout de chaine de caractere par un autre:
je m'explique:
admettons que j'ai une chaine "bonjourXXXXX....et....XXXX....et....XX...." je voudrai retirer touts les "X" qui sont en nombres superieur a 4 mais garder les 4 premiers.
ouulllaaaa j'espere avoir etait assez clair...merci d'avance
jeudi 28 septembre 2006 à 11:58:13 | Re : extraction de caractere

olixelle

tu trouveras ta réponse dans les expressions régulières
c un peu indigeste au début mais très puissant

Rollerman
jeudi 28 septembre 2006 à 12:05:30 | Re : extraction de caractere

mimildi

Merci Rollerman je vien d'aller voir les expressions reguliere est étant debutant c'est assez "hard" mais si tu me dit que la solution est la alors je vais essaye de la trouver......
jeudi 28 septembre 2006 à 13:14:58 | Re : extraction de caractere

JMO

Membre Club



 Bonjour,

Exemple facilement transformable en vb6.
Dans ce script, j'affiche le nombre de fois que l'occurence recherchée
a été trouvée.
Il suffit donc de faire un Replace pour ne garder que les 4 premiers "XXXX".
Sur ce forum ou sur http://www.codyx.org/ , tu trouveras une variante en pur vb6.

jean-marc

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Recherche et modification d'une chaine de caractère dans une phrase
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Instruction Option Explicit: Force la déclaration explicite de toutes les variables dans un script
'Option Explicit

'Instruction Const: Déclare des constantes destinées à remplacer des valeurs littérales
Const Texte = "<span XXXXXclass="" txtnav3on"">XXXXX Colis&nbsp;<b>=Num&eacuteXXXXXX; ro 8N00629048780</b>&nbsp;&agrave;&nbsp;destination&nbsp;de&nbsp;=<b>74130 </span> </td>"
 
Const sChaine = "XXXXX"   'chaine recherchée

'Instruction Dim: Déclare des variables et alloue l'espace de stockage
Dim aPos() , iPos
'Instruction ReDim: Déclare les variables de tableau dynamique et attribue ou
'réattribue l'espace de stockage au niveau de la procédure
'Tableau où sont stockées les positions
ReDim aPos(0) 

'Fonction InStr: Renvoie la position de la première occurrence d'une chaîne
'à l'intérieur d'une autre
iPos = InStr(1, Texte, sChaine) 

'Instruction While...Wend: Exécute une série d'instructions tant qu'une condition donnée est True
    While iPos <> 0
'Fonction UBound: Renvoie le plus grand indice disponible pour la dimension indiquée d'un tableau
        ReDim Preserve aPos(UBound(aPos) + 1)
        aPos(UBound(aPos)) = iPos
        iPos = InStr(iPos + 1, Texte, sChaine)
    Wend

'Instruction If...Then...Else: Exécute un groupe d'instructions soumises à une condition,
'en fonction de la valeur d'une expression
    If UBound(aPos) > 0 Then
        Dim i , Resultat
        Resultat = "L'occurrence """ & sChaine & """ a été trouvée " & UBound(aPos) & " fois " &_
                   "dans l'expression " &vbCrLf&vbCrLf& """" & Texte & """" &vbCrLf

'Instruction For...Next: Répète un groupe d'instructions un nombre spécifié de fois
'Fonction CStr: Renvoie une expression qui a été convertie en un Variant de sous-type String
'Fonction Len: Renvoie le nombre de caractères contenus dans une chaîne
        For i = 1 To UBound(aPos)
            Resultat = Resultat & vbCrLf & "Postion: " & CStr(aPos(i)) & "," & CStr(aPos(i)) + Len(sChaine)
        Next 

    Else
   
        Resultat = "L'occurrence """ & sChaine & """ n'a pas été trouvée dans l'expression " &vbCrLf&vbCrLf&_
        """" & Texte & """" '&vbCrLf&vbCrLf&_
       
    End If

MsgBox Resultat

jeudi 28 septembre 2006 à 13:18:59 | Re : extraction de caractere

geobasic

Salut

2 instructions: Instr et Replace. Exemple:

Dim ptr As Integer
Ptr = Instr(MaChaine,"XXXX")
If Ptr > 0 Then
    MaChaine = Replace(MaChaine, "X", "", Ptr +4)
End If

En clair l'instruction Instr nous permet de repérer l'offset des 4 premiers X, et Replace retire les X suivant à partir de offset + 4
jeudi 28 septembre 2006 à 13:19:00 | Re : extraction de caractere

geobasic

Salut

2 instructions: Instr et Replace. Exemple:

Dim ptr As Integer
Ptr = Instr(MaChaine,"XXXX")
If Ptr > 0 Then
    MaChaine = Replace(MaChaine, "X", "", Ptr +4)
End If

En clair l'instruction Instr nous permet de repérer l'offset des 4 premiers X, et Replace retire les X suivant à partir de offset + 4
jeudi 28 septembre 2006 à 13:28:38 | Re : extraction de caractere

olixelle

effectivement en faisant un boucle sur l'instruction de geobasic tu devrais t'en sortir

mé bon c pas très élégant :)
jeudi 28 septembre 2006 à 14:25:47 | Re : extraction de caractere

mimildi

Merci pour ta réponse geobasic mais je pense pas quelle va fonctionner car imagine que je renconte effectivement mais "XXXX" dans mas chaine mais que juste colle derriere tu as "Z" et bien ta procedure effacera le "Z" si j'ai bien compris hors ce n'est pas cela que je recherche......je cherche a efface tout les "X" si il yen a plus de quatre a la suite.je suis sur une piste incluant un count et un compare mais pas sur de moi....alors je continu..

merci beaucoup pour votre aide

jeudi 28 septembre 2006 à 14:28:48 | Re : extraction de caractere

mimildi

mille pardon geobasic ta reponse me semble correct en fait merci a tous
jeudi 28 septembre 2006 à 14:43:23 | Re : extraction de caractere

geobasic

Excuxe moi mais il y a un petit problème dans mon code, j'aurais dû le tester avant de l'envoyer. En fait la fonction Replace à partir de Ptr+4 suprime tous les caractères du début de la chaine jusqu'à Ptr + 4. Il faut légèrement corriger le code de cette façon:

MaChaine = Left(Machaine,Ptr+3) + Replace(MaChaine, "X", "", Ptr +4)

1 2

Cette discussion est classée dans : chaine, caractere, extraction


Répondre à ce message

Sujets en rapport avec ce message

remplacer une chaine de caractere selectionner dans un textbox [ par nox ] comment puis je remplacer une chaine de caractere (qui se trouve dans un txtbox avec d'autres chaine precedement selectionner par l'utilisateur)par un Comment remplacer un caractere par un autre dans une chaine de caractere ? [ par bigbang ] Hi everybody !!Je voudrais savoir comment remplacer un caractere par un autre dans une chaine de caractere !par exemple pour une fonction mathématique Chaine de caractere [ par Frank19 ] Jai une chaine de caractere du style :dim TextRecu1 as stringTcpclient.getdata (TextRecu1)...Le TextRecu1 est égale à MmessageCe que je veux faire, c' Pb d extraction de chaine et de copie [ par Rastacana ] Voila je desire extraire des chaines de characteres via le separateur / et copier se ki se trouve entre les / et le coller dans des fichiers *.000 jus Melanger une chaine de caractere [ par LaMoUcHe2002 ] Bonjour,,, je suis débutant et je n'arrive pas a resoudre ce probleme....Je voudrais savoir comment faire pour malanger une chaine de caractere :ex: Tj pb d extraction de chaine [ par Rastacana ] voila j ai un fichier txt et je sais ke le nom de la comany se situe a la ligne 10 en decendant mon txt manuellement j aimerais extraire la chaine se SEPARER UNE CHAINE DE CARACTERE (split) [ par SHIVA ] Salut ,J'ai une chaîne qui est par exemple : " Marc,Kevin,nicolas"Comment faire pour séparer tous les noms contenue entre les virgules et les mettre e Bases de Données Access [ par LeRoux ] J'aimerais savoir si quelcun connait un place ou je pourrait apprendre comment ouvrir la base, chercher une chaine de caractere, utiliser le reste de enlever le dernier caractere d'une chaine? [ par serial ] question con mais bon!!si qq un peut m'aider merci position d'une chaine de caractere dans une autre [ par terriblepat ] y a t il une fonction vb qui permette de trouver la position d'une chaîne de caractère dans une autre ?the terrible terriblepat


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales