onde que vc configura essa opção de para as exceptions do delphi. ?? ---------------------------------------------------------------------------------------- Uberdam Cavaletti Programador Delphi Formado em Tecnologia da Informação Pós-graduado em desenvolvimento Java. Professor Tópicos Especias em BD - Unoesc Xanxerê Professor Estruturas de Dados - Unoesc Xanxerê
http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4251629Y0 ---------------------------------------------------------------------------------------- ________________________________ De: Alemão <forumdel...@gmail.com> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 27 de Novembro de 2009 16:21:32 Assunto: Re: [delphi-br] Validação de IE do RS Carrego ela de modo dinamico. Junto com a DLL do sintegra vem um programa de exemplo. Fiz igualzinho a esse programa. Sempre que eu executava os processos dela pelo Delphi, realmente ela gerava algumas mensagens, mas usei ferramentas para verificar se ficava algo perdido na memoria e não ficava, aí coloquei a IDE do delphi pra ignorar essas exception e acabou o problema. Nunca tive dor de cabeça com essa DLL. Em todos os meus clientes, ela nunca deu nenhum tipo de problema. 2009/11/27 Berdam <berdamzi...@yahoo.com.br> > > > pois é, problema para o cliente essa dll não tem, porém em modo de debug no > delphi salta umas mensagens. > > Mas já verifiquei que a rotina que eu utilizo tinha uma validação que não > existe mais no RS. > > A sua dll gera essas mensages ?? > > Como vc carrega sua dll, dinamicamente ou de modo fixo ??? > > Agradeço a ajuda > > ---------------------------------------------------------- > Uberdam Cavaletti > Programador Delphi > Formado em Tecnologia da Informação > Pós-graduado em desenvolvimento Java. > Professor Tópicos Especias em BD - Unoesc Xanxerê > Professor Estruturas de Dados - Unoesc Xanxerê > > http://buscatextual.cnpq.br/buscatextual/visualizacv.jsp?id=K4251629Y0 > ---------------------------------------------------------- > > ________________________________ > De: Alemão <forumdel...@gmail.com <forumdelphi%40gmail.com>> > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Enviadas: Sexta-feira, 27 de Novembro de 2009 15:40:36 > Assunto: Re: [delphi-br] Validação de IE do RS > > > Berdam, > > Eu uso a DLL disponibilizada no site do sintegra sem problema algum. > > Ela foi atualizada a um tempo atrás, pode ser que tinha algum problema e > eles arrumaram. > > Alemão > > 2009/11/27 jalosii gmail <jalo...@gmail. com> > > > aqui quebrou as linhas, se precisar entre em contato > > al...@digitalsystem .com.br que te envio a função diretamente. > > > > berdam escreveu: > > > o problema daquela dll é que em debug ela solta umas msgs que > atrapalham > > > muito. > > > > > > Irei tentar ver seu código > > > > > > jalosii gmail escreveu: > > > > > >> eu usava a dll pra validar os IEs, mas depois que encontrei essa > função > > >> na net, arrumei o que precisava e uso ela sem problemas. > > >> > > >> function ConfereIE(IE, UF: String; ApenasDigitos: Boolean = True): > > >> Boolean; > > >> const > > >> MASCARAS_: String = ' NNNNNNNNX- NNNNNNNNNNNXY- > > >> NNNNNNNNNNX- NNNNNNNNNNNNNX- NNNNNNYX-' + > > >> ' NNNNNNNNXY- NNNNNNNNNX- NNNNNNNNXNNY- NNNNNNNNXNNN- > > >> NNNNNNNXY'; > > >> PESOS_: String = > > >> 'GFEDCJIHGFEDCA- FEDCJIHGFEDCAA- GFEDCJIHGFEDAC- AAAAAAAAGFEDCA- > > >> AAAAABCDEFGHIA- ' > > >> + > > >> > > >> 'AAAJIAAHGFEDCA- FEDCBJIHGFEDCA- IHGFEDCHGFEDCA- HGFEDCHGFEDCAA- > > >> ABCBBCBCBCBCAA- ADCLKJIHGFEDCA- ' > > >> + > > >> > > >> 'AABDEFGHIKAAAA- AADCKJIHGFEDCA- AAAAAJIHGFEDCA- AAAAAIHGFEDCAA- > > >> AAAAAJIHGFEDCA- AAAAKJIHGFEDCA- '; > > >> PESO_: String = > > >> 'ABAAAAABBABAAAAAAJ AAIGAHAADAEALLAF NOQ!A!!!! !CC!A!!!! !!K!!H!!! > > >> !!!!!!M!! !!P!'; > > >> ALFA_: String = 'ABCDEFGHIJKLMNOPQR S'; > > >> ROTINAS_: String = > > >> 'EE011EEEEEEEEEEEE2 EEEEEE0EEEDEDDEE EE0!E!!!! !EE!E!!!! !!E!!E!!! > > >> !!!!!!D!! !!E!'; > > >> MODULOS_: String = > > >> '999999989999999998 9999999999799999 9990900000890900 0000900900000000 > > >> 09000090' ; > > >> INICIO_ : String = > > >> '0020000AB000111X2X 11X11X2XXX2XXXX2 XX2114333XXXX7XC C2X8X56X89X0XXX4 > > >> XXXX9XX0' ; > > >> MASCARA_: String = 'ABAAAAAEEABAAAACAB AAFDAEAGADAAHIAC AJG'; > > >> FATORES_: String = '000010000000100000 0001000011000000 000'; > > >> ESTADOS_: String = > > >> 'ACACALAPAPAPAMBABA CEDFESGOGOMAMTMS MGPAPBPRPEPIRJRN RSRORORRSCSPSPSE > > >> T0TOPERN' ; > > >> var > > >> c1, c2, alternativa, inicio, posicao, erros, fator, modulo, soma1, > > >> soma2, valor, digito: Smallint; > > >> mascara, inscricao, a1, a2, peso, rotina: String; > > >> begin > > >> UF := trim(uppercase( UF)); > > >> IE := trim(uppercase( IE)); > > >> result := ((IE = 'ISENTO') or (IE = 'EM ANDAMENTO') or ((UF = 'EX') > > >> and ((IE = '') or (IE = '00000000000000' )))); > > >> posicao := 0; > > >> while not result and (posicao < 37) and (IE <> '') do begin > > >> inc(posicao) ; > > >> if (copy(ESTADOS_ , posicao * 2 - 1, 2)) <> UF then > > >> continue; > > >> inscricao := ''; > > >> for C1 := 1 to 30 do > > >> if pos(copy(IE, C1, 1), '0123456789' ) <> 0 then > > >> inscricao := inscricao + copy(IE, C1, 1); > > >> mascara := copy(MASCARAS_ , pos(copy(MASCARA_ , posicao, 1), ALFA_) * > > >> 15 - 14, 14); > > >> while length(inscricao) < length(trim( mascara)) do > > >> inscricao := '0' + inscricao; > > >> if length(inscricao) <> length(trim( mascara)) then > > >> continue; > > >> inscricao := copy('0000000000000 0' + inscricao, length(inscricao) + > > >> 1, 14); > > >> erros := 0; > > >> alternativa := 0; > > >> while alternativa < 2 do begin > > >> inc(alternativa) ; > > >> inicio := posicao + (alternativa * 37) - 37; > > >> peso := copy(PESO_, inicio, 1); > > >> if peso = '!' then > > >> continue; > > >> a1 := copy(INICIO_ , inicio, 1); > > >> a2 := copy(copy(inscricao , 15 - length(trim( mascara)) , > > >> length(trim( mascara)) ), alternativa, 1); > > >> if not ApenasDigitos and (((pos(a1, 'ABCX') = 0) and (a1 <> a2)) or > > >> ((pos(a1, 'ABCX') <> 0) and (pos(a2, > > >> copy('0123458888- 6799999999- 0155555555- 0123456789' , (pos(a1, > > >> 'ABCX') * > > >> 11 - 10), 10)) = 0))) then > > >> erros := 1; > > >> soma1 := 0; > > >> soma2 := 0; > > >> for C2 := 1 to 14 do begin > > >> valor := StrToInt(copy( inscricao, C2, 1)) * > > >> (pos(copy(copy( PESOS_, (pos(peso, ALFA_) * 15 - 14), 14), C2, 1), > > ALFA_) > > >> - 1); > > >> soma1 := soma1 + valor; > > >> if valor > 9 then > > >> valor := valor - 9; > > >> soma2 := soma2 + valor; > > >> end; > > >> rotina := copy(ROTINAS_ , inicio, 1); > > >> modulo := StrToInt(copy( MODULOS_, inicio, 1)) + 2; > > >> fator := StrToInt(copy( FATORES_, posicao, 1)); > > >> if pos(rotina, 'A22') <> 0 then > > >> soma1 := soma2; > > >> if pos(rotina, 'B00') <> 0 then > > >> soma1 := soma1 * 10; > > >> if pos(rotina, 'C11') <> 0 then > > >> soma1 := soma1 + (5 + 4 * fator); > > >> if pos(rotina, 'D00') <> 0 then > > >> digito := soma1 mod modulo; > > >> if pos(rotina, 'E12') <> 0 then > > >> digito := modulo - (soma1 mod modulo); > > >> if digito = 10 then > > >> digito := 0; > > >> if digito = 11 then > > >> digito := fator; > > >> if (copy(inscricao, pos(copy('XY' , alternativa, 1), mascara), 1) > > >> <> IntToStr(digito) ) then > > >> erros := 1; > > >> end; > > >> result := erros = 0; > > >> end; > > >> end; > > >> > > >> Berdam escreveu: > > >> > > >>> Olá pessoal, venho solicitar ajuda principalmente do pessoal do RS. > > >>> > > >>> Tenho o seguinte IE 4800001926, que quando cadastro no sistema, > > >>> > > >> acusa que o mesmo é inválido > > >> > > >>> Tenho o seguinte código para validação, reparem na linha em negrito > > >>> > > >> ou aquela q tem o nr 467. A validação testa se os primeiros 3 números > > >> são maior ou igual a 1 e menor igual a 467. > > >> > > >>> Porém o início do meu IE é 480, dai ele não entra no if. > > >>> > > >>> Verifiquei no próprios site do sefaz que existe mesmo essa > > >>> > > >> validação, será que meu código está desatualizado ?? > > >> > > >>> Gostaria da ajuda de vcs para resolver isso > > >>> > > >>> function ChkIERS(const ie: string): Boolean; // 999.999999-9 > > >>> var > > >>> b, i, soma: Integer; > > >>> nro: array[1..10] of byte; > > >>> dig: SmallInt; > > >>> begin > > >>> Result :=false; > > >>> if (length(ie) <> 10) then > > >>> exit; > > >>> if not IsNumero(ie) then > > >>> exit; > > >>> i :=StrToInt(copy( ie, 1, 3)); > > >>> if (i >= 1) and (i <= 467) then //i = 480, > > >>> begin > > >>> for i :=1 to 10 do > > >>> nro[i] :=CharToInt( ie[i]); > > >>> b :=2; > > >>> soma :=0; > > >>> for i :=1 to 09 do > > >>> begin > > >>> inc(soma, nro[i] * b); > > >>> dec(b); > > >>> if b = 1 then > > >>> b :=9; > > >>> end; > > >>> dig :=11 - (soma mod 11); > > >>> if (dig >= 10) then > > >>> dig :=0; > > >>> Result :=(dig = nro[10]); > > >>> end; > > >>> end; > > >>> > > >>> > > >>> > > >>> ____________ _________ _________ _________ _________ _________ _ > > >>> Veja quais são os assuntos do momento no Yahoo! +Buscados > > >>> http://br.maisbusca dos.yahoo. com <http://br.maisbusca dos.yahoo. > com> > > > >>> > > >>> [As partes desta mensagem que não continham texto foram removidas] > > >>> > > >>> > > >>> > > >>> ------------ --------- --------- ------ > > >>> > > >>> > > >>> > > >> > > > > > > > > > > > > ------------ --------- --------- ------ > > > > > > > > > > > > > > ------------ --------- --------- ------ > > > > -- > > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > __________________________________________________________ > > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbuscados.yahoo.com > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> ____________________________________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]