ai tem todos os boletos pra quse todos os bancos: http://www.boletophp.com.br/
2008/11/25 Rodrigo Alex Marchiori <[EMAIL PROTECTED]> > Bom dia espero que ajude > > Para o código de barras é: > > if bacnco='237' then > > begin > > { > > Campo 1 - composto pelo código do banco, código da moeda + "9" > fixo + as quatro primeiras posiçoes > > do campo livre e DV (modulo10) desse campo > > } > > Codigo:=GerarBarra; > > //Codigo:=b; > > p1 := Copy(Codigo,1,4); > > p2 := Copy(Codigo,20,5); > > p3 := Modulo10(p1+p2); > > p4 := p1+p2+p3; > > p5 := Copy(p4,1,5); > > p6 := Copy(p4,6,5); > > Campo1 := p5+'.'+p6; > > { > > Campo 2 - composto pelas posiçoes 6 a 15 do campo livre > > e DV (modulo10) deste campo > > } > > p1 := Copy(Codigo,25,10); > > p2 := Modulo10(p1); > > p3 := p1+p2; > > p4 := Copy(p3,1,5); > > p5 := Copy(p3,6,6); > > Campo2 := p4+'.'+p5; > > { > > Campo 3 - composto pelas posicoes 16 a 25 do campo livre > > e DV (modulo10) deste campo > > } > > p1 := Copy(Codigo,35,10); > > p2 := Modulo10(p1); > > p3 := p1+p2; > > p4 := Copy(p3,1,5); > > p5 := Copy(p3,6,6); > > Campo3 := p4+'.'+p5; > > { > > Campo 4 - digito verificador do codigo de barras > > } > > Campo4 := Copy(Codigo,5,1); > > { > > Campo 5 - composto pelo valor nominal do documento, sem indicacao > > de zeros a esquerda e sem edicao (sem ponto e virgula). Quando se > > tratar de valor zerado, a representacao deve ser 000 (tres zeros). > > } > > Campo5 := Copy(Codigo,6,14); > > Result := Campo1 + ' ' + Campo2 + ' ' + Campo3 + ' ' + Campo4 + ' > ' + Campo5; > > End; > > Digito verificador do nosso número: > > function Modulo11(Valor1: String; Base: Integer; Resto1 : boolean) : > string; > > { > > Rotina muito usada para calcular dígitos verificadores > > Pega-se cada um dos dígitos contidos no parâmetro VALOR, da direita para > a > > esquerda e multiplica-se pela seqüência de pesos 2, 3, 4 ... até BASE. > > Por exemplo: se a base for 9, os pesos serao 2,3,4,5,6,7,8,9,2,3,4,5... > > Se a base for 7, os pesos serao 2,3,4,5,6,7,2,3,4... > > Soma-se cada um dos subprodutos. > > Divide-se a soma por 11. > > Faz-se a operaçao 11-Resto da divisao e devolve-se o resultado dessa > operaçao > > como resultado da funçao Modulo11. > > Obs.: Caso o resultado seja maior que 9, deverá ser substituído por 0 > (ZERO). > > } > > var > > Soma : integer; > > Contador, Peso, Digito : integer; > > Begin > > If banco = 237 Then > > begin > > // Base := 7; > > Resto1:=False; > > Soma := 0; > > Peso := 2; > > for Contador := Length(Valor1) downto 1 do > > begin > > Soma := Soma + (StrTolInt(Copy(Valor1,Contador,1)) * > Peso); > > //Mostra((Copy(Valor1,Contador,1))+' x > '+Floattostr(Peso)); > > if (Peso < Base) and (Peso >= 2) then > > Peso := Peso + 1 > > else > > Peso := 2; > > end; > > if Resto1 then > > Result := IntToStr(Soma mod 11) > > else > > begin > > Digito := ( Soma * 10 ) mod 11; > > if base = 7 then > > if (Digito > 9) then > > result:='P' > > else > > Result := IntToStr(Digito); > > if base = 9 then > > if (Digito > 9) or (Digito = 0) then > > begin > > Digito := 1; > > Result := IntToStr(Digito); > > end > > else > > begin > > result:=inttostr(digito); > > end; > > // mostra(formatfloat('##',digito)); > > end; > > end; > > end; > > De: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> [mailto: > delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>] Em > nome de rzzanatta > Enviada em: terça-feira, 25 de novembro de 2008 09:35 > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Assunto: [delphi-br] Boleto Bradesco. > > > olá alguem aí ja fez o boleto bancario do bradesco? estou com problemas > pra calcular o digito verificador do codigo de barras...no manual é > muito confuso... > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Atenciosamente, Paulo Coutinho. Site: www.prsolucoes.com Msn: [EMAIL PROTECTED] Skype: paulo.prsolucoes [As partes desta mensagem que não continham texto foram removidas]