• Jueves 25 de Abril de 2024, 13:28

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Akemati

Páginas: [1]
1
La taberna del BIT / Hola!
« en: Viernes 25 de Marzo de 2011, 15:10 »
Hola a todos!

Tan sólo me gustaría presentarme, y primero diculparme por el retraso ya que me he adelantado un poquito y he posteado un par de preguntas por ahí, pero no quería dejar pasar más tiempo sin presentarme y darles mis saludos, soy de México y aunque ya he dejado hace años atrás la universidad, recién estoy interesándome en la programación, así que de antemano ofrezco mis disculpas por el status de principiante, pero si en algo pudiera ayudar sin duda lo haré!

Pues nuevamente les envío un saludo, y de paso les agradezco por el espacio que me permiten por aquí!

Nos vemos en los foros!

2
C++ Builder / Re: Buscar un string en un listbox
« en: Viernes 25 de Marzo de 2011, 14:02 »
Bueno, aquí posteo una solución que no resuelve exactamente mi problema inicial pero que me ayudó para resolver un problema similar, el código busca entre los elementos de un Listbox la cadena de caracteres introducida desde un TEdit a partir de una posición específica (función substring) dentro de las líneas del Listbox.

Código: C++
  1. for(int i=0;i<ListBox1->Items->Count;i++)      
  2. {
  3.    if(ListBox1->Items->Strings[i].SubString(0,Edit1->Text.Length()) == Edit1->Text)
  4.    {
  5.       ListBox1->ItemIndex = i;
  6.    }
  7. }
  8.  
  9.  

3
C++ Builder / Re: Buscar un string en un listbox
« en: Martes 22 de Marzo de 2011, 14:53 »
Hola rfog,

Agradezco mucho tu orientación, tendrías un ejemplo a la mano? sería de mucha ayuda!!

Gracias!

4
C++ Builder / Buscar un string en un listbox
« en: Viernes 18 de Marzo de 2011, 18:02 »
Hola,

Alguien podría ayudarme, necesito un método para buscar un string dentro de un listbox, pero que dicha búsqueda no sólo encuentre coincidencias en el inicio de los ítems (encontré que existen LB_FINDSTRING, LB_SELECTSTRING o LB_FINDSTRINGEXACT pero sólo encuentran el primer string), pero mi ejemplo es el siguiente:

Búsqueda: Perez

Ricardo Hernandez Sanchez
...
Alejandro Perez Reyes <- Seleccione este ítem.

Muchas gracias!

5
C++ Builder / Re: Realizar búsqueda de texto en carpeta de archivos .txt
« en: Martes 7 de Diciembre de 2010, 14:17 »
Hola,

Un amigo pudo ayudarme a resolver mi problema y por aquí voy a postear el código por si a alguien le es de utilidad.

Se necesita un TEdit para escribir una palabra a buscar, un TButton para lanzar la búsqueda y las coincidencias junto con la ruta del archivo(s) encontrado(s) se despliegan en un TListBox.

Esto en el header:

Código: C++
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string>
  4. #include<windows.h>
  5.  

Después poner el siguiente código en el evento Onclick del Botón:

