Establecer cómo imprimir el carácter ASCII en Visual Basic

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 75857
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Resumen
La fuente predeterminada utilizada por Visual Basic es el conjunto de caracteres estándar de ANSI. Para mostrar el juego de caracteres ASCII, que más se utiliza en aplicaciones basadas en MS-DOS, debe llamar a las dos funciones de API de Windows GetStockObject y SelectObject. Además, para mostrar los caracteres no imprimibles, como TAB, avance de línea y retorno de carro caracteres, hay que utilizar la función de API de Windows TextOut, ya que el objeto de impresora estándar de Visual Basic no muestra caracteres no imprimibles. Mediante la función TextOut de API de Windows, eludir el objeto de impresora de Visual Basic y permite, por lo tanto, todos los caracteres que se va a mostrar.
Más información
Windows admite un segundo conjunto de caracteres, hace referencia para como el carácter OEM establecer. Esto generalmente es el conjunto de caracteres utilizado internamente por MS-DOS de pantalla en el símbolo del sistema de MS-DOS. Los códigos de carácter 32 a 127 son normalmente idénticos para los juegos de caracteres OEM, ASCII y ANSI. Los caracteres ANSI representados por los restantes códigos de caracteres (códigos 0 a 31 y 128 a 255) son generalmente diferentes de los caracteres representados por los conjuntos de caracteres OEM y ASCII. Sin embargo, los conjuntos de caracteres OEM y ASCII son idénticos para estos intervalos. En los juegos de caracteres ASCII y OEM, los códigos de carácter 128 a 255 corresponden a conjunto de caracteres ASCII extendido, que incluye caracteres de dibujo de líneas, gráficos caracteres y símbolos especiales. Los caracteres representados por este intervalo de códigos de carácter generalmente difieren entre ASCII (o OEM) y conjuntos de caracteres de ANSI.

Para cambiar la fuente seleccionada de ANSI a la fuente de ASCII de OEM, debe obtener un identificador para el juego llamando GetStockObject de caracteres OEM. Cuando este identificador se pasa como argumento a SelectObject, la fuente ANSI se reemplazará por la fuente de ASCII de OEM. Esta función de API también devuelve el identificador al objeto de fuente utilizado anteriormente. Cuando termine de mostrar los caracteres que desee, debe llamar a SelectObject nuevo para volver a seleccionar el objeto de fuente original.

Nota: También hay una función de API denominada DeleteObject. Esta función no debe llamarse para eliminar un objeto de stock. El propósito de esta función de API es eliminar objetos que se cargan con la función GetObject de la API.

Ésta es la sintaxis para las funciones:

% De GetStockObject (nIndex %)

% de nIndex
Especifica el tipo de objeto stock deseado. Utilice la constante OEM_FIXED_FONT para recuperar el identificador de conjunto de caracteres OEM. El valor de esta constante es 10.

Valor devuelto
El valor devuelto, identifica al objeto lógico deseado si la función es correcta. De lo contrario, es NULL.

% SelectObject (hDC %, hObject %)

% de hDC
Identifica el contexto de dispositivo.

hObject %
Identifica el objeto que se va a seleccionar. Utilice el valor devuelto desde % GetStockObject (arriba) para seleccionar el juego de caracteres OEM.

Valor devuelto
El valor devuelto identifica el identificador del objeto utilizado anteriormente. Este valor debe guardarse en una variable, que SeleccionarObjeto puede llamar al nuevo para restaurar el objeto original utilizado. Es NULL si hay un error.

Ejemplo paso a paso

