Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
22 janv. 2009 à 14:18
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010
-
23 janv. 2009 à 21:38
bonjour,
excusez moi de creer un nouveau poste pour ça, mais c'est pour etre plus attractif because je seche et je commence à avoir la pression...
je veux modifier la 1ere ligne d'un fichier ini mal formaté (il ne commence pas par une etiquette) donc je ne peux pas (ou n'arrive pas ?) utiliser l'API
WritePrivate ProfilString
J'ai donc adapté un code trouvé avec Google et le remplacement du mot fonctionne bien,
seulement maintenant, une ligne vide est ajouté au debut du nouveau fichier INI et je n'ai pas la moindre idée de pourquoi .
pouvez me donner votre avis svp ? merci d'avance.
voici le code que j'utilise mais je ne trouve pas la faille . HELP !
Dim
rech AsString= Remplace( "C:\Temp\test.ini", "tata", "TOTO")
'cr,ation d'un flux sp,cifique pour l',criture
Dim
flux2 AsNewSystem.IO.StreamWriter( "C:\Temp\test.ini", False)
',criture de la chaŒne modif,e sur le flux flux2.Write(rech)
flux2.Close()
End
End
Sub
Public
FunctionRemplace( ByValnomfic AsString, ByValtxtExpReg AsString, ByValtxtReplace AsString) AsString
'd,claration des variables contenant les actions sur les expressions r,guliŠres
Dim
Flux AsNewSystem.IO.StreamReader(nomfic)
Dim
tout AsString
Dim
re AsNewRegex(txtExpReg)
Dim
renvoi AsString= Nothing
Do
tout = Flux.ReadLine
'la chaine renvoi contient les remplacement effectu,es dans le flux par la m,thode Replace() sur l'objet re de la classe Regex
renvoi = renvoi & vbNewLine & re.Replace(tout, txtExpReg, txtReplace)
Tyrell2
Messages postés251Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 2 novembre 2010 22 janv. 2009 à 15:58
1/ merci beaucoup pour ton coup de main > cela fonctionne effectivement bcp mieux avec la condition if !
2/ la preuve que j'ai eu raison de créer un nouveau post
3 /quelles sont les variables qui te semblent superflues stp ?
cs_fauve
Messages postés661Date d'inscriptionvendredi 2 décembre 2005StatutMembreDernière intervention23 mars 20118 23 janv. 2009 à 18:26
Salut,
Tu obtiens l'erreur "processus ne peut pas accéder à fichier test.ini car est en cours d'utilisation" car tu retournes la valeur de la variable renvoi avant d'avoir fermé le fichier (
flux.Close()
) donc tu as Flux et Flux2 qui accède au même fichier d'où l'erreur.
La solution, il faut intervertir les lignes suivantes :
Remplace = renvoi
et
Flux.Close()
De façon a fermé le fichier avant de retourner la valeur de la variable renvoi
Ensuite, il faut utiliser Environment.NewLine car tu codes en VB.NET or vbNewLine est issu de VB6. En utilisant vbNewLine, tu obtiendrais la même chose qu'avec Environment.NewLine mais autant faire un code entièrement .NET