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

Seleccione idioma Seleccione idioma
Id. de artículo: 75857 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

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.

Propiedades

Id. de artículo: 75857 - Última revisión: viernes, 12 de diciembre de 2003 - Versión: 2.0
La información de este artículo se refiere a:
  • 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
Palabras clave: 
kbmt KB75857 KbMtes
Traducción automática
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
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com