Fórum Peguem a Rotina que Gera o Código de Barras #152895

08/04/2003

0

Em nome do conhecimento, eu largo este fonte que eu achei na net, derrubando o convenconismo barato, o individualismo e o LAMMERISMO :x de certos usuários do fórum que ficam se achando só pq tem uma rotina bem simples... :twisted: :twisted: :twisted:

Aí vai pessoal

Matéria:

Desenvolvi esta rotina em uma epoca em que era muito dificil achar um componente para codigo de barras 2x5i, e os que eu achei na net nao faziam os codigos do tamanho requerido pela FEBRABAN.

a procedure abaixo desenva em um canvas o codigo relativo ao valor passado.

No evento beforeprint da band do Quick report para gerar o codigo de barras que será impresso em boletos bancarios.


Procedure CriaCodigo(Cod : String; Imagem : TCanvas);

Const
digitos : array[´0´..´9´] of string[5]= (´00110´,
´10001´,
´01001´,
´11000´,
´00101´,
´10100´,
´01100´,
´00011´,
´10010´,
´01010´);

Var
Numero : String;
Cod1 : Array[1..1000] Of Char;
Cod2 : Array[1..1000] Of Char;
Codigo : Array[1..1000] Of Char;
Digito : String;
c1,c2 : Integer;
x,y,z,h : LongInt;
a,b,c,d : TPoint;
I : Boolean;

Begin
Numero := Cod;
For x := 1 to 1000 Do
Begin
Cod1 [x] := #0;
Cod2 [x] := 0;
Codigo[x] := 0;
End;
c1 := 1;
c2 := 1;
x := 1;
For y := 1 to Length(Numero) div 2 do
Begin
Digito := Digitos[Numero[x ]]; For z := 1 to 5 do Begin Cod1[c1] := Digito[z]; Inc(c1); End;
Digito := Digitos[Numero[x+1]]; For z := 1 to 5 do Begin Cod2[c2] := Digito[z]; Inc(c2); End;
Inc(x,2);
End;

y := 5;
Codigo[1] := ´0´; Codigo[2] := ´0´; Codigo[3] := ´0´; Codigo[4] := ´0´; { Inicio do Codigo }
For x := 1 to c1-1 do
begin
Codigo[y] := Cod1[x]; Inc(y);
Codigo[y] := Cod2[x]; Inc(y);
end;
Codigo[y] := ´1´; Inc(y); { Final do Codigo }
Codigo[y] := ´0´; Inc(y);
Codigo[y] := ´0´;
Imagem.Pen .Width := 1;
Imagem.Brush.Color := ClWhite;
Imagem.Pen .Color := ClWhite;
a.x := 1; a.y := 0;
b.x := 1; b.y := 79;
c.x := 2000; c.y := 79;
d.x := 2000; d.y := 0;
Imagem.Polygon([a,b,c,d]);
Imagem.Brush.Color := ClBlack;
Imagem.Pen .Color := ClBlack;
x := 0;
i := True;
for y:=1 to 1000 do
begin
If Codigo[y] <> #0 Then
Begin
If Codigo[y] = ´0´ then h := 1 Else h := 3;
a.x := x; a.y := 0;
b.x := x; b.y := 79;
c.x := x+h-1; c.y := 79;
d.x := x+h-1; d.y := 0;
If i Then Imagem.Polygon([a,b,c,d]);
i := Not(i);
x := x + h;
End;
end;
end;


E VÃO À M-E-R-D-A SEUS ANALISTAS AMADORES E ANTI PROFISIONAIS ! DEÊM LUGAR ÀS PESSOAS QUE QUEREM CRESCER [b:f73c1bd35c]PESSOALMENTE[/b:f73c1bd35c] E PROFISSIONALMENTE ! :x :x :x

ENJOY !
JULIEN MURRAY


Julienmurray

Julienmurray

Responder

Post mais votado

26/06/2019

Escrevi essa rotina em 1993 em Turbo Pascal, por volta de 1998 passei para Delphi, achei que nunca mais iria precisar dela, hoje, em pleno 2019, depois de procura-la igual louco em meus diversos HD's de backup, resolvo procurar na internet e acho a rotina escrita por mim. Tópico de 2003! (Troféu pá de outro para mim) KKKKK

Jaques Junior

Jaques Junior
Responder

Gostei + 1

Mais Posts

08/04/2003

Julienmurray

Ah, me esqueci dos programadores LAMMERS que COPIAM (até aí tudo, até eu faço isso de vez em quando, quem naum faz ?!?) o fonte, compilam e depois Assinam em Baixo. COMPRE POR APENAS R$ 50,00 !
Pô LAMMERS, além de se acharem ´Expertos´, ainda dão uma de malandros. Vão dar de malandros em cima de seu irmãozinho mais novo que ainda é errado fazer isso.


Responder

Gostei + 0

08/04/2003

Julienmurray

VCs vaum gostar !


Responder

Gostei + 0

08/04/2003

Julienmurray

