|
Postada em 05/10/2005 00:25 hs
Em primeiro lugar gostaria de agradecer o Donkey e o Vaca pela dica, más ainda estou encontrando dificuldade para terminar o script porque eu quase não trabalhei com este tipo de captura de string. Consegui com as dicas recuperas apenas o valor, eliminando o resto da linha, más só consegui o resultado da primeira linha. Passei o dia tentando mais ainda não consegui pegar os valores de todas as linhas e soma-las. Para relembrar o caso é o seguinte: Tenho um texto e preciso apanhar apenas os valores e soma-los. aqui vai um exemplo: (este texto esta em um text box) 02 - 40,00 - Troca de velas 02 - 30,00 - troca de filtro 04 - 55,00 - Venda de pneu 10 - 60,00 - Reparo Amortecedor os dois primeiros numeros são o dia do mês, eu não preciso destes dados. depois do dia do mês vem os valores dos serviços e eu preciso destes dados. e depois vem a descrição do serviço e eu não preciso destes dados. Eu gostaria de pegar apenas os valores de cada linha e soma-los. A quantidade de linhas não é padrão, depende de quantos serviços será feito no mês. Caso alguêm possa me ajudar a pegar os valores de todas as linhas e soma-las, agradeço muito porque eu ainda não tenho muita prática com string. Agradeço antecipadamente.
|
|
|
|
|
Postada em 05/10/2005 08:27 hs
dim Tudo as variant dim linhas as variant dim soma as double tudo = split(nometextbox,chr(13)) for i% = 0 to ubound(tudo) - 1 linhas = split(tudo(i%),"-") soma = soma + cdbl(linhas(1)) next i% msgbox soma
|
|
|
|
Postada em 05/10/2005 14:10 hs
Edinho Eu fiz uma rotina meio na correria, talvez você consiga melhorá-la, mais ela funciona... Contanto que SEMPRE esteja nesta configuração Dia - Valor - Produto Dim enter As Integer, texto As String, inicio As Integer, traco1 As Integer, traco2 As Integer Dim valor As Double inicio = 1 enter = InStr(inicio, Text1.Text, Chr(13)) texto = Text1.Text While enter > 0 texto = Mid(Text1.Text, inicio, enter - inicio) traco1 = InStr(inicio, Text1.Text, "-") traco2 = InStr(traco1 + 1, Text1.Text, "-") valor = valor + Trim(Mid(Text1.Text, traco1 + 1, traco2 - (traco1 + 1))) inicio = enter enter = InStr(inicio + 1, Text1.Text, Chr(13)) Wend MsgBox valor
Gustavo Boese
|
|
|
|
Postada em 05/10/2005 14:21 hs
se naum funcionar com chr(13) tenta chr(13) + chr(10)
"Quando estou fraco, aí então é que sou Poderoso"
|
|
|
|
Postada em 05/10/2005 16:26 hs
estou com o mesmo problema, só que é uma tabela access e o campo esta configurado para "memorando", pois ele foi importado de um arquivo texto cujas strings que começam com o numero "4" são concatenadas neste campo, abaixo tem o modo como ficaram: 111,00 151,00 151,00 151,00 151,00 a quantidade varia....não estou conseguindo somá-los, estou usando o vb6 para importar os dados para esta tabela, se alguem tiver alguma sugestão, agradeço luiz
|
|
|
|
Postada em 06/10/2005 00:13 hs
Pessoal, agora ficou certo, só faltava isto para meu projeto ficar prontp! Agradeço a todos pela ajuda! 
|
|
|
|