1 votes

Comment écrire un fichier texte sans [0D 0A(VBCRLF)] à la fin en utilisant vba ?

Je développe un processus qui

copier un fichier texte et modifier le contenu du fichier texte en fonction des données Excel en utilisant FileSystemObject.

Bien que le code de rupture de ligne du fichier texte original soit [0A(VBLF)],

après édition, le code de rupture de ligne du fichier texte mis à jour devient [0D 0A(VBCRLF)].

Je voudrais écrire le code de rupture de ligne comme un fichier texte original.

Quelle est la meilleure façon de procéder ? Merci d'avance.

1voto

Janis Veinbergs Points 4959

Si vous écrivez votre fichier texte ligne par ligne, vous pouvez choisir votre saut de ligne.

Sub sampleWriteVBLF()

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set objFile = fso.CreateTextFile("D:\test.txt", True)

    objFile.Write "Hello" & vbLf
    objFile.Write "World" & vbLf

    objFile.Close

End Sub

enter image description here

            VBA       VBA               HEX     NAME
LF    \n    VbLf      Chr(10)           0x0A    Line Feed
CR    \r    VbCr      Chr(13)           0x0D    Carriage Return
CR+LF \r\n  VbCrLf    Chr(10)&Chr(13)   0x0D0A  Carriage Return Line Feed    

Edit : Vous devez utiliser .write parce que .WriteLine ajoutera toujours un saut de ligne CRLF supplémentaire. Mais vous avez déjà un saut de ligne LF

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X