08/09/2008, 18:02
|
| | Fecha de Ingreso: mayo-2007 Ubicación: Buenos aires
Mensajes: 19
Antigüedad: 17 años, 7 meses Puntos: 0 | |
busqueda y remplazo en achivos wenas holas queria saber si hay alguna otra forma de buscar y modificar en archivos para no usar la formulita del fseek.. fseek(arc,(long)(-1)*sizeof(tp),1);
el programita anda pero queria saber como buscan y modifcan datos..
Código:
#include <iostream>
#include <conio.c>
using namespace std;
struct tp
{
char n[30];
};
void cg(tp *);
void bq(tp *);
void pant(tp *);
int main (int argc, char* argv[])
{
tp p;
long ps;
cg(&p);
bq(&p);
pant(&p);
getch();
return 0;
}
void cg(tp *p)
{
FILE *a;
if((a=fopen("c:\\si.cho","wb"))==NULL)
cout<<"nu";
else
{
for(int i=0; i<3; i++)
{
cin.getline((p->n),30);
fwrite(p,sizeof(tp),1,a);
}
}
fclose(a);
}
void pant(tp *p)
{
FILE *ar;
if((ar=fopen("c:\\si.cho","rb"))==NULL)
cout<<"nu";
else
{
fread(p,sizeof(tp),1,ar);
while(!feof(ar))
{
cout<<(p->n)<<endl;
fread(p,sizeof(tp),1,ar);
}
}
fclose(ar);
}
void bq(tp *p)
{
char c[30];
cout<<"ingr nm"<<endl;
cin.getline(c,30);
FILE *arc;
if((arc=fopen("c:\\si.cho","rb+"))==NULL)
cout<<"nu";
fread(p,sizeof(tp),1,arc);
while(!feof(arc))
{
if(!strcmp(c,p->n))
{ cout<<"se encontro"<<endl;
cout<<p->n<<endl;
cout<<"ingrese reemplaz"<<endl;
cin.getline(p->n,30);
fseek(arc,(long)(-1)*sizeof(tp),1);//es necesario usar esa formula??
fwrite(p,sizeof(tp),1,arc);
fclose(arc);
break;
}
fread(p,sizeof(tp),1,arc);
}
fclose(arc);
}
|