[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