Téléchargement
illégal
Posez votre question Signaler

Vbs chaine de caractères

bergo 8Messages postés 11 juillet 2007Date d'inscription - Dernière réponse le 12 juil. 2007 à 16:41
bonjour,
je voudrais remplacer, sur une ligne d'un fichier, une chaine de caractères inconnue et de longueur variable (???????????) inserrée entre 2 chaines connues (CHAINE1 et CHAINE2), par une nouvelle chaine (yyy):
exemple: CHAINE1????????????CHAINE2 deviendrait CHAINE1yyyCHAINE2
( les ? correspondent à la chaine inconnue)
mon script:
---------------------------------------------------------------------------
Dim fso, contenu
Dim st
Const ForReading=1,ForWriting=2,ForAppending=8
Set objFSO = createObject("Scripting.FileSystemObject")
Set contenu = objFSO.OpenTextFile("mon fichier",ForReading)
Do While Not contenu.AtEndOfStream
st = contenu.readAll
Loop
contenu.Close
Set contenu = objFSO.OpenTextFile("mon fichier",ForWriting,true)
Contenu.Write replace(st,"CHAINE1??????????CHAINE2","CHAINE1yyyCHAINE2")
Contenu.Close
Set Contenu = Nothing
Set objFSO = Nothing
-------------------------------------------------------------------------------------------------
comment remplacer les ????
Lire la suite 

Vbs chaine de caractères »

5 réponses
Réponse
+0
moins plus
Trouver la position de Chaine1 et de Chaine 2, et remplacer ce qui se trouve entre les 2 positions avec la fonction Replace.
Ajouter un commentaire
Réponse
+0
moins plus
la chaine CHAINE1 est en début de ligne, et la chaine CHAINE2 est en fin de ligne
Ajouter un commentaire
Réponse
+0
moins plus
je voudrais remplacer, sur une ligne d'un fichier, une chaine de caractères inconnue et de longueur variable
(???????????) inserrée entre 2 chaines connues (CHAINE1 et CHAINE2), par une nouvelle chaine (yyy):
exemple: CHAINE1????????????CHAINE2 deviendrait CHAINE1yyyCHAINE2
( les ? correspondent à la chaine inconnue)

la chaine CHAINE1 est en début de ligne, et la chaine CHAINE2 est en fin de ligne

quelle serait la syntaxe pour remplacer tous les caractères compris entre la chaine "CHAINE1" et la chaine "CHAINE2", sachant que ce nombre de caractères n'est pas fixe;

merci par avance
Ajouter un commentaire
Réponse
+0
moins plus
Et bien si chaine 1 est TOUJOURS au début, alors tu peux extraire CHAINE1 de ta chaine entier, il te restera donc ??????????CHAINE2.
Ensuite tu peux extraire également CHAINE2, afin qui ne te reste que ????????.

Tu peux donc utiliser la fonction inStr de vb6, qui te permet de récupérer la position d'une chaine de caratère (par exemple CHAINE1) dans une autre chaine (ta chaine finale).

Syntax :

Dim positionChaine2 as integer
positionChaine2 = InStr ("CHAINE2","????????????CHAINE2 ")

Ensuite, une fois que tu as récupéré la position de CHAINE2, alors tu peux utiliser la fonction mid de vb6,
qui te permet de récupérer une chaine de caractère entre 2 positions.

Syntax :

Mid(string, start[, length])

Ce qui te donne, pour ton exemple :

Mid("????????????CHAINE2",1,positionChaine2)

Bon le code c'est un peu pret ca, après c'est à toi de bien tester ;)
Ajouter un commentaire
Réponse
+0
moins plus
désolé, je sèche

je sais seulement que ma chaine à remplacer commence au 8e caractère en partant du début de la ligne, et fini au 8e caractère en partant de la fin de la ligne (mon exemple: CHAINE1??????????CHAINE2 ).
je ne connais pas le contenu de la chaine à remplacer ni son nombre de caractère.

voila!
Ajouter un commentaire
Ce document intitulé « vbs chaine de caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?