Ir al contenido principal

Leer un archivo de texto en C++, en una PDA

Este ejemplo tiene una función que abre un archivo de texto, lo lee y carga las líneas leídas en un Listbox, está hecho en C++, con VS 2005, para una PDA con Windows Mobile 2003 SE, pero funciona bien para una aplicación Windows de escritorio. La función es muy básica, simplemente abre el archivo usando _wfopen, lee los primeros nueve registros con fread y va cargando el Listbox, usando la función SendMessage. Falta hacer un par de cosas, como verificar errores y leer el archivo hasta su fin o retornar valores para saber el resultado, pero bueno el objetivo es mostrar como abrir y leer el archivo y además las conversión entre cadenas de ancho fijo y multibyte.

//****************************************************
//llamada a la función en el bucle de mensajes
case ID_MEN32782:
CargarLista(List1); //List1 es el handle del list box
break;

//****************************************************
//función
void CargarLista(HWND Lista){
FILE *stream;
wchar_t buff[20]={};
char buf[20]={};
HWND hWnd;

if( (stream = _wfopen( L"Storage Card\\Mis Doc\\arch.txt", L"r" )) == NULL )
MessageBox(hWnd, L"No se puede abrir el arvhivo", L"ERROR:", MB_ICONERROR | MB_OK);

for (int i=0;i<8;i++)
{
fread( buf, sizeof(char), 17, stream ); //fread devuelve el resultado char (multibyte)
mbstowcs( buff, buf, 16); //mbstowcs lo convierte a wchar_t (unicode), se desprecia el último byte porque es el salto de línea
SendMessage(Lista, LB_ADDSTRING, 0, (LPARAM)buff);
}
fclose(stream);

delete []buff;
delete []buf;
}

Comentarios

Entradas más populares de este blog

Como eliminar coordenada Z de elementos (Autocad, VLisp)

Este ejemplo muestra como poner en cero la coordenada Z de unos elementos dentro de un dibujo de AutoCAD, es decir "baja" las entidades que estén dibujadas a una altura en el eje Z y le asigna el valor "0", o en el caso de polilíneas 3d las aplana poniendole a todos sus vertices una altura 0 en Z y respentando sus coordenadas X e Y. Solo tiene en cuenta los puntos, los textos (TEXT y MTEXT), las líneas y las polilíneas. Básicamente lo que hace es hacer un conjunto por cada tipo de entidad (línea, polilínea, texto, y punto) analizar los puntos por cada uno de los elementos dentro del conjunto y redefinir cada punto poniendo en 0 su coordenada Z, en el caso de las polilíneas recorre uno por uno todos los vértices que la componen. El ejemplo puede mejorarse, quizás no sea la forma más óptima de hacerlo, por ejemplo podriamos hacer solo un conjunto y trabajar con todos lo elementos, pero bueno de esta manera quizás es un poco más claro, además hay que tener en cuenta qu...

Ejemplo MVC en PHP

Implementación básica del patrón Modelo Vista Controlador (MVC) en PHP utilizando OOP. MVC es un patrón de diseño que implementa tres capas con el objetivo de separar la interfaz de usuario, las reglas de negocio y el acceso a los datos. Aquellos que no tienen conocimiento de este patrón les recomiendo que lean brevemente de que se trata MVC y la programación orientada a objetos. En esta implementación PHP las vistas manejan todo lo relacionado con la interfaz del usuario (html, css, javascript), el modelo proporciona el acceso a los datos (para facilitar este ejemplo se simula la conexión a una Base de Datos) y el controlador administra toda la lógica del negocio y es el nexo entre el modelo y la vista. Hay muchos frameworks que implementan MVC en PHP de forma muy efectiva y son muy populares. Este ejemplo está orientado a aquellos que quieran hacer su propio framework o que quieran conocer el funcionamiento paso a paso. En este ejemplo se muestra una pantalla de bienvenida co...

Insertar un texto en un dibujo (AutoCAD, Visual Lisp)

Aquellos que conocen programas de dibujo como AutoCAD o MicroStation deben saber que podemos realizar pequeñas personalizaciones o comandos personalizados, que pueden llegar a ser muy útiles y acelerar bastante el trabajo, pudiendo incluso hasta automatizar algunas tareas manuales rutinarias. Para hacer estos programas y comandos podemos utilizar el Editor de Visual Basic, y programar en VBA, hay un montón de ejemplos en la web de VBA. En el caso particular de AutoCAD podemos programar también en AutoLISP , LISP es un lenguaje de programación de alrededor de los 60 (si mal no recuerdo) que se basa en paréntesis, y que es muy potente para algunas cosas, sobre todo para funciones recursivas. AutoCAD adoptó una versión del lenguaje llamada AutoLISP, podemos acceder al compilador a través del menu tools/AutoLISP/Visual LISP Editor, incluso AutoCAD tiene unos ejemplos y tutoriales muy buenos de este lenguaje. Este ejemplo está hecho en Visual LISP , es bastante sencillo, lo único que ha...