FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
object pascal - buscar en un record por contenido de un edit.
Hola, quería consultarlos por mi siguiente limitación: puedo hacer una búsqueda de campos personales por número de orden en un record guardado en archivo binario (usando seek), pero no sé cómo hacer la búsqueda por un campo personal, como nombre o documento, y que devuelva los demás datos de la persona en el record (tampoco entiendo cómo borrarlos). Tengo la parte que importa del código O.O. (de object pascal) dispuesto así:
primera unit: Código:
...y lo que importa en la segunda unidad: Código:
Como dije esto sirve para buscar por número de ingreso al record, pero no se me ocurre como llenar el edit1 con un apellido, nombre o dni y que rellene los demas edits con todos los datos correspondientes, actualmente logro esto sólo al ingresar el número de orden del record en el edit1. Saludos a todos, feliz navidad, y disculpen la longitud, ofuscación del código e ignorancia personal. |
#2
|
||||
|
||||
Es una búsqueda secuencial. Abres el archivo, usas la variable c para leer el primer registro y ahora comparas el edit con el campo c.Nombre o c.DNI.
Quizás por comodidad podrías sacar el número total de socios para hacer un bucle, por ejemplo:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
||||
|
||||
Releyendo el hilo, no haría falta lo de totalSocios:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
|||
|
|||
Muchas gracias por la gran disposicion que has tenido, Lepe.
Igualmente estaré pasando muy mal los parámetros de una unit a otra, porque sigue buscando numeros de registro; en ambos casos con el archivo binario abierto, recibo un Stack Overflow cuando hago una búsqueda de números bajos, como los nº de registro ordinales del record. Si busco por DNI (números superiores a la cantidad de registros) "El Número de registro está fuera de rango"; si modifico el codigo para buscar nombres o apellidos "EConvert error (nombre ingresado) no es un integer valido". Sigue buscando numeros de registro. ( Project Project1.exe raised exception class EStackOverflow with message 'Stack overflow'. ) El codigo actual: Código:
|
#5
|
||||
|
||||
Creo que no nos hemos entendido.
La rutina BuscarSocio no la tienes que modificar para nada, déjala como la tenías en el primer mensaje. Ahora la búsqueda por nombre: De lo que se trata es de empezar a recorrer el archivo, registro por registro, mirando si el nombre que queremos buscar coincide con el registro actual, si lo es, dejamos de leer del archivo, porque lo hemos encontrado. Si no lo es, continuamos leyendo hasta que se encuentre o hasta el fin del archivo.
Si ahora quieres buscar por dni, tienes que construir una rutina igual a la anterior y sustituir las líneas que dice:
por estas otras:
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 19-12-2006 a las 09:05:30. |
#6
|
|||
|
|||
Así es.
Muchas gracias, Lepe, y mis saludos de la temporada.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como usar object pascal y gtk | Lionheart | OOP | 6 | 09-12-2005 19:31:08 |
manual de excepciones de object pascal para free pascal??? | Garion | OOP | 3 | 27-05-2005 00:42:29 |
error couldn't perform the edit because another user changed the record | marcelofabiani | Conexión con bases de datos | 3 | 25-01-2005 01:55:11 |
¿Object Pascal para todo? | ReigDidion | OOP | 10 | 12-02-2004 08:28:07 |
que significa RECORD,OBJECT OR CLASS REQUIRED | cesarjbf | Varios | 2 | 07-07-2003 14:07:20 |
|