IMPORTAR STRING E ORDENAR
como conseguir, ver qual e maior, num texto separado por virgulas
exempllo
5,6,1,2,4,
pegar essa string acima
e verificar qual é menor, colocnando em uma ordem crescente
me ajudeem
falow
[txt-color=#008000]** TÃtulo Original ("ME AJUDEM") editado por KpellaJr
** Por favor, leia as Regras do Fórum [/txt-color]
[s25]
exempllo
5,6,1,2,4,
pegar essa string acima
e verificar qual é menor, colocnando em uma ordem crescente
me ajudeem
falow
[txt-color=#008000]** TÃtulo Original ("ME AJUDEM") editado por KpellaJr
** Por favor, leia as Regras do Fórum [/txt-color]
[s25]
bem... para separar é fácil...
dim Valores as String
dim Matrix() as String
Valores = ",5,6,1,2,4"
matrix = Split(sValores, ",", 99)
agora só falta fazer a lógica de ordenação
dim Valores as String
dim Matrix() as String
Valores = ",5,6,1,2,4"
matrix = Split(sValores, ",", 99)
agora só falta fazer a lógica de ordenação
agora... para sortear... tbm ficou fácil: http://www.vbmania.com.br/vbmdetail.php?varID=830
importante: note que para funcionar a função split, no inÃcio da string vc tem que ter uma vÃrgula, e no fim não. se não tiver no começo e tiver no fim, ele não pegará o primeiro número, e criará um nulo no fim...
espero ter ajudado.
espero ter ajudado.
Marcel
Bom Dia
Você abriu outro tópico com o mesmo assunto, só que na parte de ordenação, por favor leia as Regras do Fórum, começou um assunto vá até o FINAL no mesmo tópico, nunca subdivida porque no Fórum pode ficar para futura consulta, portanto tenha TÃtulos Sugestivos e siga no mesmo tópico até ter a solução, assim que tiver encerre-o
Colabore com o VBMania.
[s50]
Bom Dia
Você abriu outro tópico com o mesmo assunto, só que na parte de ordenação, por favor leia as Regras do Fórum, começou um assunto vá até o FINAL no mesmo tópico, nunca subdivida porque no Fórum pode ficar para futura consulta, portanto tenha TÃtulos Sugestivos e siga no mesmo tópico até ter a solução, assim que tiver encerre-o
Colabore com o VBMania.
[s50]
oq esta errado?
Dim numeros
Dim termo1
Dim caracter
Dim termos
Dim restante
Dim v
Dim posi
Dim termo2
Dim s
Dim menor
Dim sobra
Dim posi2
termos = Len(Text1.Text)
restante = Text1.Text
caracter = posi + 1
For v = 1 To termos + 2
'atribuir para posi a posição da primeira virgula
posi = InStr(1, restante, ",", 1)
'achar o termo1
termo1 = Mid(restante, posi - 1, posi - 1)
'atribuir para posi2 a posição da segunda virgula
posi2 = InStr(posi + 1, restante, ",", 1)
'tirar o termo1 do restante
restante = Mid(restante, posi + 1, termos)
'Do While
If termo1 < Mid(restante, 1, posi - 1) Then
'If posi2 < posi And posi2 = 0 Then
posi2 = posi - 1
'Else
'posi = InStr(posi2, restante, ",", 1)
posi2 = InStr(posi + 1, restante, ",", 1)
'End If
'sobra = Mid(restante, 1, posi - 1)
menor = termo1
'If Len(restante) <= 1 Then
' List1.AddItem = termo1
caracter = Len(restante) - posi
End If
'Loop
restante = restante & "," & termo1
List1.AddItem menor
menor = ""
If InStr(1, restante, ",", 1) = 0 Then
List1.AddItem restante
restante = 0
End If
Next
Dim numeros
Dim termo1
Dim caracter
Dim termos
Dim restante
Dim v
Dim posi
Dim termo2
Dim s
Dim menor
Dim sobra
Dim posi2
termos = Len(Text1.Text)
restante = Text1.Text
caracter = posi + 1
For v = 1 To termos + 2
'atribuir para posi a posição da primeira virgula
posi = InStr(1, restante, ",", 1)
'achar o termo1
termo1 = Mid(restante, posi - 1, posi - 1)
'atribuir para posi2 a posição da segunda virgula
posi2 = InStr(posi + 1, restante, ",", 1)
'tirar o termo1 do restante
restante = Mid(restante, posi + 1, termos)
'Do While
If termo1 < Mid(restante, 1, posi - 1) Then
'If posi2 < posi And posi2 = 0 Then
posi2 = posi - 1
'Else
'posi = InStr(posi2, restante, ",", 1)
posi2 = InStr(posi + 1, restante, ",", 1)
'End If
'sobra = Mid(restante, 1, posi - 1)
menor = termo1
'If Len(restante) <= 1 Then
' List1.AddItem = termo1
caracter = Len(restante) - posi
End If
'Loop
restante = restante & "," & termo1
List1.AddItem menor
menor = ""
If InStr(1, restante, ",", 1) = 0 Then
List1.AddItem restante
restante = 0
End If
Next
Marcel
Como o Jean Jedson indicou use o SPLIT que ele te retorna uma Matriz, é só informar o Delimitador, no caso a VÃrgula.
Não use Dim termo1 , se o termo1 for Integer, declare o TIPO CORRETO de dados, senão estará usando o Variant que degrada a performance e você declarou a todos como VAriant.
Até Breve
[s50]
Como o Jean Jedson indicou use o SPLIT que ele te retorna uma Matriz, é só informar o Delimitador, no caso a VÃrgula.
Não use Dim termo1 , se o termo1 for Integer, declare o TIPO CORRETO de dados, senão estará usando o Variant que degrada a performance e você declarou a todos como VAriant.
Até Breve
[s50]
'ja to conseguindo pegar a posição das virgulas
'e pegando os temos e tudo mais, so estou errando, na hora
'de comparar e mandar pro list...
eu ja sei a logica,me falta comandos...
como fariam isso?
'e pegando os temos e tudo mais, so estou errando, na hora
'de comparar e mandar pro list...
eu ja sei a logica,me falta comandos...
como fariam isso?
Marcel
O SPLIT é uma função do VB que já te retorna uma Matriz, use ele que verá que é fácil.
Se tu já consegue a posição das vÃrgulas então ADICIONE UM AO PONTEIRO, na InSTr, assim deve conseguir.
[s50]
O SPLIT é uma função do VB que já te retorna uma Matriz, use ele que verá que é fácil.
Se tu já consegue a posição das vÃrgulas então ADICIONE UM AO PONTEIRO, na InSTr, assim deve conseguir.
[s50]
valeu cara, mas eu preciso fazer sem usar array
apenas usando mid e instr
tem como?
^abraços
apenas usando mid e instr
tem como?
^abraços
Não! você pode usar um Array, Split e For Next... apenas isso...
Marcel, acabei de bolar um exemplo bem prático... se na string tiver o seguinte
"2,5,4,6,1"
O resultado será
Em primeiro lugar 1
Em segundo lugar 2
Em terceiro lugar 4
Em quarto lugar 5
Em quinto lugar 6
Se for "1,9,10,2"
Em primeiro lugar 1
Em segundo lugar 2
Em terceiro lugar 9
Em quarto lugar 10
...
[txt-backcolor=#ffff00]é isso que você quer? desdobrar, classificar e ordenar números em uma string?
Se for isso aqui vai o exemplo:[/txt-backcolor]
Entendeu?
Marcel, acabei de bolar um exemplo bem prático... se na string tiver o seguinte
"2,5,4,6,1"
O resultado será
Em primeiro lugar 1
Em segundo lugar 2
Em terceiro lugar 4
Em quarto lugar 5
Em quinto lugar 6
Se for "1,9,10,2"
Em primeiro lugar 1
Em segundo lugar 2
Em terceiro lugar 9
Em quarto lugar 10
...
[txt-backcolor=#ffff00]é isso que você quer? desdobrar, classificar e ordenar números em uma string?
Se for isso aqui vai o exemplo:[/txt-backcolor]
Dim valor(10) As String
Dim texto As String
Dim stexto As Variant
texto = "5,6,1,3,10"
stexto = Split(texto, ",")
For i = LBound(stexto) To UBound(stexto)
valor(stexto(i)) = stexto(i)
contador = i
Next i
For i = 1 To 10
If Not valor(i) = "" Then
MsgBox "Em " & i & "º Lugar está o N.º '" & valor(i) & "'"
End IfEntendeu?
Tópico encerrado , respostas não são mais permitidas