Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB6 : Comment convertir un fichier TXT ANSI en mode MSDOS ?

2 réponses
Avatar
Fred Godefroidt
Bonjour,

En développement, je produis un fichier texte. J'ai des problèmes avec les
caractères accentués.

Si j'ouvres mon fichier texte avec Notepad, et que je le sauvegarde en Texte
MS-DOS, tout est ok.

Comment puis-je faire cette conversion par lecode ?

Merci d'avance pou vos réponses

FG

2 réponses

Avatar
Alain CROS
Bonjour.

Peut être comme ça ...

Private Declare Function CharToOem& _
Lib "user32" Alias "CharToOemA" _
(ByVal lpszSrc$, ByVal lpszDst$)

Private Declare Function SetConsoleTitle& _
Lib "kernel32" Alias "SetConsoleTitleA" _
(ByVal lpConsoleTitle$)

Private Declare Function AllocConsole& _
Lib "kernel32" _
()

Private Declare Function FreeConsole& _
Lib "kernel32" _
()

Private Declare Function GetStdHandle& _
Lib "kernel32" _
(ByVal nStdHandle&)

Private Declare Function WriteConsole& _
Lib "kernel32" Alias "WriteConsoleA" _
(ByVal hConsoleOutput&, ByRef lpBuffer As Any, ByVal nNumberOfCharsToWrite&, _
ByRef lpNumberOfCharsWritten&, ByRef lpReserved As Any)

Private Declare Function GetTickCount& _
Lib "kernel32" _
()

Sub Demo_CharToOem()
Const STD_OUTPUT_HANDLE& = -11&
Dim Titre$, Texte$, I&, Hwnd&, Laius$, Present$, J&, Entet$
Titre = "Utilisation de CharToOem"
Texte = "Noël en décembre!"
Entet = "Avant "
Laius = "traitement par CharToOem"
Present = vbNewLine & vbNewLine
If AllocConsole Then
SetConsoleTitle ByVal Titre
Hwnd = GetStdHandle(STD_OUTPUT_HANDLE)
For J = 1& To 2&
WriteConsole Hwnd, ByVal Entet, Len(Entet), I, 0&
WriteConsole Hwnd, ByVal Laius, Len(Laius), I, 0&
WriteConsole Hwnd, ByVal Present, Len(Present), I, 0&
WriteConsole Hwnd, ByVal Texte, Len(Texte), I, 0&
WriteConsole Hwnd, ByVal Present, Len(Present), I, 0&
Entet = "Suite au "
CharToOem Texte, Texte
Next J
I = GetTickCount
Do
Loop Until GetTickCount - I > 5000&
FreeConsole
Else
MsgBox "L'opération a échouée", vbCritical, Titre
End If
End Sub

Alain CROS

"Fred Godefroidt" a écrit dans le message de news: 4309ec7a$0$22306$
| Bonjour,
|
| En développement, je produis un fichier texte. J'ai des problèmes avec les
| caractères accentués.
|
| Si j'ouvres mon fichier texte avec Notepad, et que je le sauvegarde en Texte
| MS-DOS, tout est ok.
|
| Comment puis-je faire cette conversion par lecode ?
|
| Merci d'avance pou vos réponses
|
| FG
|
|
Avatar
andre.araste
Bonjour

Vous pouvez affecter à la propriété FontName du contrôle récepteur la police
d'affichage MS LineDraw (fichier LineDraw.ttf) qui correspond à la page de
code 437 US Latin-1 de la norme OEM DOS
--
Bonne réception.

http://perso.wanadoo.fr/andre.araste/
Membre du Club Win's: http://www.clubwins.org
Avertissement: Je ne vends rien.



"Fred Godefroidt" a écrit dans le message de news:
4309ec7a$0$22306$
Bonjour,

En développement, je produis un fichier texte. J'ai des problèmes avec les
caractères accentués.

Si j'ouvres mon fichier texte avec Notepad, et que je le sauvegarde en
Texte MS-DOS, tout est ok.

Comment puis-je faire cette conversion par lecode ?

Merci d'avance pou vos réponses

FG