Ansi a Ascii
(Convertir
cadenas ANSI a ASCII)
Fecha: 13-Jul-97
Autor: J. L. Soler
From: "J. L. Soler" [email protected]
Date sent: Wed, 9 Jul 1997 20:45:44 +0200
Amigo Guille:
Te envio esta modesta contribuci¢n por si es de utilidad
para algún asíduo de tu págima Web.
El objetivo de la función es convertir texto a grabar, en un
fichero de
texto para ser explotado bajo D.O.S.
Por ejemplo, remesas de recibos bancarios en Norma 19, que es el
caso al que yo lo he aplicado.
Las API declaradas convierten ANSI a "puritito" ASCII.
La función contenedora es bastante simple y no hay que
discurrir demasiado.
'Declaración de Funci¢n API para convertir ANSI a ASCII #If Win32 Then Public Declare Function CharToOem Lib "User32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long #Else Public Declare Function AnsiToOem Lib "Keyboard" (ByVal lpAnsiStr As String, ByVal lpOemStr As String) As Integer #End If ..... '************************************************************************* 'Función contenedora de la llamada a la API de conversión de ANSI a ASCII. 'La variable NumCar sólo se usa por imperativo de la API. 'Debe rellenarse la variable Dest para que tenga 'la longitud que requieren los datos. 'La longitud de los datos viene dada en el parámetro Pos. Public Function ANaAS(Texto As String, Pos As Long) As String Static Orig As String Static Dest As String Static NumCar As Long Orig = Texto Dest = Space(Pos) #If Win32 Then NumCar = CharToOem(Orig, Dest) #Else Call AnsiToOem(Orig, Dest) 'En 16 bits no devuelve nada #End If Carga = Dest End Function Forma de llamada ---------------- Se supone que se están grabando datos en un fichero de texto Se supone que hay un fichero abierto Se supone que hay un tipo de registro definido ..... Reg2.CONCEP02 = ANaAS(variable_de_texto_a_convertir, longitud_de_los_datos) Put #1, , Reg2 .....