no me gusta revivir temas tan viejos, pero lo prometido es deuda...
es una función que busca en un archivo de struc de cualquier dimensión un dato int, y vos solo le pasas la ruta del archivo, a partir de cuantos byte empieza ese dato en la estructura, cuanto mide (es redundante por que es siempre 4, error mio) y la cantidad de registros que posee (para eso ya tengo otra función que mostrare mas abajo)
y la de cantidad de registros
y ahora por que yo decía que eso era algo muy general ? por que en la facultad me mandaron un trabajo con 5 estructuras diferentes (y por ende archivos diferentes) y que en todas había que hacerle cosas similares y yo de vago cree esas funciones para cualquiera que sea la estructura.
es una función que busca en un archivo de struc de cualquier dimensión un dato int, y vos solo le pasas la ruta del archivo, a partir de cuantos byte empieza ese dato en la estructura, cuanto mide (es redundante por que es siempre 4, error mio) y la cantidad de registros que posee (para eso ya tengo otra función que mostrare mas abajo)
Código (c) [Seleccionar]
int Buscar_int (const char* ruta,int principio /*luego de cuantos byte empieza el campo buscado en la estructura*/, int fin /* tamaño de int, si es redundante xd*/, int registros, int dato )
{
FILE *f;
int buffer;
f=fopen(ruta,"rb");
for(int i=0; i< registros; i++)
{
fseek(f,pricipio,1);
fread(buffer, fin, 1, f);
if (buffer==dato) //se puede hacer otra con strcpy para cadenas de caracteres
{
fclose(f);
return i; //regresa lugar en el archivo en cual se encuentra
}
}
fclose(f);
return -1; //-1 si no existe
}
y la de cantidad de registros
Código (c) [Seleccionar]
int Cant_registros(const char* ruta, size_t tam) //size_t es lo que regresa sizeof (tipo de variable)
{
int tamanio;
FILE *f;
f=fopen(ruta,"rb");
error_archivo("\t ERROR: no se pudo abrir el archivo - T x 78", &f);
//si, soy tan vago que hasta cree una función con un simple if(f==NULL) y mensaje...
fseek(f,0,2);
tamanio=(ftell(f)/tam);
fclose(f);
return tamanio;
}
y ahora por que yo decía que eso era algo muy general ? por que en la facultad me mandaron un trabajo con 5 estructuras diferentes (y por ende archivos diferentes) y que en todas había que hacerle cosas similares y yo de vago cree esas funciones para cualquiera que sea la estructura.