<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>