EXTRAIR COMBINACOES DE NUMERO

PAYDANA 12/11/2012 11:16:51
#414036
Text1.Text = [Ô]01020304050607080910[Ô]

X01 = Mid(Text1.Text, 1, 2)
X02 = Mid(Text1.Text, 3, 2)
X03 = Mid(Text1.Text, 5, 2)
X04 = Mid(Text1.Text, 7, 2)
X05 = Mid(Text1.Text, 9, 2)
X06 = Mid(Text1.Text, 11, 2)

RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X06 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X07 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X08 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X09 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X10 & vbCrLf
[txt-color=#e80000].
.
.[/txt-color]


Intão pessoal, este codigo ae e bem maior que isto. Muito maior mesmo
Eu não encontrei uma forma de escreve-lo para q ele estraia as conbinações da string (text1)
Dae tentei escrever o q seria cada um das combinações....Mais me perdi varias vezes e fico um lixo


VELDRAME 12/11/2012 11:49:46
#414039
Vamos lá!

Citação:

Text1.Text = [Ô]01020304050607080910[Ô]

X01 = Mid(Text1.Text, 1, 2)
X02 = Mid(Text1.Text, 3, 2)
X03 = Mid(Text1.Text, 5, 2)
X04 = Mid(Text1.Text, 7, 2)
X05 = Mid(Text1.Text, 9, 2)
X06 = Mid(Text1.Text, 11, 2)

RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X06 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X07 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X08 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X09 & vbCrLf
RichTextBox1.Text = RichTextBox1.Text & X01 & X02 & X03 & X04 & X05 & X10 & vbCrLf



Pelo o que eu vi, e vou trabalhar em cima disso, o inicio será sempre o mesmo (X01 à X05) então...

Exemplo, adicione a variável [Ô]X0_(0 to 200)[Ô] [ô]uma variável que vai de 0 a 200, se preciso faça maior
Dim X0_(0 To 200) As String

X0_(0) = Mid(txtTexto.Text, 1, 10)

Dim i, ii As Integer
ii = 1
For i = 11 To Len(txtTexto.Text)
X0_(ii) = Mid(txtTexto.Text, i, 2) [ô]alimenta a variavel X0_(?)
ii = ii + 1 [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô]
[ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso
i = i + 1
Next
PAYDANA 12/11/2012 12:07:41
#414041
Private Sub Command1_Click()
[ô]Pelo o que eu vi, e vou trabalhar em cima disso, o inicio será sempre o mesmo (X01 à X05) então...

[ô]Exemplo, adicione a variável [Ô]X0_(0 to 200)[Ô] [ô]uma variável que vai de 0 a 200, se preciso faça maior
Dim X0_(0 To 200) As String

X0_(0) = Mid(Text1.Text, 1, 10)

Dim i, ii As Integer
ii = 1
For i = 11 To Len(Text1.Text)
X0_(ii) = Mid(Text1.Text, i, 2) [ô]alimenta a variavel X0_(?)
ii = ii + 1 [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô]
[ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso
i = i + 1
List1.AddItem i
Next
End Sub


Ficaria maisomenos isso?
To estressado com esse trem duma forma q nao to nem raciocinando mais
VELDRAME 12/11/2012 14:45:50
#414052
[txt-color=#0000f0]Private Sub[/txt-color] Command1_Click()
Dim X0_(0 To 200) As String
X0_(0) = Mid(Text1.Text, 1, 10)

[txt-color=#0000f0]Dim [/txt-color]i, ii[txt-color=#0000f0] As Integer[/txt-color]
ii = 1
[txt-color=#0000f0]For[/txt-color] i = 11 To Len(Text1.Text)
X0_(ii) = Mid(Text1.Text, i, 2) [ô]alimenta a variavel X0_(?)
[txt-color=#e80000] List1.AddItem X0_(ii)[/txt-color]
ii = ii + 1[txt-color=#007100] [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô][/txt-color]

[txt-color=#007100] [ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso[/txt-color]
i = i + 1
[txt-color=#0000f0]Next
End Sub[/txt-color]
VELDRAME 12/11/2012 14:49:26
#414054
[txt-color=#0000f0]Private Sub[/txt-color] Command1_Click()
Dim X0_(0 To 200) As String
X0_(0) = Mid(Text1.Text, 1, 10)

[txt-color=#0000f0]Dim [/txt-color]i, ii[txt-color=#0000f0] As Integer[/txt-color]
ii = 1
[txt-color=#0000f0]For[/txt-color] i = 11 To Len(Text1.Text)
X0_(ii) = Mid(Text1.Text, i, 2) [ô]alimenta a variavel X0_(?)
[txt-color=#e80000] List1.AddItem X0_(ii)
OU
RichTextBox1.Text = RichTextBox1.Text & X0_0 & X0_(ii) & vbCrLf [/txt-color]

ii = ii + 1[txt-color=#007100] [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô][/txt-color]

[txt-color=#007100] [ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso[/txt-color]
i = i + 1
[txt-color=#0000f0]Next
End Sub[/txt-color]


Ou faça assim, sem a Variável X0_(?)

[txt-color=#0000f0]Private Sub[/txt-color] Command1_Click()

[txt-color=#0000f0]Dim [/txt-color]i, ii[txt-color=#0000f0] As Integer[/txt-color]
ii = 1
[txt-color=#0000f0]For[/txt-color] i = 11 To Len(Text1.Text)

RichTextBox1.Text = RichTextBox1.Text & [txt-color=#e80000]Mid(Text1.Text, 1, 10)[/txt-color] & [txt-color=#e80000]Mid(Text1.Text, i, 2) [/txt-color] & vbCrLf

ii = ii + 1[txt-color=#007100] [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô][/txt-color]

[txt-color=#007100] [ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso[/txt-color]
i = i + 1
[txt-color=#0000f0]Next

End Sub[/txt-color]
PAYDANA 12/11/2012 16:08:23
#414060

Dim i, ii As Integer
ii = 1
For i = 11 To Len(Text1.Text)

RichTextBox1.Text = RichTextBox1.Text & Mid(Text1.Text, 1, 10) & Mid(Text1.Text, i, 2) & vbCrLf

ii = ii + 1 [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô]

[ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso
i = i + 1
Next

dos codigos que você postou esse e o que chegou mais perto
ele me retorna isso daqui e para

010203040506
010203040507
010203040508
010203040509
010203040510

tem que continuar...

010203040607
010203040608
010203040609
010203040610

... e assim por diante

MARCELO.TREZE 13/11/2012 07:16:03
#414082
Resposta escolhida
Vamos ver se esta é a solução final

Private Function AnaliseCombinatoria(Numero As String)
Dim s() As String, m As Integer [ô], r As String
m = 0
For f = 1 To Len(Numero) Step 2
m = m + 1
ReDim Preserve s(m) As String
s(m) = Mid(Numero, f, 2)
Next f
For x = 1 To UBound(s) - 1
For a = x + 1 To UBound(s)
For b = a + 1 To UBound(s)
For c = b + 1 To UBound(s)
For d = c + 1 To UBound(s)
For e = d + 1 To UBound(s)
RichTextBox1.Text = RichTextBox1.Text & s(x) & s(a) & s(b) & s(c) & s(d) & s(e) & vbCrLf
Next e
Next d
Next c
Next b
Next a
Next x
End Function


Private Sub Command1_Click()
Call AnaliseCombinatoria([Ô]01020304050607080910[Ô])
End Sub


o código acima foi feito a algum tempo pelo colega Tecla e adaptado por mim veja como fica.

VELDRAME 13/11/2012 09:53:47
#414093
Citação:

:

Dim i, ii As Integer
ii = 1
For i = 11 To Len(Text1.Text)

RichTextBox1.Text = RichTextBox1.Text & Mid(Text1.Text, 1, 10) & Mid(Text1.Text, i, 2) & vbCrLf

ii = ii + 1 [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô]

[ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso
i = i + 1
Next

dos codigos que você postou esse e o que chegou mais perto
ele me retorna isso daqui e para

010203040506
010203040507
010203040508
010203040509
010203040510

tem que continuar...

010203040607
010203040608
010203040609
010203040610

... e assim por diante



Mas pera ai!
Você mostrou que no primeiro post que seria:
RichTextBox1.Text = RichTextBox1.Text &[txt-color=#e80000] X01[/txt-color] & X02 & X03 & X04 &[txt-color=#e80000] X05[/txt-color] & [txt-color=#0000f0]X06[/txt-color] & vbCrLf
RichTextBox1.Text = RichTextBox1.Text &[txt-color=#e80000] X01[/txt-color] & X02 & X03 & X04 &[txt-color=#e80000] X05[/txt-color] & [txt-color=#0000f0]X07[/txt-color] & vbCrLf

Ou seja De X01 à X05 em todas as linhas, então te passei certo.
Mas se você quer de X01 à X04 + X06 é só adaptar.
Vá jogando os MID para frente ou para trás conforme a necessidade

Tenta assim:
Private Sub Command1_Click()
Dim X0_(0 To 200) As String
X0_(0) = Mid(Text1.Text, 1, 10)

Dim i, ii As Integer
ii = 1
For i = 13 To Len(Text1.Text)
X0_(ii) = Mid(Text1.Text, i, 2) [ô]alimenta a variavel X0_(?)
RichTextBox1.Text = RichTextBox1.Text & Mid(Text1.Text, 1, 8) & Mid(Text1.Text, 11, 2) & Mid (Text1.Text, i, 2) & vbCrLf
ii = ii + 1 [ô]Aqui somo mais 1 na variavel [Ô] ii [Ô]
[ô]Como o FOR soma mais 1 automático e eu preciso que seja somando mais 2, aqui eu faço isso
i = i + 1
Next
End Sub





PAYDANA 13/11/2012 13:00:19
#414119
sim VELDRAME, você esta certo. So que eu preciso de todas as combinações possiveis e nao so aquelas
MARCELO.TREZE 13/11/2012 13:04:28
#414120
você viu meu código?
PAYDANA 13/11/2012 13:05:45
#414121
MARCELO-TREZE
Vi e to apaixonado aqui kkkkkkkkkkkkkkkk

Num to acreditando ainda

o trem fez em segundos
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas