[C con Clase] Retroceder el puntero en archivo binario
Augusto Ferreira
ferraugusto en gmail.com
Mie Jun 18 04:33:30 CEST 2008
Hola Carolina,
Yo recebí tu mensaje pero todavia estoy en el Ab inicio en C++ pero
estudiando por auto recreación. Me gustaría pedirte que me ayudaras en
conseguir algunos problemas resueltos y con comentarios de preferencia. O
sea un código fuente de venta, inventario u otro cualquiera de utilización
que me muestre bien la estructura de un programa
De aquí a a unos dos meses, espero poder contribuir con algo
Gracias
Augusto
2008/6/17 Carolina Herrera <carolinah802 en hotmail.es>:
> Hola chicos!!!
>
> Hola Luis, esa es la forma en la que normalmente lo hacia, pero la opción
> que daba Salvador me parecía mucho más sencilla, lastimosamente aún no logro
> hacer que funcione =(
>
> Si alguien sabe cual es el error que estoy cometiendo, ya lo busqué y probé
> de varias formas diferentes, pero nada de nada =(
>
> fseek(nom_arch, -sizeof(nom_reg), SEEK_CUR);
>
> Utilizo Windows XP y Borland C++ 3.0
>
> Un beso para ti por tu ayuda.
>
> Karo
>
> ------------------------------
> Date: Mon, 9 Jun 2008 08:53:54 -0500
> From: saavedraphp en gmail.com
> To: cconclase en listas.conclase.net
> Subject: [C con Clase] Espero te sirva Retroceder el puntero en archivo
> binario
>
> Hola carolina.
> lo que yo hago es primero buscar el registro y un a vez encontrado guardo
> la posición ahí el código.
> bool Buscar_Persona(int pcodigo, int *posicion, bool *HuboError )
> {
> FILE *aPersona;
> rP rPersona;
> bool encontro = false;
> *HuboError = false;
> aPersona = fopen(cNombreArchivoPersona, "rb");
> if(aPersona == NULL)
> {
> *HuboError = true;
> }
> else
> {
> fread(&rPersona, sizeof(rPersona), 1, aPersona);
> while( (!feof(aPersona)) && (!encontro) )
> {
> if( (rPersona.id_persona == pcodigo) &&
> (rPersona.eliminado == false) )
> {
> encontro = true;
> }
> else
> {
> fread(&rPersona, sizeof(rPersona), 1,
> aPersona);
> *posicion = *posicion + 1;
> }
> }
> fclose(aPersona);
>
> }
> return encontro;
> }
>
>
> ------------
>
> luego hago el cambios modificados envío la posición y modifico los datos
> así,
>
> bool ModificarPersona(int pid_persona,char* pnombre, char* p_apaterno,
> char* p_amaterno,
> char* pdireccion_foto, bool *HuboError, int
> *pPosicion )
> {
>
> FILE *aPersona;
> rP rPersona;
> bool Modifico = false;
> aPersona = fopen(cNombreArchivoPersona, "rb+");
> if(aPersona == NULL)
> {
> *HuboError = true;
> }
> else
> {
> fread(&rPersona, sizeof(rPersona), 1, aPersona);
> fseek(aPersona, sizeof(rPersona) * (*pPosicion),
> SEEK_SET);
>
> rPersona.id_persona = pid_persona;
> strcpy(rPersona.nombre, pnombre);
> strcpy(rPersona.ap_pat, p_apaterno);
> strcpy(rPersona.ap_mat, p_amaterno);
> strcpy(rPersona.direccion_foto, pdireccion_foto);
> Modifico = true;
> fwrite(&rPersona, sizeof(rPersona), 1, aPersona);
> fclose(aPersona);
> }
> return Modifico;
> }
>
>
>
>
> ------------------------------
> Discover the new Windows Vista Learn more!<http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080618/a2ebee50/attachment.html>
Más información sobre la lista de distribución Cconclase