Fórum DELPHI - Adicionar dados em comum de 3 listbox em um quarto listbox #605561
23/09/2019
0
Olá pessoal,
Estou precisando de uma ajuda enorme (PARA DELPHI).
Tenho três listbox que possuem cada um uma quantidade diferente de nomes. As vezes o listbox 1 possui mais itens, as vezes o 2 ou as vezes o 3 (nunca saberei).
Gostaria de saber se existe algum código que selecione apenas os termos em comum nos 3 listbox e adicione em um quarto listbox?
Exemplo:
O listbox1 possui os nomes:
SICRANO
FULANO
MARIA
O listbox2 possui os nomes:
SICRANO
FULANO
JOÃO
O listbox3 possui os nomes:
SICRANO
FULANO
ANA
JOANA
JOSÉ
Logo, o listbox4 terá apenas os nomes:
SICRANO
FULANO
Pois são os únicos nomes comum aos 3 listbox anteriormente supracitados.
Agradeço desde já.
Estou precisando de uma ajuda enorme (PARA DELPHI).
Tenho três listbox que possuem cada um uma quantidade diferente de nomes. As vezes o listbox 1 possui mais itens, as vezes o 2 ou as vezes o 3 (nunca saberei).
Gostaria de saber se existe algum código que selecione apenas os termos em comum nos 3 listbox e adicione em um quarto listbox?
Exemplo:
O listbox1 possui os nomes:
SICRANO
FULANO
MARIA
O listbox2 possui os nomes:
SICRANO
FULANO
JOÃO
O listbox3 possui os nomes:
SICRANO
FULANO
ANA
JOANA
JOSÉ
Logo, o listbox4 terá apenas os nomes:
SICRANO
FULANO
Pois são os únicos nomes comum aos 3 listbox anteriormente supracitados.
Agradeço desde já.
Augusto
Curtir tópico
+ 0
Responder
Posts
24/09/2019
Ricardo Araujo
Boa noite,
Conseguiu fazer desta forma, agora com este exemplo você pode adpatar, blz..
segue código:
procedure TForm1.Button1Click(Sender: TObject);
var
TempList: TStringList;
OutPutList: TStringList;
CurrentNumber: string;
CurrentNumberCount: Integer;
I: Integer;
begin
TempList := TStringList.Create;
// Copiamos la lista del TListBox a una temporal
TempList.Assign(ListBox4.Items);
// Ordenamos la lista para hacer más fácil el conteo
TempList.Sort;
OutPutList := TStringList.Create;
// Inicializamos la variable para obtener el primer número
CurrentNumber := '';
for I := 0 to Pred(TempList.Count) do
begin
if CurrentNumber <> TempList[i] then
begin
if CurrentNumber <> '' then
OutPutList.Add(Format('número %s hay %d repeticiones', [CurrentNumber, CurrentNumberCount]));
CurrentNumber := TempList[i];
CurrentNumberCount := 1
end
else
Inc(CurrentNumberCount)
end;
Memo1.Lines.Clear;
Memo1.Lines.Assign(OutPutList);
end;
Conseguiu fazer desta forma, agora com este exemplo você pode adpatar, blz..
segue código:
procedure TForm1.Button1Click(Sender: TObject);
var
TempList: TStringList;
OutPutList: TStringList;
CurrentNumber: string;
CurrentNumberCount: Integer;
I: Integer;
begin
TempList := TStringList.Create;
// Copiamos la lista del TListBox a una temporal
TempList.Assign(ListBox4.Items);
// Ordenamos la lista para hacer más fácil el conteo
TempList.Sort;
OutPutList := TStringList.Create;
// Inicializamos la variable para obtener el primer número
CurrentNumber := '';
for I := 0 to Pred(TempList.Count) do
begin
if CurrentNumber <> TempList[i] then
begin
if CurrentNumber <> '' then
OutPutList.Add(Format('número %s hay %d repeticiones', [CurrentNumber, CurrentNumberCount]));
CurrentNumber := TempList[i];
CurrentNumberCount := 1
end
else
Inc(CurrentNumberCount)
end;
Memo1.Lines.Clear;
Memo1.Lines.Assign(OutPutList);
end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)