2014-06-27 4 views
0

J'ai un fichier avec les entrées suivantesfaçons de délimiter votre texte dans VBSCRIPT

"SMEGOLD 1312", 20131127, "C", "11606233E", "SMX", "C", 20131009,170028, » SMX "," 70207 ", 0,1,4699,0,469.9," USD ", 0," ", 0," ", 0," ", 0," ", 0,0,0,8062696," ", 0,20131009,170028, "SYSTEM", "25228", "", "166", "121328200000223", 785,0, "", "", "", "", "", "", "", "", "", "", "", "", 0,0,0, "", 20131009,170028, "ADVMEE"

"SMEGOLD 1312", 20131127, "C", "11606233E", "SMX", "C", 20131009,170030, "SMX", "70207", 0,1,4699,0,469,9, "USD", 0, "", 0, "", 0, "", 0, " ", 0,0,0,8062697," ", 0,20131009,170031," SYSTEM "," 25228 "," "," 167 "," 121328200000223 ", 786,0," "," "," " , "", "", "", "", "", "", "", "", "", 0,0,0, "", 20131009,170028, "ADVMEE"

Ce que je voudrais accomplir est d'obtenir seulement le premier texte de citation de la ligne. Exemple "SMEGOLD 1312". Ensuite, je voudrais ajouter les 3 premiers caractères et les 4 derniers caractères de ce texte extrait à l'arrière de la ligne.

Et de passer à la ligne suivante pour poursuivre la procédure jusqu'à la fin du fichier.

Tout conseil sera d'une grande aide. J'ai essayé d'utiliser le objRegEx.Pattern mais en vain

Merci

Répondre

1

Utilisez un modèle qui coupe/groupes le premier champ toto (1), ses trois premiers (2) et ses quatre derniers (3) caractères et tout le reste (4). Puis .Remplacer de manière créative:

>> s = Replace("'SMEGOLD 1312','whatever','ADVMEE'", "'", """") 
>> WScript.Echo s 
>> Set r = New RegExp 
>> r.Pattern = "^((""[^""]{3})[^""]*?([^""]{4}""))(.*)" 
>> WScript.Echo r.Replace(s,"$1$4,$2$3") 
>> 
"SMEGOLD 1312","whatever","ADVMEE" 
"SMEGOLD 1312","whatever","ADVMEE","SME1312" 
+0

Existe-t-il un moyen de compter le nombre d'espaces dans une chaîne ou un texte? – user3783939

+0

@ user3783939 - ne pas poser de questions complètement indépendantes dans les commentaires. Si la question vaut la peine, utilisez le mécanisme standard (après avoir cherché en vain une solution). –

Questions connexes