Código: C++
  1. AnsiString Texto;
  2.     AnsiString Texto2;
  3.     char Pbuscar[255];
  4.     char linea[255];
  5.     char *coincidenciast[255];
  6.     char frase[255];
  7.     int contador;
  8.     int longitud;
  9.                 char c;
  10.     FILE *archivo;
  11.     WIN32_FIND_DATA findFileData;
  12.                 HANDLE hFind;
  13.     char dirtmp[255];
  14.     char exttmp[255];
  15.     char dir[255];
  16.     char filename[255];
  17.     char ruta[255];
  18.     std::string str;
  19.     Texto = Edit1->Text; //Recuperar el texto desde el TEdit
  20.     strcpy(Pbuscar,Texto.c_str());
  21.     strcpy(dirtmp, "c:\MiCarpeta\"); //Aquí el directorio conteniendo los archivos a buscar
  22.     strcpy(dir, dirtmp);
  23.     strcat(dir,"\");
  24.     strcat(dirtmp,"*.txt"); //Esta es la extensión de archivos en dónde realiza la búsqueda
  25.     hFind = FindFirstFile(dirtmp, &findFileData);
  26.     if(hFind == INVALID_HANDLE_VALUE)
  27.                    {
  28.                            printf("Directorio no existe o es incorrecto");
  29.                     }
  30.      else
  31.     {
  32.           strcpy(ruta,"");
  33.           str = (std::string)findFileData.cFileName;
  34.     longitud = str.length();
  35.        if(longitud >12)
  36.            {
  37.              str = (std::string)findFileData.cAlternateFileName;
  38.     }
  39.   for(int i=0; i < longitud;i++)
  40.   {
  41.           filename[i] = str[i];
  42.   }
  43.   filename[longitud] = '';
  44.   strcpy(ruta, dir);
  45.   strncat(ruta, filename, strlen(filename));
  46.   contador = 0;
  47.   if((archivo = fopen(ruta,"r")) != NULL)
  48.   {
  49.    while ((fscanf(archivo, "%s%c", linea, &c)) != EOF)
  50.    {
  51.      if(strcmp(linea, Pbuscar) == 0 && *linea != '')
  52.      {
  53.      contador++;
  54.      }
  55.    }
  56.    if(contador>0)
  57.    {      
  58.    }
  59.    fclose(archivo);
  60.   }
  61.   else
  62.   {
  63.     printf("Error al abrir archivo - %s n", ruta);
  64.      getchar();
  65.   }
  66.   fflush(stdin);
  67.   }
  68.  
  69.  while(FindNextFile(hFind, &findFileData) != 0)
  70.  {
  71.    strcpy(ruta,"");
  72.    contador = 0;
  73.    str = (std::string)findFileData.cFileName;
  74.     longitud = str.length();
  75.     if(longitud>12)
  76.    {
  77.        str = (std::string)findFileData.cAlternateFileName;
  78.    }
  79.    for(int i=0; i < longitud;i++)
  80.   {
  81.           filename[i] = str[i];
  82.   }
  83.   filename[longitud] = '';
  84.   strcpy(ruta, dir);
  85.   strncat(ruta, filename, strlen(filename));
  86.   if((archivo = fopen(ruta,"r")) != NULL)
  87.   {
  88.    while ((fscanf(archivo, "%s%c", linea, &c)) != EOF)
  89.    {
  90.       if(strcmp(linea,Pbuscar) == 0 && *linea != '')
  91.      {
  92.          contador++;
  93.      }
  94.    }
  95.     if(contador>0)
  96.     {    strcpy(frase, " coincidencias en ");
  97.             itoa(contador, *coincidenciast, 10);
  98.             strncat(*coincidenciast, frase, strlen(frase));
  99.             strncat(*coincidenciast, ruta, strlen(ruta));
  100.             lstData->Items->Add(*coincidenciast); //Enviar búsqueda a TListBox
  101.  
  102.             }
  103.    fclose(archivo);
  104.   }
  105.   else
  106.   {
  107.     printf("Error al abrir archivo - %s n", ruta);
  108.      getchar();
  109.     //exit(1);
  110.   }
  111.   fflush(stdin);
  112. }
  113.  
  114.  

Una disculpa ya que el código no está ni bien comentado ni optimizado pero a mi me ayudó en mi problema.

6
Inteligencia Artificial / Re: como hacer un sistema basado en casos??
« en: Jueves 18 de Noviembre de 2010, 11:48 »
Hola,

Existe por allí algo que se llama Case Based Reasoning o Razonamiento Basado en Casos, no existe mucha bibliografía pero pienso que puedes encontrar algo que tal vez te interese.

7
C++ Builder / Re: Realizar búsqueda de texto en carpeta de archivos .txt
« en: Jueves 18 de Noviembre de 2010, 11:38 »
Estoy tratando de convertir el código para utilizar el TFileinFilesX como componente C++ Builder pero me marca error en los parámetros de GetFileData, alguién podría ayudarme a traducir el siguiente código para el Builder C++, está escrito en VB:

Código: Visual Basic
  1. Private Sub FiFx1_ScanCompleted()
  2. Dim ii As Long
  3. Dim sData As String
  4. Dim sFileName As String
  5. Dim lLine As Long, lColumn As Long, sFound As String
  6. cmdAbort.Visible = False
  7. lstData.Clear ' Clear List box
  8. ' Add data from the FindInFilesX control on the main form
  9. For ii = 0 To FifX1.SearchCount - 1
  10. If (FifX1.GetFileData(ii, sFileName, lLine, lColumn,
  11. sFound) = True) Then
  12. sData = sFileName & " --- " & _
  13. CStr(lLine) & " --- " & _
  14. CStr(lColumn) & " --- " & _
  15. CStr(sFound)
  16. Call lstData.AddItem(sData)
  17. End If
  18. Next ii
  19. Caption = CStr(lstData.ListCount) & " items found from FifX1"
  20. End Sub 
  21.  

8
C++ Builder / Re: Realizar búsqueda de texto en carpeta de archivos .txt
« en: Lunes 15 de Noviembre de 2010, 14:08 »
Hola,

Muchas gracias por tu sugerencia, aunque lo que necesito parece un poco más complicado, dado que soy principiante estoy tratando de solucionar mi problema con lo que encuentro en la red. Por allí encontre un componente ActiveX, realizado por el desarrollador SoftInterface, llamado FindInFilesX (no pude poner URL pero se encuentra facilmente en Google) que propone un buscador para insertar en cualquier aplicación y realizar este tipo de consultas, es gratuito y provee además el código pero en VB, viene en el manual un ejemplo sencillo pero no pude aplicarlo pues desconozco este lenguaje. Sería de mucha ayuda si alguien pudiera revisarlo y postear por aquí el código para C++ Builder!

Muchas gracias!

9
C++ Builder / Realizar búsqueda de texto en carpeta de archivos .txt
« en: Miércoles 10 de Noviembre de 2010, 14:35 »
Hola,

Estoy realizando una aplicación en la que quisiera incluir un sencillo motor de búsqueda que permita, al introducir texto o palabras clave en un TEdit por ejemplo, recuperar la ubicación del archivo de texto .txt que más coincida con mi búsqueda (para posteriormenete utilizarlo), dicho archivo estará ubicado en alguna carpeta que reagrupa varios ficheros .txt almacenados previamente.

 Mucho les agradezco su ayuda!

Páginas: [1]