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]

Responder a