[C con Clase] Añadir registros a tabla dbf DBaseIII desde C
luis
netyweb en gmail.com
Vie Oct 19 09:32:40 CEST 2007
La ayuda anterior me ha servido de mucho. Muchas gracias.
He estado haciendo varias pruebas y funciona bien.
Pero tengo el problema con los tipos de datos. En concreto con el tipo de dato numerico de la tabla dbf.
No sé cómo escribir o leer un dato de tipo numerico. Debe ser sencillo pero no me sale.
En la tabla dbf de ejemplo de http://es.geocities.com/yakooes/ hay un tipo numerico de tamaño 2 y despues hay 2 campos de tipo caracter de tamaño 10 cada
uno.
Si todos los campos son de tipo caracter, no tengo problema para escribir y leer. Pero si hay un tipo numerico, no consigo leerlo ni escribirlo
correctamente.
Por ejemplo, si tengo una escructura como esta:
struct tabla{
int idcliente;
char nombre[10];
char direccion[10];
};
struct tabla c3;
Si todos los tipos son caracter(char idcliente, char nombre[10] y char direccion[10]) los leo así:
fread(&c3, 23, 1, pa);
printf("\n");
while(!feof(pa))
{
p = &c3.idcliente[0];
for(i=0;i<23;i++)
{
printf("%c",*p);
p++;
}
printf("\n");
fread(&c3, 23, 1, pa);
}
Y los escribo así:
printf("\nid: ");
gets(c3.idcliente);
printf("\nNombre: ");
gets(c3.nombre);
printf("\nDireccion: ");
gets(c3.direccion);
fwrite(&c3, 22, 1, pa);
El problema lo tengo cuando el campo idcliente es de tipo numerico y con tamaño 2 cuando creo la tabla dbf.
Siguiendo la logica anterior con el tipo caracter, he utilzado el tipo numerico pero no sale bien.
Gracias y salu2.
Más información sobre la lista de distribución Cconclase