PDA

Ver la Versión Completa : Comparar datos array


Caral
10-09-2012, 00:13:49
Hola a todos
No se si esto es posible, solo se me ocurre.
Viene de otra pregunta pero algo diferente por eso la hago aqui.
Digamos que tengo un edit al cual le escribo un dato.
ese dato lo quiero guardar en una variable (array es lo que se me ocurre).
El dato lo guardo las veces que necesite (diferentes datos).
Quisiera saber si es posible que a medida que voy escribiendo los datos en el edit este fueran comparados con el array ?.
No se si me hago entender.:o
Saludos
PD: últimamente pregunto demasiado.:eek::D

ecfisa
10-09-2012, 00:41:33
Hola Carlos.

Creo que te entiendo, a ver si te refieres a algo así:

...
var
Vec : array [1..100] of string;

procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
Edit1.Clear;
for i:= 1 to 12 do
begin
Vec[i]:= LongMonthNames[i];
ListBox1.Items.Add(Vec[i]); // para que los valores iniciales se vean en algún lado...
end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
i: Integer;
begin
if Edit1.Text > '' then
begin
for i:= 100 downto 1 do
if Edit1.Text = Vec[i] then
ShowMessage(Edit1.Text + ' es igual a ' + Vec[i]);
end;
end;
...

Si lo quisieras como búsqueda incremental, basta con cambiar la condición del if del procedimiento Edit1Change:

...
if Edit1.Text = Copy(Vec[i], 1, Length(Edit1.Text)) then
Caption:= Vec[i];
...



Saludos. :)

Caral
10-09-2012, 00:56:28
Hola
Mas o menos amigo pero la idea es ir escribiendo en el edit, guardando los datos e ir comparandolos con el array o puede ser el listbox.
Saludos

ecfisa
10-09-2012, 00:59:58
Hola.

¿ Es a fin de que no permitiera guardar un texto que ya se encuentra ?

Saludos.

Caral
10-09-2012, 01:05:15
Hola
Vamos a ver.
Digamos que tengo un edit, un listbox y un boton
Cuando escribo el numero 1 en el edit presiono el boton y me compara (antes de guardarlo en el listbox) si ya existe el numero 1 en el listbox, si es asi, me muestra un mensaje.
Saludos
PD: te estoy poniendo a trabajar:D

ecfisa
10-09-2012, 01:14:56
Entiendo...

Con un ListBox se hace mas fácil la tarea:

...
procedure TForm1.btnAgregarClick(Sender: TObject);
begin
if Edit1.Text > '' then
begin
if (ListBox1.Items.IndexOf(Edit1.Text) = -1) then
ListBox1.Items.Add(Edit1.text)
else
begin
ShowMessage('El dato ya existe');
Edit1.SetFocus;
end;
end
else
Edit1.SetFocus;
end;
...


PD: te estoy poniendo a trabajar
¿ Y para que estamos los amigos si no ? :)

Saludos.

Caral
10-09-2012, 01:23:25
Hola
Buenisimo amigo ^\||/
Como se nota la novatada, pase de un array a un listbox :D:D
Quedo muy bien, ahora me falta implementarlo a ver como me va, pero me gusta mas esta opción que la del stringrid del otro hilo.^\||/
Gracias amigo.
Saludos

Neeruu
24-12-2015, 03:15:28
Gracias.... muchas gracias....

Sirvió de 10 el uso del ListBox...


Saludos.