Problemilla con codigo fuente

Adrianses
15 de Abril del 2005
Hola [email protected] que nada gracias por intentar ayudarme. Este es mi programa..tengo el siguiente codigo fuente...

printf("Búsqueda en A:\ de los archivos de datos orbitales.n");
if ( (hFile = _findfirst("a:\*.*",&ffblk))==-1L) //Ruta a:
{
printf("WARNING: No se puede leer A:.n");
exit(0);
}
//if (done) printf("WARNING: No se puede leer A:.n");
datef=0;
done=0;
while (done==0)
{
auxint=atol(ffblk.name);
if (auxint!=0)
if ((auxint>datef)&(auxint<=date)) datef=auxint;

done = _findnext(hFile,&ffblk);

}
ltoa(datef, cadena,10);
strcpy(cadaux,"A:\");
strcat(cadaux,cadena);
strcpy(cadena,cadaux);
printf("Datos orbitales en el fichero: %s.n", cadena);

if (datef==0)
{
printf("WARNING: No hay ning£n fichero orbital en A:.");
exit (0);
}

if ((fichero = fopen(cadena, "rt")) == NULL)
{
printf("ERROR: No se puede abrir el fichero %sn",cadena);
exit(0);

Como podeis ver lo que hace es buscar algun archivo dentro de la unidad a y si lo hay compara una serie de varibles para luego abrirlo...Bueno lo que yo quiero hacer es que en vez de buscar en a: me busque dentro de un directorio determinado que se encuentra en el mismo sitio que el programa..o sea que busque dentro de archivo/*.*..el caso es que lo he intentado de todas las formas y no hay manera, no hay que decir que en lo de programar en este lenguaje ando un mucho pez. Tambien me gustaria hacer que buscase un archivo determinado archivo/file.dat

¿Podeis ayudarme?...muchas gracias

Alfonso
15 de Abril del 2005
Hola, creo que podrían ayudarte las funciones relativas a directorios. Creo que hay una que te devuelve el directorio activo para la unidad en la que estés.

char *_getcwd( char *buffer, int maxlen );

buffer es el puntero a un string donde te devuelve el resultado y maxlen es el número de caracteres almacenados en buffer que forman parte del path.

Para más informaciónj puedes consultar la ayuda de MSDN en http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/html/_crt_directory_control.asp

Espero que te sirva. Un saludo,
Alfonso

Asmodeo
15 de Abril del 2005
En principio, bastaría con no indicar ningún directorio, por lo que cadaux no es necesaria.

Pruebalo así:

/*strcpy(cadaux,"A:\");*/
strcpy(cadaux,cadena);

Si no se especifica ningún directorio, ni unidad, el programa cojerá por defecto el directorio de trabajo.
Igualmente, debes utilizar:
_findfirst("*.*",&ffblk)
Espero haberte servido de ayuda