Cómo leer y mostrar cadenas UNICODE en formulario de Visual Basic

Resumen

En este artículo se muestra cómo leer una cadena Unicode de un archivo de texto Unicode y mostrarla en un formulario de Visual Basic.

Más información

Visual Basic se basa internamente en el estándar Unicode de doble byte. Sin embargo, la mayor parte del mundo fuera de Visual Basic sigue utilizando el modelo ANSI de un solo byte. Por este motivo, Visual Basic proporciona dos conjuntos de controles de formulario y utiliza los conjuntos ANSI como control predeterminado. Conjunto de todas las cadenas que se pasan a la ANSI de formulario controles se convertirá de su representación Unicode interna a una representación ANSI y no mostrarán correctamente las cadenas UNICODE. Para poder mostrar la cadena UNICODE en un formulario de Visual Basic, deben utilizarse los controles UNICODE (Forms 2.0). En el ejemplo siguiente se muestra cómo utilizar los controles de Forms 2.0 para mostrar cadenas UNICODE obtenidas de un archivo de texto Unicode. Debido a este comportamiento requiere soporte de paquete de idioma UNICODE, que actualmente se admite sólo en Windows NT.


Nota: los controles de Forms 2.0 utilizados en este artículo no fueron diseñados para utilizarlos en formularios de Visual Basic y no se ha probado formalmente en el entorno. En este artículo se documenta su uso únicamente en este contexto limitado para solucionar una limitación de los controles intrínsecos de Visual Basic. No se admite el uso de otras características de estos controles en formularios de Visual Basic.

Además, Forms 2.0 forma parte de Microsoft Office y no es redistribuible. Por lo tanto, no puede distribuir Forms 2.0 (fm20.dll) con su aplicación. Ya debe estar en los equipos de destino.

Para obtener información adicional acerca de cómo distribuir fm20.dll, consulte el artículo siguiente en Microsoft Knowledge Base:
224305 INFO: uso y distribución de FM20. DLL [OffDev]

Guía paso a paso para generar el ejemplo

  1. Instale el paquete de idioma chino en el equipo de Windows NT. Consulte la sección referencias a continuación para obtener instrucciones de instalación. La fuente MingLiu se instalará automáticamente durante este paso. También puede instalar otros idiomas admiten paquetes si desea utilizar otro idioma UNICODE.
  2. Cree un proyecto EXE estándar. Se creará Form1 de forma predeterminada.
  3. Seleccione componentes en el menú proyecto y compruebe la Biblioteca de objetos de Microsoft Forms 2.0. Se agregan varios controles nuevos al cuadro de herramientas, incluidas las versiones UNICODE del cuadro de texto, etiqueta y así sucesivamente.
  4. Agregue un TextBox de Forms 2.0 a Form1 y conserve su nombre predeterminado: TextBox1. Establecer la fuente del cuadro de texto como MingLiu.
  5. Agregue dos controles CommandButtons a Form1.
  6. Agregue el código siguiente a la ventana código de Form1:
          Private Sub Command1_Click()        ' create a Unicode text file with Chinese character
    ' Dan1 and English character D.
    Dim a(0 To 5) As Byte
    a(0) = &HFF
    a(1) = &HFE
    a(2) = &H39
    a(3) = &H4E
    a(4) = &H44
    a(5) = &H0
    Open "unicode.txt" For Binary As #1
    Put #1, , a
    Close #1
    End Sub

    Private Sub Command2_Click()
    Dim txtline As String

    ' you may need to change the path of the file
    Open "unicode.txt" For Binary As #1

    txtline = InputB(2, #1) ' always FF FE, skip them
    txtline = InputB(4, #1)

    Close #1

    TextBox1.Text = txtline ' display the string
    End Sub
    Tenga en cuenta que el archivo de texto UNICODE siempre empieza con los Bytes FF FE, motivo por el cual debe omitir estos dos bytes. Tenga en cuenta también que para leer cadenas UNICODE de un archivo, el archivo debe abrirse como binario y leerlo con InputB.
  7. Ejecute la aplicación. Haga clic en Command1 para crear el archivo de texto Unicode.
  8. Haga clic en Command2. El carácter chino Dan1 y el carácter inglés D se muestran correctamente en el cuadro de texto. También puede comprobar el archivo Unicode.txt utilizando el Bloc de notas con la fuente MingLiu.

Referencias

Para obtener información adicional, consulte los artículos siguientes en Microsoft Knowledge Base:

177561 cómo agregar y habilitar idiomas adicionales en Windows NT
224305 INFO: uso y distribución de FM20. DLL [OffDev]
Propiedades

Id. de artículo: 193540 - Última revisión: 23 ene. 2017 - Revisión: 2

Comentarios