Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

Ler valores únicos de uma string

Recommended Posts

To procurando no fórum mas ainda não achei exatamente o que preciso.

 

Preciso percorrer uma string (que já está pronta) onde há valores repetidos, filtrar e

passar cada um deles (sem duplicidade) para uma variável (que terá que ser um array acredito eu).

 

Ilustração:

 

A string é exatamente assim (com vírgulas)

var_string (4,4,4,5,5,5,5,5,6,6,6,7,8,9,9,9,10,)

 

Preciso percorrer, pegar um "exemplar" de cada valor e passar para uma variável (talvez um array).

 

var1= 4

var2= 5

var3= 6

var4= 7

var5= 8

var6= 9

var7= 10

 

Se alguém tiver algum link do fórum tb pode mandar. Pq como disse, estou procurando mas ainda não achei.

 

Brigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

procure também sobre o método Bubble-sort

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabiano vc vai tem que criar outra variável para acumular os valores lidos e quando for ler os próximos faça uma condicional com o instr sendo igual a zero vc faz senão pula... se precisar faço um exemplo mas agora estou no tablet é horrível de escrever...

Compartilhar este post


Link para o post
Compartilhar em outros sites

o melhor é armazenar em um txt (terá muito mais capacidade e manipulação), e use o Split do mesmo jeito só que no conteúdo do txt

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Gustavo. Se puder postar um exemplo ficarei muito agradecido.

To travado nisso. Isso será para construir toda a navegação do site, que será em até quatro níveis.

Por isso, como há uma hierarquia, os itens (principalmente os do primeiro nível de navegação) acabam se repetindo muitas vezes.

 

Muito brigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

xan para eu chegar num txt terei que tratar a variável para depois salvar o txt para depois eu ler o txt pra que o melhor e mais rápido é fazer direto na variável veja:

 

como eu não sei se sua var_string é fixa ou pode ter mais vou fazer ... um split e transformar em outro split só que sem as repetições

 

Dim var_string, vet, var
var_string = "4,4,4,5,5,5,5,5,6,6,6,7,8,9,9,9,10,"
vet = Split(var_string, ",")
For i = 0 To UBound(vet) - 1
If InStr(var, vet(i)) = 0 Then
var = var & vet(i) & ","
End If
Next
'exemplo de pegar o primeiro valor
response.write Split(var, ",")(0)
'exemplo de pegar o último valor
ultimoIndice = Ubound(Split(var, ","))-1
response.write Split(var, ",")(ultimoIndice)

sucesso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

se a variável ficar muito grande eu aconselho o txt, pois tenho alguns retorno que vem nesse formato, ou preciso jogar várias informações ( ou até mesmo algumas bad-words) e acaba ficando muito grande para uma string

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Gustavo! Já to aqui pulando de alegria pra resolver esse abacaxi kkk

Rodei aqui e notei que pega o primeiro e o último valor.

 

Preciso chegar nesta visualização. Exibindo todos os valores da string. Mas sem as duplicidades.

 

var1= 4

var2= 5

var3= 6

var4= 7

var5= 8

var6= 9

var7= 10

 

Veja, tenho todos os valores existentes na minha string. Mas sem a repetição.

O tamanho da string pode variar.

 

 

Brigaaaaado!


se a variável ficar muito grande eu aconselho o txt, pois tenho alguns retorno que vem nesse formato, ou preciso jogar várias informações ( ou até mesmo algumas bad-words) e acaba ficando muito grande para uma string

xanburzum, entendi o que falou.

Embora minha variável não seja fixa, ela terá apenas uns 100 itens.

Acho que dá pra fazer assim mesmo, né? Direto na variáve

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, não tendo muita coisa em uma variável simples dá. Existem outros tópicos em como exibir os valores sem duplicidade, dá uma procurada no fórum vai te ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabiano como mencionou o tamanho não é fixo por isso não poderá definir tais valores em variáveis declaradas como var1, var2...var7 por isso que vetorizei sua variável var_string removi as duplicatas e vetorizei novamente que nesse caso o que aumenta é o índice do vetor ...quando exemplifiquei com o primeiro e o ultimo foi para mostrar que o var1 seria var(0) pois os índices de vetores começam no 0(zero) não no 1... para resgatar esses valores seria somente no loop for ... que ficaria assim

 

For i = 0 to ultimoindice

 

Qualquer dúvida é só postar

Compartilhar este post


Link para o post
Compartilhar em outros sites

imagine seu array assim

array(0) = "9"
array(1) = "2"
array(2) = "3"
array(3) = "2"
array(4) = "1"

for i=0 to UBOUND(array)
if InStr("*" & resultado,array(i))=0 then
resultado = resultado & array(i) & "*"
end if
next

mostra = split(resultado,"*")
limite = UBOUND(mostra)

for l=0 to limite
response.write(mostra(l)&"<br/>")
next

Compartilhar este post


Link para o post
Compartilhar em outros sites

é a mesma lógica... isso pode ser feito de várias maneira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rsrs... só que foi praticamente a mesma coisa sendo o seu resultado minha vet o seu mostra é o meu var o seu limite é o meu último índice e vc definiu o separador como o asterisco e eu defini a virgula ... só mudou as variáveis... até o instr para comparar foi usado... desculpe mas parece que trocou laranja por tangerina mas tudo é fruta... mas valeu a ajuda o Fabiano agradece...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é "amigo", como falei a lógica é a mesma, nem tinha reparado em seu code,....mas imagine a situação, onde devemos fazer uma operação de SELECT no banco, praticamente todos farão parecido, usando SELECT, se a lógica estiver correta... o code lhe parecerá bem semelhante

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fabiano como mencionou o tamanho não é fixo por isso não poderá definir tais valores em variáveis declaradas como var1, var2...var7 por isso que vetorizei sua variável var_string removi as duplicatas e vetorizei novamente que nesse caso o que aumenta é o índice do vetor ...quando exemplifiquei com o primeiro e o ultimo foi para mostrar que o var1 seria var(0) pois os índices de vetores começam no 0(zero) não no 1... para resgatar esses valores seria somente no loop for ... que ficaria assim

 

For i = 0 to ultimoindice

 

Qualquer dúvida é só postar

Boa tarde, Gustavo!

 

Tentei isso

For i=0 to ultimoIndice
  response.write Split(var, ",")(ultimoIndice)
  Next

Só pegou o primeiro valor, 4.

 

Tá faltando alguma coisa no meu loop... não sei o quê

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.