[C con Clase] Retroceder el puntero en archivo binario
Carolina Herrera
carolinah802 en hotmail.es
Sab Jun 21 02:48:05 CEST 2008
Hola Salvador!!!
Estoy de acuerdo contigo en que deberiamos usar un compilador más actualizado, lo malo es que ése es el que usan en la universidad, y ya me ha pasado varias veces que programas que funcionan perfectamente en Dev C++, cuando me toca ejecutarlos en el Borland C++, aparecen, misteriosamente, muchos errores =(. De todos modos platicaré con mis profes a ver si de una vez se animan a actualizarse =Þ, y ya te contaré como me fue =)
Envio la parte del programa que no funciona, agregué variables como pa y pp para ver en que posición se encuentra el puntero al ejecutarlo paso por paso, de esa forma es que me di cuenta que la función fseek no estaba haciendo lo que debía =(
while(fread(&per, sizeof(per), 1, arper) && bus == 0)
{
// en pa almaceno la posicion actual del puntero
long pa;
pa = ftell(arper);
if(per.ci == cibus && per.b == 'S')
{
per.b = 'N';
// en pp almaceno la posicion del puntero luego de
// haberlo retrocedido
long pp = 0;
// aqui retrocedo el puntero
fseek(arper, -sizeof(per), SEEK_CUR);
pp = ftell(arper);
fwrite(&per, sizeof(per), 1, arper);
bus = 1;
}
}
En teoria, lo que debo hacer es borrar lógicamente un registro tomando como dato de entrada el número de la cédula de identidad, lo malo es que al hacer el fseek y el fwrite termino borrando todo menos lo que debería =(. Ya lo revisé una y mil veces y no encuentro el error o los errores, si alguien sabe que es lo que estoy haciendo mal... toda ayuda es muy bienvenida.
Besos a todos.
Karo
_________________________________________________________________
Connect to the next generation of MSN Messenger
http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080620/521476b6/attachment.html>
Más información sobre la lista de distribución Cconclase