Changement dans un fichier txt

Changement dans un fichier txt - VB/VBA/VBS - Programmation

Marsh Posté le 26-01-2006 à 14:11:48    

Re à tous!
 
Voilà une autre petite question, je cherche la syntaxe exact pour changer une chaine de caractère inconnue qui va de 0 à 125 (exemple que tout ce qui est compris entre 0 et 125 devienent automatique 127).
dans le même type que :
 
strNewText = Replace(strText, "10", "127" )
strNewText = Replace(strText, "11", "127" )
strNewText = Replace(strText, "12", "127" )
strNewText = Replace(strText, "13", "127" )
 
etc...
 
Pouvez vous m'aider svp?

Reply

Marsh Posté le 26-01-2006 à 14:11:48   

Reply

Marsh Posté le 26-01-2006 à 14:19:05    

méthode simple mais peut rapide:


dim i
dim strNewText
 
strNewText = strText
for i = 125 to 0 step - 1
    strNewText = Replace(strNewText, Cstr(i), "127" )
next


 
il y a certainement moyen de faire plus rapide avec des expresions régulières mais si cette méthode est assez rapide pour toi, ce n'est pas forcement la peine de se casser la tête


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 26-01-2006 à 14:27:07    

Ok merci ca fonctionne mais ca donne:
 
pour 9 par exemple ca ecrit 127127127127127
moi je veux que pour 9 (tjs exemple) ca donne 127 tout court
 
?

Reply

Marsh Posté le 26-01-2006 à 14:44:18    

Oups, j'ai fait une erreur, essaye ça, ça devrait mieux marcher:


  Const strToReplace = "¤¤¤¤¤¤¤¤¤¤¤¤"
  Dim i
  Dim strNewText
   
  strNewText = Text1.Text
  For i = 125 To 0 Step -1
      strNewText = Replace(strNewText, CStr(i), strToReplace)
  Next
   
  strNewText = Replace(strNewText, strToReplace, "127" )
   
  Text1.Text = strNewText


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 26-01-2006 à 15:45:35    

lorenzo777 a écrit :

car je ne comprends pas tes "*****************"
 
merci beaucoup de ton aide


Pas la peine de passer en MP, on peut continuer ici ;)
 
pour en revenir à la question, j'utilise la chaine  "¤¤¤¤¤¤¤¤¤¤¤¤" comme constante parce que je suis à peu près sûr de ne pas la rencontrer dans la chaine que je parcours. Je commence donc pa remplacer tous les nombres à remplacer par ma constante et ensuite je remplace toutes les occurence de ma constante par 127


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 26-01-2006 à 16:27:47    

bon je résume, je suis newbie puissance 20.  
 
 
 
 
Const ForReading = 1
Const ForWriting = 2
 
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set objFile = objFSO.OpenTextFile("C:123.txt", ForReading)
 
strText = objFile.ReadAll
objFile.Close
dim i  
dim strNewText  
 
strNewText = strText  
for i = 125 to 0 step - 1  
    strNewText = Replace(strNewText, Cstr(i), "127" )  
 
 
 
Set objFile = objFSO.OpenTextFile("C:\123.txt", ForWriting)
objFile.WriteLine strNewText
objFile.Close
 
Next
 
 
Question: je place ton code comment? et ou?

Reply

Marsh Posté le 26-01-2006 à 16:50:56    

tu remplace le code que j'ai donné en premier par celui que j'ai donné par la suite


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Sujets relatifs:

Leave a Replay

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