Los pasos de ejemplo siguientes muestran cómo crear un programa que imprime caracteres ASCII.
  1. Inicie Visual Basic o en el menú Archivo, elija Nuevo proyecto (ALT, F, N) si Visual Basic ya se está ejecutando. Se creará Form1 de manera predeterminada.
  2. Agregue un botón de comando (Command1) a Form1.
  3. Agregue el código siguiente a la sección General Declarations de Form1:
       ' Enter each Declare statement on one, single line.   Declare Function GetStockObject% Lib "GDI" (ByVal nIndex%)   Declare Function SelectObject% Lib "GDI" (ByVal hDC%, ByVal hObject%)   Declare Function TextOut Lib "GDI" (ByVal hDC As Integer,      ByVal X As Integer, ByVal Y As Integer, ByVal lpString As String,      ByVal nCount As Integer) As Integer						
  4. Coloque el código siguiente en el Command1 procedimiento de evento click:
       Sub Command1_Click ()      Const OEM_FIXED_FONT = 10      Const PIXEL = 3      Dim hOEM As Integer   '*handle the OEM Font Object      Dim Y, H As Single      '*save the scale mode so that you can reset later      Saved% = Form1.ScaleMode      '*alter the current scale mode      Form1.ScaleMode = PIXEL      '* get the character height and subtract the external leading      H = Form1.TextHeight(Chr$(200)) - 1      '* get the handle to the desired font      hOEM = GetStockObject(OEM_FIXED_FONT)      '* select the object relating to the font handle      PreviousObject% = SelectObject%(Form1.hDC, hOEM)      '* if successful then print the desired characters.      If PreviousObject% Then         '* establish border         Edge$ = "0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 "         '* initialize output location         xMark = 10         yMark = 10         '* position cursor & print top border         Form1.CurrentX = xMark         Form1.CurrentY = yMark         '* print top ruler edge         T$ = "  " + Edge$ + "  "         ret% = TextOut(Form1.hDC, yMark, xMark, T$, Len(T$))         '* Cycle through 256 characters beginning at character 0         For Row% = 0 To 15            '* prep left border            T$ = Mid$(Edge$, (Row% * 2) + 1, 2)            '* assemble string of characters            For Col% = 0 To 15                Ch = (Row% * 16) + Col%                T$ = T$ + Chr$(Ch) + " "            Next            '* prep right border            T$ = T$ + Mid$(Edge$, (Row% * 2) + 1, 2)            '* prepare for display at next row            xMark = xMark + H            '* print the assembled string of characters            ret% = TextOut(Form1.hDC, yMark, xMark, T$, Len(T$))         Next         '* prepare for display at next row         xMark = xMark + H         '* print bottom border         T$ = "  " + Edge$ + "  "         ret% = TextOut(Form1.hDC, yMark, xMark, T$, Len(T$))         '* reinstate the previous font         hOEM = SelectObject(Form1.hDC, PreviousObject%)      Else         '* SelectObject was unsuccessful         MsgBox "Couldn't Find OEM Fonts", 48      End If      '* reset the scale mode      Form1.ScaleMode = Saved%   End Sub						
  5. En el menú Ejecutar, elija Iniciar.
  6. Haga clic en el botón Command1.
Cuando se hace clic en el botón Command1, o seleccionado, se dibujará un pequeño cuadro con un borde doble en la esquina superior izquierda de la pantalla. El cuadro se dibuja utilizando caracteres asociados al conjunto de caracteres ASCII extendido.

Conjuntos de caracteres ANSI y ASCII

Para obtener una lista de los juegos de caracteres ASCII y ANSI, vea el menú de Ayuda de Visual Basic.

American Standard Code for Information Interchange (ASCII) es el conjunto de caracteres de 7 bits ampliamente utilizado para representar letras y símbolos que se encuentra en un teclado de EE.UU. estándar. El juego de caracteres ASCII es igual a los primeros 128 caracteres (de 0 a 127) en el juego de caracteres ANSI (American National Standards Institute). El juego de caracteres ANSI utiliza todos los 8 bits en un byte e incluye 256 caracteres (de 0 a 255). 128 A 255 caracteres se denominan a veces los caracteres ASCII extendidos.
Referencias
  1. "Windows de programación: la Guía de Microsoft para escribir aplicaciones para Windows 3," por Charles Petzold (publicado por Microsoft Press, 1990)
  2. "Peter Windows 3.0 energía programación técnicas de Norton," por Peter Norton & Paul Yao (publicado por Bantam equipo Books, 1990)
  3. "Kit de desarrollo de Software Microsoft Windows 3.0: referencia volumen 1"
  4. El archivo WINSDK.HLP se suministra con Microsoft Windows 3.0 Software Development Kit.
2.00 3.00

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 75857 - Última revisión: 12/04/2015 09:09:52 - Revisión: 2.0

Microsoft Visual Basic 2.0 Standard Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 2.0 Professional Edition, Microsoft Visual Basic 3.0 Professional Edition, Microsoft Visual Basic 1.0 Standard Edition

  • kbnosurvey kbarchive kbmt KB75857 KbMtes
Comentarios