[vba] Ecrire un .txt d'une seule ligne

Résolu/Fermé
0seb0 Messages postés 37 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 6 mars 2008 - 5 nov. 2007 à 15:04
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 - 5 nov. 2007 à 16:49
Bonjour,
Toujours avec mes histoires de gloups (private joke pour ceux qui m'ont aidé si vite tout à l'heure :p)

Je voudrais écrire un fichier texte d'une seule ligne mais le bougre va automatiquement à la ligne à la fin de la première ligne. Donc ça me fait DEUX lignes. -_-

Pour obtenir :

{
"gloup"
}

Je fais :

TmpStr = "gloup"
Set FS = CreateObject("Scripting.FileSystemObject")
Set a = FS.CreateTextFile("a.txt", True)
a.WriteLine (Chr$(34) + TmpStr + Chr$(34))
a.Close

Mais j'obtiens :

{
"gloup"

}


Comment empêcher ce retour chariot ?! oO

4 réponses

ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
5 nov. 2007 à 15:54
Essaye ceci :
TmpStr = "gloup"
Set FS = CreateObject("Scripting.FileSystemObject")
Set a = FS.CreateTextFile("a.txt", True)
a.Write (Chr$(34) + TmpStr + Chr$(34))
a.Close


(la méthode Write écrit le String sans saut de ligne à la suite)
1
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 nov. 2007 à 15:59
Bonjour,

je n'utilise pas la meme syntaxe pour créer ou écrire dans un fichier. Voilà comment je procède en VB ou VBA:

Public Sub EcrireFichier()
Dim fp As Integer
Dim chemin As String
Dim fichier As String
Dim texte As String

fichier = "test.txt"
chemin = App.Path & "\" & fichier
texte = "Gloup"
fp = FreeFile

On Error Resume Next
Open chemin For Append As #fp 'Append pour ajout dans un fichier, créer le fichier s'il n'existe pas.
Print #fp, Chr$(34) & texte & Chr$(34)
Close fp

If Err <> 0 Then
MsgBox " Erreur écriture du fichier : " & fichier, , "Message"
Exit Sub
End If

End Sub

;o)

Polux
0
0seb0 Messages postés 37 Date d'inscription jeudi 16 août 2007 Statut Membre Dernière intervention 6 mars 2008 16
5 nov. 2007 à 16:29
C'était tout couillon, merci ShaBoo !
Ca va m'économiser ma solution de fortune (qui marchait néanmoins :p) :

Function VirerRetourChariot(fich As String) As Boolean
Dim FF As Integer
Dim sBuffer As String

FF = FreeFile
On Error GoTo MyEnd
Open fich For Input As #FF
sBuffer = Input(LOF(FF), #FF)
Close #FF
sBuffer = Left(sBuffer, Len(sBuffer) - 2)
Open fich For Output As #FF
Print #FF, sBuffer;
Close #FF
VirerRetourChariot = True
Exit Function
MyEnd:
MsgBox "Souci dans VirerRetourChariot()"
End Function


Pourquoi faire simple quand on peut faire compliqué ?.... :D

----> Résolu ! :-)
0
ShaBoo Messages postés 392 Date d'inscription mercredi 12 septembre 2007 Statut Membre Dernière intervention 5 septembre 2009 50
5 nov. 2007 à 16:49
lol
0
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
5 nov. 2007 à 16:34
lol
0