Página 1 de 2

Duvidas com codigo de custo

Enviado: 29 Mar 2007 12:07
por Gilberto M Silva
Olá pessoal,
estou com um nó q pra mim tá difícil de desatar. eh o seguinte: tenho q transformar uma variavel tipo string com letras em numérico ex:

C A J U E I R O S X
1 2 3 4 5 6 7 8 9 0

Cada letra corresponde a um número, ex: transformar "CJU,SX)" para 134,90, isso quando o usuário digitar o codigo de custo o sistema transformar em numérico e armazenar em um arquivo. Alguem tem ideia como faço isso?

no aguardo,
Gilberto Silva[/b]

Re: Duvidas com codigo de custo

Enviado: 29 Mar 2007 12:16
por Maligno
Gilberto M Silva escreveu:C A J U E I R O S X
1 2 3 4 5 6 7 8 9 0
Isso é coisa do tempo do guaraná com rolha. Na primeira vez que vi isso tinha 15 anos. Faz tempo! :))))
Mas a palavra que usávamos era CHUMBEIROS. Sem vírgula.

Felizmente não é coisa complicada. Para decodificar: traduza a palavra para uma string de números, converta essa string em número e divida-o por 100. Para codificar é só fazer o inverso.

[]'s
Maligno
http://www.buzinello.com/prg

Enviado: 29 Mar 2007 18:07
por Eolo
como fazer calculo com a hora?
Ex: hor1 := time()
hor2 := time()
hor3 := hor2 - hor1
Gilberto,
Você colocou a pergunta meio "escondida", quase não deu pra perceber... Bom, não sei se já tem alguma solução no forum, mas vou abrir um novo tópico a respeito, "Cálculo de Intervalo de Tempo".

Eolo

Enviado: 29 Mar 2007 21:57
por Toledo
Gilberto, segue abaixo um exemplo do que você pode fazer:

Código: Selecionar todos

cVar:="CJU,SX"

nVlr:=CTOV(cVar)


PROC CTOV(cVar)
LOCAL cRet:=""
cLetras:="CAJUEIROSX"
FOR i=1 TO LEN(cVar)
 IF SUBS(cVar,i,1)=","
   cRet+="."
 ELSE
   cRet+=RIGHT(STR(AT(SUBS(cVar,i,1),cLetras),1,0),1)
 ENDIF
NEXT
RETU VAL(cRet)
Abraços,

Enviado: 29 Mar 2007 22:00
por Maligno
Eolo escreveu:Você colocou a pergunta meio "escondida", quase não deu pra perceber...
Pois só agora que você falou que fui reparar. Nunca vi ninguém postando pergunta na própria assinatura. Não é uma boa tática. :)))))

[]'s
Maligno
http://www.buzinello.com/prg

Enviado: 30 Mar 2007 00:14
por Maligno
Se é pra dar um exemplo de solução pro caso, tenho algo mais fácil:

Código: Selecionar todos

#define STR_LIST "CHUMBEIROS"
#define NUM_LIST "0123456789"


//********************
function Cod2Num(cStr) // supondo que cStr não contém a vírgula
return Val(STRanslate(cStr,STR_LIST,NUM_LIST))/100


//********************
function Num2Cod(nVal)
return STRanslate(LTrim(Str(nVal*100,15,2)),NUM_LIST,STR_LIST)
A função STRanslate() está num objeto disponível na minha página.

[]'s
Maligno
http://www.buzinello.com/prg

Enviado: 09 Dez 2007 11:23
por Gilberto M Silva
Função que gera preço de custo a partir do Código de custo
cVar:="CJU,SX"

nVlr:=CTOV(cVar)


PROC CTOV(cVar)
LOCAL cRet:=""
cLetras:="CAJUEIROSX"
FOR i=1 TO LEN(cVar)
IF SUBS(cVar,i,1)=","
cRet+="."
ELSE
cRet+=RIGHT(STR(AT(SUBS(cVar,i,1),cLetras),1,0),1)
ENDIF
NEXT
RETU VAL(cRet)
Para fazer o contrário o usuário digita 0 Preço de Custo e o sistema gerar o código de custo?? o que tenho que mudar nesta função()?? :)Pos

Velho pra caramba

Enviado: 10 Dez 2007 17:16
por Netavin
... Malígno, você tá muito novo ainda rapaz!! Essa é do tempo em que o Mal Deodoro ainda era cabo.

[]´s

Netavin

Enviado: 10 Dez 2007 18:32
por Augusto
Eu já conheço como "PERNAMBUCO"... vai saber...
Mas no mesmo processo do Maligno...
Eolo escreveu:Gilberto,
Você colocou a pergunta meio "escondida", quase não deu pra perceber... Bom, não sei se já tem alguma solução no forum, mas vou abrir um novo tópico a respeito, "Cálculo de Intervalo de Tempo".
Maligno escreveu:Pois só agora que você falou que fui reparar. Nunca vi ninguém postando pergunta na própria assinatura. Não é uma boa tática.
Caraca !!!! Não entendi nada... parece papo de maluco... Dá prá alguem me explicar ??

Enviado: 10 Dez 2007 18:40
por Pablo César
Resulta que o colega tinha feito a sua pergunta onde normnalmente é definida a assinatura dos usuários daqui do fórum (no perfil dele). Depois ele corrigiu. Augusto, você ja viu o nosso chat em https://pctoledo.org/forum/chat.php ?

Enviado: 10 Dez 2007 18:59
por Gilberto M Silva
cVar:="CJU,SX"

nVlr:=CTOV(cVar)


PROC CTOV(cVar)
LOCAL cRet:=""
cLetras:="CAJUEIROSX"
FOR i=1 TO LEN(cVar)
IF SUBS(cVar,i,1)=","
cRet+="."
ELSE
cRet+=RIGHT(STR(AT(SUBS(cVar,i,1),cLetras),1,0),1)
ENDIF
NEXT
RETU VAL(cRet)



E Aé, Para fazer o contrário, o usuário digita 0 Preço de Custo e o sistema gerar o código de custo! o que tenho que mudar nesta função()??

Enviado: 10 Dez 2007 19:03
por Gilberto M Silva
É o seguinte, O cliente tem 3 terminais de frente de loja e não quer que os clientes dele veja o preço de custo do produto, o vendedor precisa saber o custo médio do produto para poder dá um desconto maior para os clientes Vip, então ele quer que fique na tela o codigo de custo, que só o vendedor saberá o valor do custo.

Enviado: 10 Dez 2007 19:05
por Gilberto M Silva
Eu sei que é do tempo de se defecar dicoca, mais o dito cujo quer assim!!!

Enviado: 10 Dez 2007 19:10
por Gilberto M Silva
O Toledo postou este exemplo onde digita-se o código e gera o preço de custo estou querendo o contrário digita-se o preço de custo e gera o codigo de custo. Gostaria de saber o que tenho que mudar nesta função.

Enviado: 11 Dez 2007 13:16
por Gilberto M Silva
//********************
function Cod2Num(cStr) // supondo que cStr não contém a vírgula
return Val(STRanslate(cStr,STR_LIST,NUM_LIST))/100


//********************
function Num2Cod(nVal)
return STRanslate(LTrim(Str(nVal*100,15,2)),NUM_LIST,STR_LIST)


A função STRanslate() está num objeto disponível na minha página.
Ô Maligno em que objeto encontra-se disponível esta função??? obg. :-O