<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>
Hola chicos!!!<br><br>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 =(<br><br>Si alguien sabe cual es el error que estoy cometiendo, ya lo busqué y probé de varias formas diferentes, pero nada de nada =(<br><br>fseek(nom_arch, -sizeof(nom_reg), SEEK_CUR);<br><br>Utilizo Windows XP y Borland C++ 3.0<br><br>Un beso para ti por tu ayuda.<br><br>Karo<br><br><blockquote><hr>Date: Mon, 9 Jun 2008 08:53:54 -0500<br>From: saavedraphp@gmail.com<br>To: cconclase@listas.conclase.net<br>Subject: [C con Clase] Espero te sirva Retroceder el puntero en archivo binario<br><br><div>Hola carolina.</div>
<div>lo que yo hago es primero buscar el registro y un a vez encontrado guardo la posición ahí el código.</div>
<div>bool Buscar_Persona(int pcodigo, int *posicion, bool *HuboError )</div>
<div>{<br> FILE *aPersona;<br> rP rPersona;<br> bool encontro = false;</div>
<div> *HuboError = false;<br> aPersona = fopen(cNombreArchivoPersona, "rb");</div>
<div> if(aPersona == NULL)<br> {<br> *HuboError = true;<br> }<br> else<br> {<br> fread(&rPersona, sizeof(rPersona), 1, aPersona);</div>
<div> while( (!feof(aPersona)) && (!encontro) )<br> {<br> if( (rPersona.id_persona == pcodigo) && (rPersona.eliminado == false) )<br> {<br>
encontro = true;</div>
<div> }<br> else<br> {<br> fread(&rPersona, sizeof(rPersona), 1, aPersona);<br> *posicion = *posicion + 1;<br>
}<br> }<br> fclose(aPersona);</div>
<div><br> }<br> return encontro;</div>
<div>}</div>
<div> </div>
<div> </div>
<div>------------</div>
<div> </div>
<div>luego hago el cambios modificados envío la posición y modifico los datos así,</div>
<div> </div>
<div>bool ModificarPersona(int pid_persona,char* pnombre, char* p_apaterno, char* p_amaterno,<br> char* pdireccion_foto, bool *HuboError, int *pPosicion )<br>{</div>
<div> <br> FILE *aPersona;<br> rP rPersona;<br> bool Modifico = false;</div>
<div> aPersona = fopen(cNombreArchivoPersona, "rb+");</div>
<div> if(aPersona == NULL)<br> {</div>
<div> *HuboError = true;</div>
<div> }<br> else<br> {</div>
<div> fread(&rPersona, sizeof(rPersona), 1, aPersona);<br> fseek(aPersona, sizeof(rPersona) * (*pPosicion), SEEK_SET);</div>
<div><br> rPersona.id_persona = pid_persona;<br> strcpy(rPersona.nombre, pnombre);<br> strcpy(rPersona.ap_pat, p_apaterno);<br> strcpy(rPersona.ap_mat, p_amaterno);<br>
strcpy(rPersona.direccion_foto, pdireccion_foto);<br> Modifico = true;</div>
<div> fwrite(&rPersona, sizeof(rPersona), 1, aPersona);<br> fclose(aPersona);<br> }</div>
<div> return Modifico;<br>}<br></div>
<div> </div>
<div> </div>
</blockquote><br /><hr />Discover the new Windows Vista <a href='http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE' target='_new'>Learn more!</a></body>
</html>