Buscar en una estructura record
Hola, como puedo armar una función para que me sirva para buscar en distintas estructuras Record ?
(por lo menos no ví ninguna que lo haga) :( por ejemplo tengo
:confused: y acá el problema de como buscar, este es un simple ejemplo que no funciona, cualquier ayuda es bien venida
Muchas Gracias |
Hola.
¿ En cuál versión de Delphi estas trabajando ? Saludos :) |
usando delphi 7
|
Cita:
Hola Veo que en el parametro campo envias el nombre del campo que quieres buscar. La verdad eso no lo veo viable y no creo que alguna version de delphi la acepte. Tal vez usando RTTI podrias acceder a cualquier campo del record pero de esa forma no lo creo. Se que no es de ayuda pero creo que tendrias que buscar otra manera. Haber si alguien mas nos saca de la duda. Saludos |
Hola.
Cita:
Si fuese Delphi 2010 o una versión superior, podrías hacerlo usando RTTI como se muestra en este enlace: List the Record's element\fields Saludos :) |
y hay alguna forma de buscar siempre en el primer campo ?
|
Cita:
Mira este ejemplo:
Saludos. |
Muchas gracias a todos, lo de escafandra anda ok
pero quiero poder recibir cualquier tipo record, por ejemplo
// como debo definir aRecord para poder recibir cualquier tipo de array record ?, (mi mira a los punteros está muy desviada) Muchas gracias
|
Lo que pretendes tiene solución con punteros, pero el primer campo de cada estructure (record) debe ser del mismo tipo, en este caso String. No nos importa como se llame, lo podemos localizar.
Basado en tu código, podemos definir el parámetro aRecord como un array de punteros. Cada puntero apuntará a un elemento de una estructura.
Saludos |
:) gracias escafandra !!
|
Una ayuda más por favor
como busco en el primer campo recorriendo un array, muestro con ERROR donde recibo error al compilar, gracias de antemano
|
|
ok, si yo defino
como hago para saber que tengo que recorrer 3 items dentro de la funcion ? y como puedo obtener el primer campo, que también me da error al compilar s := (PPString(@aRecord[i])^)^; // ERROR Array typed required muchas Gracias |
Hola.
Cita:
vg.r.:
Cita:
Saludos :) |
ok, en lo de Escafandra busca en el primer campo de CADA array si mando varios arrays, eso está ok
Yo quiero buscar en el primer campo dentro del único array que le mando, por eso definí BitBtn4Click que llama a function BuscarEnRecord4(aRecord: TRecord2; Buscar:string):integer; y lo que me cuesta, entra varias cosas..., es poder definir aRecord de un tipo puntero que pueda apuntar a cualquier tipo de TRecord por eso arme el ejemplo de BitBtn4Click que llama a function BuscarEnRecord4(aRecord: TRecord2; Buscar:string):integer; GRACIAS otra vez |
Cita:
funciona sin problemas siempre y cuando el primer campo de los Records sea del mismo tipo... Saludos :) |
ok, eso funciona bárbaro... pero r1 no es un array
serias tan amablede hacerlo funcionar definiendo un array como por ejemplo que está en el ejemplo BuscarEnRecord4 y BitBtn4Click que es donde me dan los errores, yo quiero poder recorrer el array que le mande Gracias |
La franja horaria es GMT +2. Ahora son las 01:02:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi