Autor Tema: seleccion de elemento de arreglo mediante escritura predictiva  (Leído 2781 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado charlosh

  • PIC10
  • *
  • Mensajes: 12
seleccion de elemento de arreglo mediante escritura predictiva
« en: 24 de Septiembre de 2010, 16:16:56 »
Buenas tardes, en un proyecto en que utilizo el 18f4620, un teclado matricial 4x4 y un lcd2x16 tengo una matriz de elementos. trato de utilizar el teclado y el lcd para que el usuario introduzca un numero de parte dependiendo del modelo a correr (en realidad son 54 modelos pero aqui coloco un extracto de solo  10 modelos)  :3785620,3785620-1,4567890,6750987, 5428950,432356,467834,456739,856745,856745-A;
por lo que tengo una matriz de este modo:

const char menup0[10][16]={"\3785620","\3785620-1","\4567890","\6750987","\5428950,"\432356","\467834","\456739","\856745,"\856745-A" };

podria alguien comentarme como puedo hacer que una escritura de texto predictivo (semejante al de cuando uno escribe un texto en el telefono movil, que conforme escribe letras le va presentando las posibles palabras que se pueden escribir on lo escrito hasta ese momento), trato de explicarlo:

   Como yo ya tengo los elementos de la matriz, entonces cuando el usuario trate de introducir por asi decirlo el numero 8... me presente las dos unicas opciones que hay en este menu que empiezan con 8 que son 856745 y 856745-A, (de tal forma que yo ya no tenga que teclear los siguientes digitos ...56745 o ...56745-A),
y tenga la facilidad de seleccionar con la instruccion case y utilizardo las teclas de desplazamiento del teclado el numero de parte a utilizar pero ya haciendo la seleccion de estos dos numeros de parte presentados.


Tengo la idea de utilizar el puntero para saber en que posicion del arreglo esta el elemento seleccionado, , pero no se como hacer que al inicio de la introduccion de cada digito desde el teclado vaya y se compare a cada uno de todos los elementos de la cadena, y comforme vaya capturando mas digitos tecleados me vaya reduciendo las opciones posibles Podria alguien darme un tip para hacerlo.


La idea principal es facilitar la seleccion del modelo al momento de teclearlo de tal forma que se vayan depurando las opciones, en cuanto los digitos sean introducidos se vayan cerrando mas y mas las numeros de parte seleccionables

Gracias y espero su ayuda.




                         
                           

Desconectado fabianjsm

  • PIC18
  • ****
  • Mensajes: 255
    • fabianjsm is on twitter
Re: seleccion de elemento de arreglo mediante escritura predictiva
« Respuesta #1 en: 05 de Octubre de 2010, 15:54:04 »
Si tenés una lista con todas las opciones posibles (el vector con los 54 modelos que mensionas), podes formar la lista de predicciones buscando entre ellas las que tengan como prefijo la entrada del usuario.

Si la lista de opciones esta ordenada, la lista de predicciones siempre es un subconjunto  de entradas continuas de la lista de opciones, de modo que podes representarla con dos valores: el primero indica el inicio de la sublista, y el segundo la cantidad de elementos.

La funcion que determina si un texto es prefijo de otro podria retornarte en caso negativo un valor que te permita determinar su relacion de orden alfabetico, como lo hace strcmp. Esto te permitiria implementar un algoritmo de búsqueda binaria, con el cual podés reducir exponencialmente el número de iteraciones necesarias. Durante la búsqueda del inicio de la lista de predicciones se determina el valor mínimo de su longitud, lo que optimiza la busqueda de su final.

Después de determinar el inicio de la lista y su longitud, la muestras.
@fabianjsm is on twitter

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: seleccion de elemento de arreglo mediante escritura predictiva
« Respuesta #2 en: 05 de Octubre de 2010, 17:45:43 »
Bonito ejercicio. Me suscribo al hilo para ver cómo lo resuelves.

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Re: seleccion de elemento de arreglo mediante escritura predictiva
« Respuesta #3 en: 05 de Octubre de 2010, 21:59:53 »
Les dejo un proyecto donde se muestra el problema resuelto  ;-)

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: seleccion de elemento de arreglo mediante escritura predictiva
« Respuesta #4 en: 05 de Octubre de 2010, 23:03:49 »
Hola.

Esta bueno el programa .. tipo teclado de celular  ;-)

Saludos
El papel lo aguanta todo

Desconectado jonathanPIC888

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 326
Re: seleccion de elemento de arreglo mediante escritura predictiva
« Respuesta #5 en: 06 de Octubre de 2010, 01:15:55 »
Espero que les sirva, no es de mi autoría lo encontré navegando , cuando vi su código me quedé.... :shock: :shock: