Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rento

Me de uma mãozinha, digo procedure(A, B: TstringList)

Recommended Posts

ola, eu queria uma function/procedure que recebesse duas strings lists, e removesse os items iguals, por exemplo:

 

LISTA1 | LISTA2

000000 | 000000

111111 |

222222 | 222222

Após utilizar a função uma listar tem que ter somente o 111111, porque ele não tem par. eu ate fiz uma, mais não deu certo :/

 

Por favor façam uma para mim

Da uma olhada na minha:

//---------------------------------------------------------------------------   procedure rRemoveIdem(var pL1, pL2: TStringList);   var	 I: Integer;   begin	  for I := 0 to pL2.Count - 1 do		 begin		 if (pL1.Strings[0] = pL2.Strings[I]) then			begin			pL1.Delete(0);			end;		 end;   end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada muito complicado... :D

Tente da seguinte forma:

 

procedure rRemoveIdem(var pL1, pL2: TStringList);var	x, y: Integer;beginfor y:=0 to pL2.Count - 1 do	for x:=(pL1.Count - 1) downto 0 do		if (pL1.Strings[x] = pL2.Strings[y]) then			pL1.Delete(x);end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, é isso mesmo, eu ate tinha feito um parecido, mas demorou tanto que achei que tava errado huahuas(obs: 60Mil pessoas na primeira e 60 mil reg na segunda)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algum geito desse sql retorna "ao contrario"?Tabela TbStcAss:cd_associado fl_canclado dt_nascT11111111 0/1 aaaammddTabela TbStcCtf:id_ctfaammdd+cd_associadoToda vez que o sócio passa na catraca grava por exemplo hoje (071010 + código dele mesmo)

SELECT A.cd_associado FROM TbStcAss AS A LEFT JOIN TbStcCtf AS B ON (A.cd_associado = MID(B.id_ctf, 7, 9) AND MID(B.id_ctf, 1, 6) >= "071003" AND MID(B.id_ctf, 1, 6) <= "071010") WHERE A.fl_cancelado = 0 AND MID(A.dt_nasc, 1, 4) <= "2007" AND MID(A.dt_nasc, 1, 4) >= "1807" AND A.fl_cancelado = 0 AND NOT (B.id_ctf IS Null)

Esse select actima retorna somente os nulos, que são quem não entraram de 071003 ate 071010, e essa parte da data de nacimento e so um filtro... quando eu abro a segunda lista, eu tiro o "NOT (B.id_ctf IS Null) ", ai fica como no exemplo dado no topico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algum geito desse sql retorna "ao contrario"?Tabela TbStcAss:cd_associado fl_canclado dt_nascT11111111 0/1 aaaammddTabela TbStcCtf:id_ctfaammdd+cd_associadoToda vez que o sócio passa na catraca grava por exemplo hoje (071010 + código dele mesmo)

SELECT A.cd_associado FROM TbStcAss AS A LEFT JOIN TbStcCtf AS B ON (A.cd_associado = MID(B.id_ctf, 7, 9) AND MID(B.id_ctf, 1, 6) >= "071003" AND MID(B.id_ctf, 1, 6) <= "071010") WHERE A.fl_cancelado = 0 AND MID(A.dt_nasc, 1, 4) <= "2007" AND MID(A.dt_nasc, 1, 4) >= "1807" AND A.fl_cancelado = 0 AND NOT (B.id_ctf IS Null)

Esse select actima retorna somente os nulos, que são quem não entraram de 071003 ate 071010, e essa parte da data de nacimento e so um filtro... quando eu abro a segunda lista, eu tiro o "NOT (B.id_ctf IS Null) ", ai fica como no exemplo dado no topico
Não entendi praticamente nada do que deseja fazer como resultado final... http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Teria como colocar exemplos de resultado que gostaria de ter ?Ou então, abrir novo tópico sobre esta dúvida, pois não tem muita relação com o post original... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.