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

VBScript Discussion :

recherche chaine de caractere


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut recherche chaine de caractere
    Bonjour,

    J'ai realiser un programme qui permet de choisir un fichier sur le disque dur et ensuite des qu il rencontre un <td> il saute la ligne.
    Mon probleme c est qu'il reconnait sous cette forme <td> mais des que c est <td width="414"> par exemple il ne reconnait plus.Je me demandais si il y avait une fonction qui pemettrais de dire que des qu il trouve <td au debut et > a la fin qu il puissent prendre tt cette chaine de caractere afin de faire le saut de ligne.

    Voici le bout de code au niveau de la recherche:

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, i, j, k, strtmp, Resultat
    Set fso = CreateObject("Scripting.FileSystemObject")
     
     Dim objTextStream 'objet contenant  le texte  a modifier,pour chaque modif ouvrir le fichier en lecture et ecriture
     'on lis le fichier corespondant pour modifier les td
    		   Set objTextStream = Fso.OpenTextFile(fichier, ForReading)
    		   Resultat = objTextStream.ReadAll
    		   strtmp = split(Resultat,"")
    					For j = 0 to Ubound(strtmp)
    				If instr(trim(strtmp(j)),"<td>") Then
    					strtmp(j) = Replace(strtmp(j),"<td>","<td>" & vbcrlf & vbtab  & vbtab )
     
    				End If
    				objTextStream.Close
    				Set objTextStream = Fso.OpenTextFile(fichier, ForWriting, True)
    				objTextStream.Write strtmp(j) 
    				objTextStream.Close
    			Next
     
    			'on lis le fichier corespondant pour modifier les td
    			 Set objTextStream = Fso.OpenTextFile(fichier, ForReading)
    		   Resultat = objTextStream.ReadAll
    		   strtmp = split(Resultat,"")
    		  			For k =  0 to Ubound(strtmp)
    				If instr(trim(strtmp(k)),"</td>") Then
    					strtmp(k) = Replace(strtmp(k),"</td>",vbcrlf & vbtab  & vbtab &"</td>")
     
    				End If
    				objTextStream.Close
    				Set objTextStream = Fso.OpenTextFile(fichier, ForWriting, True)
    				objTextStream.Write strtmp(k) 
    				objTextStream.Close
    			Next
     
    Set objTextStream = Nothing
    Set fso = Nothing
     
    MsgBox "Modifications effectuées !!!", vbInformation, Now()
    Pour plus de precision n 'hesiter pas a me demander

    merci d avance

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    si j'ai bien compris tu recherches "<TD" dans ta chaine et si l'extrait de ta chaine qui commence par "<TD" se termine par ">", alors la condition est remplie.

    En code, ca pourrait donner ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    VVal0 = InStr(strtmp, "<TD")
    ExtLine = Mid(strtmp, VVal0, Len(strtmp) - VVal0 + 1)
     
    If Right(extline, 1) = ">" Then
       strtmp = Replace(strtmp,extline,extline & vbcrlf & vbtab  & vbtab )
    End If
    Qu'en penses-tu ?

    A++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    oui t as tt as fais compris,je v essayer la je te tiens au courant
    merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    J arive pas a l utiliser il me dise erreur,peut tu me montrer comment tu le mettrais en place a partir de mon code au dessus
    merci
    a+

  5. #5
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    dans ton code remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If instr(trim(strtmp(j)),"<td>") Then
    strtmp(j) = Replace(strtmp(j),"<td>","<td>" & vbcrlf & vbtab  & vbtab )
    End If
    par mon code et remplace les strtmp par des strtmp(j)
    Et dis moi si ca marche ou pas.

    A++

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 15
    Points : 12
    Points
    12
    Par défaut
    Sa ne marche pas il reconait pas ton Vvalo,je l ai delarermerci comme meme pour ton aide,je v essyaer de refauire mon algo voir si il yas pas un autre moyen .
    encore merci a+++

  7. #7
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Ok,

    VVal0 c'est la valeur de la position ou se trouve ta chaine "<TD".
    Si tu as des lignes ou tu n'as pas de chaine "<TD" , tu dois ajouter un if pour prévoir ce cas. Remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    VVal0 = InStr(strtmp, "<TD")
    ExtLine = Mid(strtmp, VVal0, Len(strtmp) - VVal0 + 1)
     
    If Right(extline, 1) = ">" Then
       strtmp = Replace(strtmp,extline,extline & vbcrlf & vbtab  & vbtab )
    End If
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    VVal0 = InStr(strtmp(j), "<TD")
    If VVal0 > 0 Then
       extLine = Mid(strtmp(j), VVal0, Len(strtmp(j)) - VVal0 + 1)
       If Right(extline, 1) = ">" Then
          strtmp(j) = Replace(strtmp(j),extline,extline & vbcrlf & vbtab  & vbtab )
       End If
    End If
    et ca devrait etre bon.

    A++

Discussions similaires

  1. rechercher chaine de caractere quelque soit la casse
    Par hugodu13 dans le forum VBScript
    Réponses: 8
    Dernier message: 10/12/2010, 22h49
  2. [Batch] Recherche chaine de caractere dans spool puis passage en variable VRAI/FAUX
    Par calamarz dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 09/04/2009, 16h50
  3. Recherche chaine de caracteres W2K3 server
    Par jujulev dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 02/07/2008, 11h10
  4. recherche chaine de caractere ne marche pas !!
    Par lobiman dans le forum Langage
    Réponses: 1
    Dernier message: 24/08/2006, 12h55
  5. Recherche chaine de caractere
    Par fantomchris dans le forum C
    Réponses: 11
    Dernier message: 08/01/2006, 16h52

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