Código de Barras Leitura
Bom dia galera do fórum
Pesquisei mas não obtive exito.
É o seguinte, vocês já se depararam com aquelas etiquetas impressas das balanças filizola e toledo, que imprimem o código do produto e o valor, gerando assim um código de barra único.
Acontece que eu não tenho a minima idéia de como ler esta informação, pois vem tudo junto o código do produto mais o valor.
Tipo 000938892890
Produto 93889
Valor 2,89
Como fazer para ler esta imformação em um sitema de pdv, construi a função que faz a multiplicação de produtos pelo mesmo codigo de barra, isto agiliza, mas não é o meu caso que necessito.
Quem quizer posso passar o código.
Funciona assim
2*7895874545412
Ele pega o código do produto, localiza no BD e encontrando, pega o valor do produto e multiplica no caso por 2, funfa normal,
Agora se alguem puder me ajudar na rotina (sobe) eu agradeço e muito.
Grato a todos
Valnei
Pesquisei mas não obtive exito.
É o seguinte, vocês já se depararam com aquelas etiquetas impressas das balanças filizola e toledo, que imprimem o código do produto e o valor, gerando assim um código de barra único.
Acontece que eu não tenho a minima idéia de como ler esta informação, pois vem tudo junto o código do produto mais o valor.
Tipo 000938892890
Produto 93889
Valor 2,89
Como fazer para ler esta imformação em um sitema de pdv, construi a função que faz a multiplicação de produtos pelo mesmo codigo de barra, isto agiliza, mas não é o meu caso que necessito.
Quem quizer posso passar o código.
Funciona assim
2*7895874545412
Ele pega o código do produto, localiza no BD e encontrando, pega o valor do produto e multiplica no caso por 2, funfa normal,
Agora se alguem puder me ajudar na rotina (sobe) eu agradeço e muito.
Grato a todos
Valnei
Objetivacreator
Curtidas 0
Respostas
Wanderok
25/03/2008
1) desmembrar do string lido a parte PRODUTO e a parte VALOR (funcao COPY)
2) Inserir ponto decimal (vírgula) na parte VALOR
3) Converter o substring VALOR em FLOAT;
BEGIN
vLido := ´000938892890´;
vProduto:= TiraZeros(Copy(vLido,1,8));
vValor := MontaValor(Copy(vLido,9,12);
END;
function TiraZeros(pFrase:String):String;
var vSemZeros:String;
i : integer;
begin
vSemZeros:=´´;
for i := 1 to length(pFrase);
if pFrase[i] <> ´0´ then
vSemZeros := pFrase[i]+vSemZeros;
result := vSemZeros;
end;
function MontaValor(pValor:String):Float;
begin
try
result := StrToFloat(Copy(pValor,1,lenth(pValor-3)) + ´,´ + Copy(pValor,lenth(pValor-2)),lenth(pValor)));
except
result := 0;
end;
end;
2) Inserir ponto decimal (vírgula) na parte VALOR
3) Converter o substring VALOR em FLOAT;
BEGIN
vLido := ´000938892890´;
vProduto:= TiraZeros(Copy(vLido,1,8));
vValor := MontaValor(Copy(vLido,9,12);
END;
function TiraZeros(pFrase:String):String;
var vSemZeros:String;
i : integer;
begin
vSemZeros:=´´;
for i := 1 to length(pFrase);
if pFrase[i] <> ´0´ then
vSemZeros := pFrase[i]+vSemZeros;
result := vSemZeros;
end;
function MontaValor(pValor:String):Float;
begin
try
result := StrToFloat(Copy(pValor,1,lenth(pValor-3)) + ´,´ + Copy(pValor,lenth(pValor-2)),lenth(pValor)));
except
result := 0;
end;
end;
GOSTEI 0
Wanderok
25/03/2008
[size=24:51b3452e4f][color=red:51b3452e4f][b:51b3452e4f]Editando !!![/b:51b3452e4f][/color:51b3452e4f][/size:51b3452e4f]
vProduto:= TiraZeros(Copy(vLido,1,8);
vProduto:= TiraZeros(Copy(vLido,1,8);
GOSTEI 0
Wanderok
25/03/2008
[size=24:194f52f098][color=red:194f52f098][b:194f52f098]Editando Novamente!!![/b:194f52f098][/color:194f52f098][/size:194f52f098]
vProduto:= TiraZeros(Copy(vLido,1, 8 ); (mas que coisa :D:D:D)
vProduto:= TiraZeros(Copy(vLido,1, 8 ); (mas que coisa :D:D:D)
GOSTEI 0
Murillo.cg
25/03/2008
function TiraZeros(pFrase:String):String;
var vSemZeros:String;
i : integer;
begin
vSemZeros:=´´;
for i := 1 to length(pFrase);
if pFrase[i] <> ´0´ then
vSemZeros := pFrase[i]+vSemZeros;
result := vSemZeros;
end;
para não inverter:
vSemZeros := vSemZeros + pFrase[i];
GOSTEI 0
Wanderok
25/03/2008
[quote:b1e3a20070=´wanderok´]
function TiraZeros(pFrase:String):String;
var vSemZeros:String;
i : integer;
begin
vSemZeros:=´´;
for i := 1 to length(pFrase);
if pFrase[i] <> ´0´ then
vSemZeros := pFrase[i]+vSemZeros;
result := vSemZeros;
end;
[b:b1e3a20070]Exatamente !!!![/b:b1e3a20070] :D:D:D
GOSTEI 0
Wanderok
25/03/2008
para não inverter:
vSemZeros := vSemZeros + pFrase[i];
[size=24:e24f6b2f96][color=red:e24f6b2f96][b:e24f6b2f96]EDITANTO DE FORMA INTELIGENTE !!!![/b:e24f6b2f96][/color:e24f6b2f96][/size:e24f6b2f96]
[b:e24f6b2f96]Exatamente !!!! ESTE E NAO O OUTRO.[/b:e24f6b2f96] :D:D:D
QUEM ESTÁ CERTO É O MURILLO !!!!!
EU INVERTI .
O CORRETO É
[color=blue:e24f6b2f96][b:e24f6b2f96]vSemZeros := vSemZeros + pFrase[i];[/b:e24f6b2f96][/color:e24f6b2f96]
GOSTEI 0