rento 0 Denunciar post Postado Outubro 9, 2007 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
marcio.theis 3 Denunciar post Postado Outubro 9, 2007 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
rento 0 Denunciar post Postado Outubro 9, 2007 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
marcio.theis 3 Denunciar post Postado Outubro 9, 2007 hehehe, vai levar um tempinho mesmo :D Compartilhar este post Link para o post Compartilhar em outros sites
rento 0 Denunciar post Postado Outubro 10, 2007 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
marcio.theis 3 Denunciar post Postado Outubro 10, 2007 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 topicoNã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
rento 0 Denunciar post Postado Outubro 10, 2007 Hhehe deixa assim mesmo, ja ta pegando rsrs Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 11, 2007 Certo :P Compartilhar este post Link para o post Compartilhar em outros sites