:twisted: :twisted: :twisted: :twisted: :twisted: :twisted: :twisted:
:shock: :shock: :shock: :shock: :shock: :shock:


Responder

Gostei + 0

08/04/2003

Eniorm

Valeu pela rotina e... [b:d1b0a49b3d]UP THE IRONS![/b:d1b0a49b3d]
haha, eu tbm sou da elite Maidenmaniaca!
Fui...


Responder

Gostei + 0

09/04/2003

Julienmurray

VAMO LÁ PESSOAL, NÃO É TODO DIA QUE ACONTECE ISSO ! APROVEITEM !....


Responder

Gostei + 0

09/04/2003

Hhhhhh

adaptar esse código para outros padrões de código de barra é muito complicado????


Responder

Gostei + 0

09/04/2003

Julienmurray

Vou ser bem franco contigo;

:D Não testei ainda ! :D
huahuahuahuahauhaua :D

Se vc Conseguir, imensamente agradecido.....

Julien ´Murray´


Responder

Gostei + 0

09/04/2003

Julienmurray

:shock:


Responder

Gostei + 0

09/04/2003

Julienmurray

Peguem a rotina, aproveitem

Iron Maiden´s get you !

[img:a9200a9f12]http://members.tripod.com/~mbaudino/img/nob.gif[/img:a9200a9f12]



:twisted: Julien ´Murray´ :twisted:


Responder

Gostei + 0

09/04/2003

Anonymous

adaptar esse código para outros padrões de código de barra é muito complicado????


[b:a90056d55f]Barcode Component v.1.15 FWS 17 Kb 4 Oct 1999 [/b:a90056d55f]

By Andreas Schmidt. A Free Barcode Component. Works with Code_2_5_industrial, Code_2_5_matrix, Code39, Code39Extended, Code128A, Code128B, Code128C, Code93, Code93Extended, MSI, PostNet, Codabar, EAN8, EAN13.

Fully functional
[b:a90056d55f]Source: Included[/b:a90056d55f]

http://www.torry.net/barcodes.htm


Responder

Gostei + 0

09/04/2003

Julienmurray

[quote:ed07274546=´LucasCastro´]adaptar esse código para outros padrões de código de barra é muito complicado????


[b:ed07274546]Barcode Component v.1.15 FWS 17 Kb 4 Oct 1999 [/b:ed07274546]

By Andreas Schmidt. A Free Barcode Component. Works with Code_2_5_industrial, Code_2_5_matrix, Code39, Code39Extended, Code128A, Code128B, Code128C, Code93, Code93Extended, MSI, PostNet, Codabar, EAN8, EAN13.

Fully functional
[b:ed07274546]Source: Included[/b:ed07274546]

http://www.torry.net/barcodes.htm[/quote:ed07274546]

Valeu amigão, Pessoal, este deve funcionar também !

[img:ed07274546]http://members.tripod.com/~mbaudino/img/pom.gif[/img:ed07274546]

:twisted: Julien ´Murray´ :twisted:


Responder

Gostei + 0

10/04/2003

Julienmurray

(Olhem minha dúvida por favor.... se quiserem é claro!)
Olha, posso parecer até um chato postando toda hora esta mensagem, mas pense, quem iria compartilhar um conhecimento tão importante que nem esse?

Eu fiz outra experiência(quem conhece, já sabe) e deu certo também.
Entrem em www.netfontes.com.br e procure no menu à esquerda a opção busca fonte, digite a palavra [b:7b0784f6ce]Código[/b:7b0784f6ce] e clique em [b:7b0784f6ce]Buscar[/b:7b0784f6ce].
Virá como resultado duas fontes, sendo que uma delas é a fonte do código de barras ! Dê um clique e baixe a fonte para seu computador.

Depois de instalada a fonte faça isso:

Como sabe-se de que o código de barra é reconhecido pelo sistema como n°( se for também letra, me avisem ! Obrigado !), o que se faz:
Na hora de Cadastrar um produto no sistema, registre o n° do Código de Barras, uma maneira que eu acho eficiente, e fazer uma rotina de n° aleatórios com um ´[b:7b0784f6ce]For[/b:7b0784f6ce]zinho´ .
Depois de cadastrados os n°, pronto, seu leitor de código de barras irá ler aquele código e ira procurar no banco o n°.

Mas infelizmente vai dar ERRO !

Na hora de vc fazer a rotina que gera o n°, não se esqueça de colocar um asterisco em cada ponta, para que não de erro (não sei porquê, alguém sabe?)

E depois eu venho com uma dúvida bem simples:

COMO SABE-SE DE QUE O LEITOR RECONHECE CARACTERES, COMO EU FAÇO A ROTINA DE PASSA AQUILO QUE LEU PARA UM LABEL, POR EXEMPLO?

OBRIGADO !

:twisted: Julien ´Murray´ :twisted:


Responder

Gostei + 0

10/04/2003

Anonymous

Padrão code39

Os asteriscos são identificadores de início e fim do padrão 3e9.


Responder

Gostei + 0

10/04/2003

Julienmurray

:twisted:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar