Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Replace character expression
Message
De
08/07/2010 04:02:39
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01471799
Message ID:
01471817
Vues:
62
>>>is there a quick way to inspect a text document and change all [1] to [01] and all [2] to [02] etc something along the lines of what i have set up below (which doesn't work) - or should i be looking at another approach altogether?
>>>
>>>cFile = Filetostr("C:\mytext.txt") 
>>>
>>>cFile = Strtran(cFile,Chr(202),"E") && using this code i can change only one character at a time
>>>
>>>cFile = strtran(cFile,"[5]","[05]")  && can i use the same approach for character string - perhaps using chrtran??
>>>
>>
>>If:
>>
>>- you don't use the "[" character anywhere else
>>- you always want to put a "0" after it, no matter the length of the number between "[" and "]"
>>
>>then you could just use STRTRAN() to replace each "[" with "[0".
>
>unfortunately al this is not the case - i have numbers 01-99 and this only affects the first 9 numbers in which case i want to see 01 and not 1 to maintain the character count. past 09 i'm fine.
>
>abcdefg [01] = is what i need
>as opposed to submitted data which reads # abcdefg [1]

Well, in that case you could just brute-force it in 10 lines of code, no RegEx needed, maintainable in pure VFP:
cFile = strtran(cFile,"[0]","[00]") && if you need to handle [0]
cFile = strtran(cFile,"[1]","[01]")
cFile = strtran(cFile,"[2]","[02]")
cFile = strtran(cFile,"[3]","[03]")
cFile = strtran(cFile,"[4]","[04]")
cFile = strtran(cFile,"[5]","[05]")
cFile = strtran(cFile,"[6]","[06]")
cFile = strtran(cFile,"[7]","[07]")
cFile = strtran(cFile,"[8]","[08]")
cFile = strtran(cFile,"[9]","[09]")

* or, if you wanted to do it in "one line of code", you could nest the above calls < eg >
Some people might pooh-pooh brute-force solutions, but they have their place.
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform