[C con Clase] c y unicode
Adolfo Cárdenas
adocardenas en gmail.com
Vie Sep 3 20:40:41 CEST 2010
perdon, me falto colocar byte* datos en vez de byte datos
El 3 de septiembre de 2010 13:39, Adolfo Cárdenas
<adocardenas en gmail.com>escribió:
> Muchas gracias, está funcionando perfecto.
>
> (Pongo las funcion de archivo mezclada con las de ventana sólo para mostrar
> el resumen.):
>
> #include <windows.h>
> //-------------------ARCHIVO-------------------
> #include <io.h>
> #include <fcntl.h>
> #include <sys\stat.h>
> #include <stdio.h>
> typedef unsigned char byte;
> //-----------------------------------------------------
>
> int MostrarArchivoUnicode(HDC hdc, char* archivo, int nbytes)
> // Muestra nbytes del archivo.
> {
> LOGFONT logfuente;
> HFONT fuente,fuenteant;
>
>
//perdon, me falto colocar byte* datos en vez de byte datos
> // byte datos;
>
byte* datos;
> datos = new byte[nbytes];
>
> //-----------------ARCHIVO---------------------------
> int h, bytes;
>
> if((h = open(archivo, O_RDONLY|O_BINARY)) == -1) return -1;
> else {
> lseek(h, 0L, SEEK_SET);
> if((bytes = read(h, datos, nbytes)) == -1) return -2;
> close(h);
> }
>
> //------------------------VENTANA----------------------
> logfuente.lfStrikeOut = 0;
> logfuente.lfUnderline = 0;
> logfuente.lfHeight = 18;
> logfuente.lfEscapement = 0;
> logfuente.lfItalic = FALSE;
> logfuente.lfCharSet=CHINESEBIG5_CHARSET; // Importante
> strcpy(logfuente.lfFaceName,"MingLiu"); // Importante
> logfuente.lfWeight=1;
>
> fuente = CreateFontIndirect(&logfuente);
> fuenteant=(HFONT)SelectObject(hdc, fuente);
>
> TextOutW(hdc, 0, 0, (WCHAR*)datos, nbytes);
>
> SelectObject(hdc, fuenteant);
> DeleteObject(fuente);
> return bytes;
> }
>
> //------------------LLAMADA-----------------------
>
> MostrarArchivoUnicode(hdc,"unicode.txt",60);
>
> //---------------------------------------------------------------------
>
> Los archivos unicode aveces tienen caracteres de varios idiomas. Pienso que
> debo leer los bytes y variar el lfCharSet y el lfFaceName de acuerdo al
> rango del valor de los bytes y seleccionar la fuente cada vez que los
> bytes tengan un rango diferente. ¿Hay otra forma?Gracias.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100903/3f175690/attachment.html>
Más información sobre la lista de distribución Cconclase