extraction chaine de caractere

extraction chaine de caractere - VB/VBA/VBS - Programmation

Marsh Posté le 21-04-2016 à 11:40:46    

Bonjour à tous !
 
Je n'arrive pas à manipuler correctement ma chaine de caractère.  
 
mon but est de récupérer le nom d'un zip.  
 

Code :
  1. <Doc FileId='xxxx' Name='file2.zip' Path='' IsCommitted='1' RelativeLocation='files/file2.zip' />


 
voici un exemple de chaine de caractere que je peux avoir. J'ai fait des recherches sur InStr et sur Mid, mais je n'ai pas trouvé comment récupérer une chaine entre x et y. J'aimerais donc récupérer file2.zip
 
J'ai essayé ça mais je récupère toute la ligne du coup...  :??:  
InStr(1, TextLine, "Name=", vbTextCompare)
 
 :jap:

Reply

Marsh Posté le 21-04-2016 à 11:40:46   

Reply

Marsh Posté le 21-04-2016 à 12:28:12    

 
            Bonjour,
 
            chercher par exemple la position de ".zip" dans la chaîne puis
            via la fonction InStrRev chercher la position du ' qui précède et enfin via la fonction Mid extraire le nom
            en calculant la longueur par la différence arithmétique élémentaire du niveau CM1/CM2 entre les positions !
 

Reply

Marsh Posté le 21-04-2016 à 13:42:09    

Ok merci beaucoup, je ne connaissais pas InStrRev.  
 
mon code fonctionne, merci :

Code :
  1. position1 = InStr(1, ligne, ".zip" )
  2. position2 = InStrRev(ligne, "'", position1)
  3. longueur = position1 - position2
  4. ZipFileName = Mid(ligne, position2, longueur)

Reply

Marsh Posté le 21-04-2016 à 13:49:16    

 
            J'aurais ajouté 1 à Position2
 
            Autre méthode :

Code :
  1. Sub Demo()
  2.     Const LIGNE = "<Doc FileId='xxxx' Name='file2.zip' Path='' IsCommitted='1' RelativeLocation='files/file2.zip' />"
  3.     MsgBox Split(Split(LIGNE, "Name='" )(1), "'" )(0)
  4. End Sub


 

Reply

Marsh Posté le 21-04-2016 à 13:51:22    

 
            Ou encore MsgBox Split(LIGNE, "'" )(3)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed