Duvidas com codigo de custo

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Duvidas com codigo de custo

Mensagem 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]
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: Duvidas com codigo de custo

Mensagem 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
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem 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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem 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
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

Velho pra caramba

Mensagem por Netavin »

... Malígno, você tá muito novo ainda rapaz!! Essa é do tempo em que o Mal Deodoro ainda era cabo.

[]´s

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem 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 ??
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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 ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem 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()??
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem 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.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem por Gilberto M Silva »

Eu sei que é do tempo de se defecar dicoca, mais o dito cujo quer assim!!!
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem 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.
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Mensagem 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
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Responder