Código de Barras ( Intepretação )
Olá amigos delphianos !
Bom, eu consegui fazer com que o leitor optico jogue a sequencia de numeros dentro de um edit. mas estou com problemas ! Tomemos como exemplo a seguinte linha de números :
00194.41997 40000.072005 09082.005217 2 2863000001206
Bom , eu já consegui extrair daí o código do banco e o valor , mas estou com problemas ! Como faço para extrair a data de vencimento do boleto ? E como formatar o campo valor , pois está aparecendo somente 000001206 !!! e eu quero que aparece 12,06 !!! Ah ! E a data , se alguém souber da onde tira .... como fazer pra formatar ela tb !!! 09/08/2005 = vencimento do boleto que eu digitei acima ... !!!
Valeu galera !!!
Bom, eu consegui fazer com que o leitor optico jogue a sequencia de numeros dentro de um edit. mas estou com problemas ! Tomemos como exemplo a seguinte linha de números :
00194.41997 40000.072005 09082.005217 2 2863000001206
Bom , eu já consegui extrair daí o código do banco e o valor , mas estou com problemas ! Como faço para extrair a data de vencimento do boleto ? E como formatar o campo valor , pois está aparecendo somente 000001206 !!! e eu quero que aparece 12,06 !!! Ah ! E a data , se alguém souber da onde tira .... como fazer pra formatar ela tb !!! 09/08/2005 = vencimento do boleto que eu digitei acima ... !!!
Valeu galera !!!
Tiagojmilam
Curtidas 0
Respostas
Cirilo
03/08/2005
Tiago,
Uma observação: Leitores de cheques podem enviar o código de barras em 2 formatos:
1)String com 44 números ( o contéudo exato da barra )
2)String com 47 números ( o contéudo da barra mais 3 dígitos )
(a sequencia dos campos é totalmente diferente)
No seu exemplo são de 47 números
00194.41997 40000.072005 09082.005217 2 [b:268b02d331]2863[/b:268b02d331]000001206
destaquei o fator de vencimento:
2863
para converter em data
considere 07/10/1997 como 0 e some o fator = data de vencimento
07/10/1997 + 2863 = 09/08/2005
{Pegar o vencimento da linha digitavel}
function GerarVencto(sLinha1: ShortString): TDateTime;
var iFator: Integer;
dDataIni: TDateTime;
begin
dDataIni:=StrtoDate(´07/10/1997´);
sLinha1:=SomenteNumeros(sLinha1);
iFator :=StrToInt(copy(sLinha1,34,4));
Result:=dDataIni + iFator;
end;
Ps: isto vale para boleto tipo cobrança, tipo arrecadação(Gás,Luz, água) é totalmente diferente.
http://www.veloso.adm.br
ferramentas para webmasters e programadores
Uma observação: Leitores de cheques podem enviar o código de barras em 2 formatos:
1)String com 44 números ( o contéudo exato da barra )
2)String com 47 números ( o contéudo da barra mais 3 dígitos )
(a sequencia dos campos é totalmente diferente)
No seu exemplo são de 47 números
00194.41997 40000.072005 09082.005217 2 [b:268b02d331]2863[/b:268b02d331]000001206
destaquei o fator de vencimento:
2863
para converter em data
considere 07/10/1997 como 0 e some o fator = data de vencimento
07/10/1997 + 2863 = 09/08/2005
{Pegar o vencimento da linha digitavel}
function GerarVencto(sLinha1: ShortString): TDateTime;
var iFator: Integer;
dDataIni: TDateTime;
begin
dDataIni:=StrtoDate(´07/10/1997´);
sLinha1:=SomenteNumeros(sLinha1);
iFator :=StrToInt(copy(sLinha1,34,4));
Result:=dDataIni + iFator;
end;
Ps: isto vale para boleto tipo cobrança, tipo arrecadação(Gás,Luz, água) é totalmente diferente.
http://www.veloso.adm.br
ferramentas para webmasters e programadores
GOSTEI 0