LOCALIZAR N¬šÃ€ŠÃ‚º NO MEIO DE UMA STRING
Prezados Companheiros:
O registro de um campo de uma tabela minha retorna a seguinte string
"bombona de 50 kg" ou
"tambor de 208,65 kg"
Como eu preciso fazer um cálculo (exemplo 1500 / 50), preciso pegar somente os números p/ fazer esta divisão.
Alguém tem alguma sugestão de como fazer isto ?
Existe algum função que retorne algo parecido com
O caracter da posição tal é um número ?
Grato
O registro de um campo de uma tabela minha retorna a seguinte string
"bombona de 50 kg" ou
"tambor de 208,65 kg"
Como eu preciso fazer um cálculo (exemplo 1500 / 50), preciso pegar somente os números p/ fazer esta divisão.
Alguém tem alguma sugestão de como fazer isto ?
Existe algum função que retorne algo parecido com
O caracter da posição tal é um número ?
Grato
Sequencia = mid(String,Posicao,Tamanho)
Você pode fazer o seguinte:
Vc deve ter o cuidado de guardar também as vÃrgulas, incrementando o código acima. qualquer coisa é so falar...
Você pode fazer o seguinte:
for i = 1 to len(produto)
Algarismo = mid(produto,i,1)
if isnumeric(algarismo) then
numero = numero & algarismo
end if
Vc deve ter o cuidado de guardar também as vÃrgulas, incrementando o código acima. qualquer coisa é so falar...
Olá,
Se bem entendi pelo seu exemplo, vc precisa pegar o Valor 50 para então dividir por outro valor, certo?
Ser for assim, vc pode usar a função Mid$
String:
variavel = Mid$(variavel, 0,0)
O primeiro 0 - representa o número de casas que vc quer pegar, 1,2,3... etc...
O segundo 0 - representa o número de casas, a partir de que ponto o sistema irá pegar o valor desejado, da direita para a esquerda.
Caso vc não tenha uma valor padrão deixar definido, vc pode criar variáveia dentro de um do while, fazendo a identificação dos valores para então fazer as contas depois.
Espero ter ajudado.
Sds,
PlÃnio
Se bem entendi pelo seu exemplo, vc precisa pegar o Valor 50 para então dividir por outro valor, certo?
Ser for assim, vc pode usar a função Mid$
String:
variavel = Mid$(variavel, 0,0)
O primeiro 0 - representa o número de casas que vc quer pegar, 1,2,3... etc...
O segundo 0 - representa o número de casas, a partir de que ponto o sistema irá pegar o valor desejado, da direita para a esquerda.
Caso vc não tenha uma valor padrão deixar definido, vc pode criar variáveia dentro de um do while, fazendo a identificação dos valores para então fazer as contas depois.
Espero ter ajudado.
Sds,
PlÃnio
Corrigindo e completando o código acima:
Function PegarNumero(Produto as String) as Double
For i = 1 to Len(Produto)
Algarismo = Mid(Produto,i,1)
If isnumeric(algarismo) or algarismo = "," then numero = numero & algarismo
Next
PegarNumero = Numero
End Function
Para chamar: Total = PegarNumero(Descrição)
Se sempre vier " ******** 50,53 KG"
é só retirar [ESPAÇO + KG = 3 CARACTERES] dai vem caminhando da esquerda para direita até encontrar outro espaço.
Mais Ou menos assim:
Public Function VALOR(ByVal sValor As String) As String
Dim Tmp As String
Dim I As Integer
I = 1 'Atribuindo valor ao contador
VALOR = Replace(sValor, " kg", "") 'Retirando o espaço e o Kg
Tmp = Right(VALOR, I) 'Atribuindo valor a var Tmp
While Left(Tmp, 1) <> " " 'Até encontrar o espaço
I = I + 1
Tmp = Right(VALOR, I)
Wend
VALOR = Trim(Tmp) 'retorna o valor
End Function
é só retirar [ESPAÇO + KG = 3 CARACTERES] dai vem caminhando da esquerda para direita até encontrar outro espaço.
Mais Ou menos assim:
Public Function VALOR(ByVal sValor As String) As String
Dim Tmp As String
Dim I As Integer
I = 1 'Atribuindo valor ao contador
VALOR = Replace(sValor, " kg", "") 'Retirando o espaço e o Kg
Tmp = Right(VALOR, I) 'Atribuindo valor a var Tmp
While Left(Tmp, 1) <> " " 'Até encontrar o espaço
I = I + 1
Tmp = Right(VALOR, I)
Wend
VALOR = Trim(Tmp) 'retorna o valor
End Function
essa função funciona é so passar os valores ela funciona em qualquer caso desde que observado se é valido sempre " kg" , sem ponto , porem agora é so incrementar.
Tópico encerrado , respostas não são mais permitidas