![]() |
Busqueda dentro de un array
Tengo un array "ncod_trabajo :array[1..250] of String" y quisiera saber como puedo hacer una busqueda dentro del array para saber si existe un dato, algo parecido a un LOCATE pero no sé cual es la forma de hacerlo, sin tener que recorrer toda la tabla comparando un tedit.text con cada celda del array.
|
hola, creo que deberas hacer exactamente eso: crear una funcion que te recorra el array y te devuelva true o false segun lo encuentre. Tambien podrias copiar todo a un unico buffer y usar Pos(substr,str) para ver si esta, aunque segun como lo hicieses te daria problemas. saludos.
|
Hola,
también podrías utilizar un TStringlist ( si sólo tienes una dimensión en el array ). Tiene función de busqueda, ordenación, ... y te hace todo el trabajo sucio. Valóralo al menos. Saludos |
Muchas gracias por la respuesta, el array es utilizado como un campo indice para llenar otros arrays, y una vez calculados los datos de ltodos os arrays pasan a varias tablas.
Con vuestras respuestas me habeis confirmado que la forma en que haga la busqueda es correcta, aunque veré si puedo utilizar el TStringlist. Gracías de nuevo y un saludo. Jose Manuel. |
Hola, sería mucho mejor que utilizaras un TStringList, como te dijo el amigo fjcg02.
Saluditos |
Si estuviera ordenado el array podrías hacer búsqueda dicotómica, si el array no está ordenado sólo te queda secuencial.
Otra cosa, el TStringList como te han dicho ya posee búsqueda y ordenación, pero si el TStringList no está ordenado (a veces no se puede) acaba haciendo búsqueda secuencial, así que si es el caso, tal vez no merezca la pena cambiar. |
concuerdo, aun haber puesto lo de la funcion de busqueda : un TStringList te ahorrara faena. saludos.
|
Hola. Si sigues con Arrays, tambien podes buscar algoritmos mejorados de busquedas dentro de arrays como puede ser el de la burbuja y otros mas.
Saludos. |
Cita:
El primero se emplea cuando los elementos no están ordenados, mientras que el segundo cuando está ordenado. Saludos, |
Una busqueda secuencial con ese array sería muy muy rápida. Algo como esto:
Salu2 |
Tal cual dice Delphius.
Disculpas por el dato erroneo, pero alguna vez lo vi y nunca mas lo toque. Saludos. |
La franja horaria es GMT +2. Ahora son las 23:38:34. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi