AnsiString Texto;
AnsiString Texto2;
char Pbuscar[255];
char linea[255];
char *coincidenciast[255];
char frase[255];
int contador;
int longitud;
char c;
FILE *archivo;
WIN32_FIND_DATA findFileData;
HANDLE hFind;
char dirtmp[255];
char exttmp[255];
char dir[255];
char filename[255];
char ruta[255];
std::string str;
Texto = Edit1->Text; //Recuperar el texto desde el TEdit
strcpy(Pbuscar,Texto.c_str());
strcpy(dirtmp, "c:\MiCarpeta\"); //Aquí el directorio conteniendo los archivos a buscar
strcpy(dir, dirtmp);
strcat(dir,"\");
strcat(dirtmp,"*.txt"); //Esta es la extensión de archivos en dónde realiza la búsqueda
hFind = FindFirstFile(dirtmp, &findFileData);
if(hFind == INVALID_HANDLE_VALUE)
{
printf("Directorio no existe o es incorrecto");
}
else
{
strcpy(ruta,"");
str = (std::string)findFileData.cFileName;
longitud = str.length();
if(longitud >12)
{
str = (std::string)findFileData.cAlternateFileName;
}
for(int i=0; i < longitud;i++)
{
filename[i] = str[i];
}
filename[longitud] = ' ';
strcpy(ruta, dir);
strncat(ruta, filename, strlen(filename));
contador = 0;
if((archivo = fopen(ruta,"r")) != NULL)
{
while ((fscanf(archivo, "%s%c", linea, &c)) != EOF)
{
if(strcmp(linea, Pbuscar) == 0 && *linea != ' ')
{
contador++;
}
}
if(contador>0)
{
}
fclose(archivo);
}
else
{
printf("Error al abrir archivo - %s n", ruta);
getchar();
}
fflush(stdin);
}
while(FindNextFile(hFind, &findFileData) != 0)
{
strcpy(ruta,"");
contador = 0;
str = (std::string)findFileData.cFileName;
longitud = str.length();
if(longitud>12)
{
str = (std::string)findFileData.cAlternateFileName;
}
for(int i=0; i < longitud;i++)
{
filename[i] = str[i];
}
filename[longitud] = ' ';
strcpy(ruta, dir);
strncat(ruta, filename, strlen(filename));
if((archivo = fopen(ruta,"r")) != NULL)
{
while ((fscanf(archivo, "%s%c", linea, &c)) != EOF)
{
if(strcmp(linea,Pbuscar) == 0 && *linea != ' ')
{
contador++;
}
}
if(contador>0)
{ strcpy(frase, " coincidencias en ");
itoa(contador, *coincidenciast, 10);
strncat(*coincidenciast, frase, strlen(frase));
strncat(*coincidenciast, ruta, strlen(ruta));
lstData->Items->Add(*coincidenciast); //Enviar búsqueda a TListBox
}
fclose(archivo);
}
else
{
printf("Error al abrir archivo - %s n", ruta);
getchar();
//exit(1);
}
fflush(stdin);
}