galera,
sei q eh meio que off topic mas acho q alguem poderia me passar o segredo do
codigo de barras em boleto bancario.

abaixo esta o meu servlet q retorna um codigo de barras onde
codigo de barras = x + dvMod11(x)
http://164.41.67.135/servlets/BarCodeServlet?x=510646565000000090

eu ja´ peguei a documentacao do banco do brasil e tambem a documentacao da
febraban, mas nao estou entendendo bulhufas em como implementar aquele
numero gigantesco que fica ao lado da logo do banco.
ex: 00199.1388 90000.000001 00913.889218 2 12980000003200
alguem pode me dizer como eu crio este numero?

de brinde mando minha classe que calcula digitos para modulo 10 e 11.
se ela estiver errada me reportem


package uni.duni.te;

public class DigitoVerificador {

  /**
   * Constructor
   */
  public DigitoVerificador() {
  }

   // comente o main. ele soh serve para testar a classe.
  public static void main(String[] args) {
    DigitoVerificador teste= new DigitoVerificador();
 long volta = 0;

    volta=teste.CalculaModulo11("32198798798798798798798798377778759");
    System.out.println("Mod11 de 32198798798798798798798798377778759");
    System.out.println("o resultado e "+volta);


volta=teste.CalculaModulo11("20097987987987987777779879879876575765765170000
01");
    System.out.println("Mod11 de
2009798798798798777777987987987657576576517000001");
    System.out.println("o resultado e "+volta);

 volta=teste.CalculaModulo11("20017000002");
    System.out.println("Mod11 de 20017000002");
    System.out.println("o resultado e "+volta);



volta=teste.CalculaModulo10("8220000215048200974123220154098290108605940");
    System.out.println("Mod10 de
8220000215048200974123220154098290108605940");
    System.out.println("o resultado e "+volta);
  }


  public long CalculaModulo11(String Entrada){
      long Soma=0;
      long multi=2;
      long Saida=0;
      int tamanho=Entrada.length()-1;

      long Resto;

      while(tamanho >= 0){
        //System.out.println("numero"+Entrada.charAt(tamanho)+" de index
"+tamanho);
        Soma=Soma+(Long.parseLong(String.valueOf(Entrada.charAt(tamanho)))*
multi);
        //System.out.println("a soma e "+Soma);
        multi=multi+1;
        tamanho=tamanho-1;
        if(multi==10)
        multi=2;
      }
      Resto=Soma%11;
      if( Resto==0 || Resto==1)
      Saida=0;
      else
      Saida=11-Resto;
      return Saida;
  }


  public long CalculaModulo10(String Entrada){
      long Soma=0;
      long multi=2;
      long Saida=0;
      int tamanho=Entrada.length()-1;
      long inttemp;
      long Resto;

      while(tamanho >= 0){
        //System.out.println("numero"+Entrada.charAt(tamanho)+" de index
"+tamanho);

inttemp=Long.parseLong(String.valueOf(Entrada.charAt(tamanho)))*multi;

        if(inttemp>=10)
        inttemp=inttemp-9;
        Soma=Soma+inttemp;
        //System.out.println("a soma e "+Soma);
        multi=multi-1;
        tamanho=tamanho-1;
        if(multi==0)
        multi=2;
      }
      Resto=Soma%10;
      Saida=10-Resto;
      return Saida;
  }


}




------------------------------ LISTA SOUJAVA ---------------------------- 
http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP 
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED] 
-------------------------------------------------------------------------

Responder a