pb ecriture dans un fichier [vbs] - VB/VBA/VBS - Programmation
Marsh Posté le 06-02-2006 à 18:57:35
Quand y a des carrés sous éditeur texte, ce sont des caractères non "affichables", genre codes de contrôle, autres...
file. et File. c'est pareil ? (sensible à la casse ? Je demande, je ne connais pas, juste un peu de Google)
Marsh Posté le 06-02-2006 à 19:04:15
J'ai testé le code donné sur mon PC sous Windows Millennium.
Au début, je croyais que c'était un problème de conversion de date. Mais non, ça marche bien. Cependant, deux remarques :
1. La syntaxe de CreateTextFile est différente de la syntaxe de OpenTextFile, à cause du troisième paramètre qui n'a pas la même signification dans les deux cas. A mon avis, il ne faut pas mettre "true" pour CreateTextFile.
2. Le fichier créé est un fichier Unicode (chaque caractère est codé sur deux octets), et non pas un fichier Ascii (chaque caractère est codé sur un seul octet). C'est pour cela que les anciens éditeurs de texte affichent des carrés au lieu des caractères.
Voici une version modifiée qui génère le fichier en mode Ascii :
Const forAppending = 8, forwriting = 2 |
Marsh Posté le 07-02-2006 à 09:26:51
salut !
merci pour cette info tres détaillée, ça marche parfaitement !
sinon, je ne pense pas que le vbs soit sensible à la casse, du moins pour certaines fonction, aucuns problèmes.
@+
Marsh Posté le 06-02-2006 à 16:11:01
bonjour,
j'essaye d'écrire plusieurs fois dans un même fichier, auparavant créé mais il ne me rajoute que des carré à la suite.
mon code :
Const forAppending = 8, forwriting = 2
Set objFSO = CreateObject("Scripting.FileSystemObject" )
Set fso = CreateObject("Scripting.FileSystemObject" )
'On Error Resume Next
datejour = Date
datejour = Replace(datejour,"/", "-" )
fichierLOG = "d:\Scripts\_FINI\ISA\ErreurEnvoiMail.Log"
If Not objFSO.FileExists(fichierLOG) Then
Set File = fso.CreateTextFile(fichierLOG, forWriting, True)
File.WriteLine "Le rapport du " & datejour & " n'a pu être envoyé."
File.Close
Else
set File = fso.OpenTextFile(fichierLOG, forAppending, True)
file.WriteLine "Le rapport du " & datejour & " n'a pu être envoyé."
file.Close
End If
le résultat : (le fichier texte)
Le rapport du 06-02-2006 n'a pu être envoyé. <--- j'écris cette phrase quand je créé le fichier
敌爠灡潰瑲搠⁵㘰〭ⴲ〲㘰渠愧瀠⁵瓪敲攠癮祯⻩ <---- lorsque j'écris de nouveau dans le fichier
(bon ici il n'y a pas que des carrés, mais dans mon bloc note si.)