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

Résolu
0seb0 Messages postés 37 Statut Membre -  
ShaBoo Messages postés 406 Statut Membre -
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
Configuration: Windows 2000
Internet Explorer 6.0

4 réponses

  1. ShaBoo Messages postés 406 Statut Membre 50
     
    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
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    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
  3. 0seb0 Messages postés 37 Statut Membre 16
     
    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
    1. ShaBoo Messages postés 406 Statut Membre 50
       
      lol
      0
  4. Polux31 Messages postés 7219 Statut Membre 1 204
     
    lol
    0