EXTRAIR SEQUENCIA

PAYDANA 14/11/2012 11:49:22
#414200
Private Sub Command2_Click()
Dim S, seQue As String
Dim Z, Y As Integer
Dim s1, s2, sX As Variant

S = [Ô]020305060910111314161820232425[Ô]

For Z = 1 To Len(Trim(S)) Step 2
s1 = Mid(Trim(S), Z, 2)
For Y = 3 To Len(Trim(S)) Step 4
s2 = Mid(Trim(S), Y, 2)
Next
Next

End Sub

Comecei faser um codio pra extrair sequencias dentro de um numero e não consigo termina
Nessa tentativa ae ele teria que me retornar 0203 0506 091011 1314 232425

não tem sequencia fixa tipo de 3 de 2 dae meu poblema e elas tambem podem aparecer em qualquer outra posição
Unica consideração e que é de 2 em 2


Mais algumas strings que tenh que extrair sequencias
010405060709111213151619202324
010406070809101112141617202324
010204050810121316171819232425
010204080911121315161920232425
010204050607101215161719212325
010407081012141516181921222325
010506080910131516171819202225
030405091011131516171920212425
020304050608091011121419202324
020607080910111216192022232425
VELDRAME 14/11/2012 12:11:54
#414203
Resposta escolhida
Citação:

não tem sequencia fixa tipo de 3 de 2 dae meu poblema e elas tambem podem aparecer em qualquer outra posição
Unica consideração e que é de 2 em 2


Decida, sem padrão fica complicado.

Como assim 3 de 2, use a virgula que fica melhor, não sei se é um exemplo do tipo : de 3, de 2, ... ou se tem que subtrair 3 de 2.

O que são esses dados?
O primeiro grupo de 6 dig. é data? Porque se for fica mais fácil.
PAYDANA 14/11/2012 12:20:13
#414204
tem que pegar a sequencia

no caso aqui 0103060810111213141516 sequencia = 10111213141516

KERPLUNK 14/11/2012 13:28:32
#414205
Como já foi dito, se não tiver um padrão, fica muuuuuuuito complicado.
VELDRAME 14/11/2012 14:18:11
#414210
Vamos lá, agora vai começar a sair.

1) Você vai pegar uma string.
2) Dividir em vários grupos de dois Dígitos.
3) Remontar essa String em ordem crescente, porém em grupos sequenciais.

Legal, isso é um desafio.

Monte seu comando For/Next. para dividir em par, até ai normal, certo!
Ordene por [Ô]Ordem Asc[Ô] e já marque quem é o menor
For i = 1 To 5 [ô]Aqui você vai por o maior valor do array
For cont = 1 To 5
If Array (i) < Array (cont) Then
X = Array (i)
Array (i) = Array (cont)
Array (cont) = X
End If
Next cont
Next i

Agora...
Monte a saída colocando um espaço aonde faltar um na sequencia.
coloque seu sistema para pensar
Array(1) = [Ô]01[Ô]
if Array(1) + 1 = 02 then
Saída unida
else
Saída com espaço
end if




PAYDANA 14/11/2012 15:04:01
#414216
A mano, acho que não e tão complexo assim não
To matutano aqui pra ve se acho outra forma
KERPLUNK 14/11/2012 17:54:39
#414237
Citação:

A mano, acho que não e tão complexo assim não
To matutano aqui pra ve se acho outra forma


Bem, então explique qual a lógica que deve ser seguida. Só mostrando original e resultado fica complicado...
PAYDANA 14/11/2012 18:32:31
#414244
eu num sei... to tentando aqui
KERPLUNK 14/11/2012 18:44:01
#414245
A que me refiro como lógica, é como você chega no resultado que mostrou acima...
PAYDANA 14/11/2012 19:11:13
#414246
Private Sub Command1_Click()
Dim S, seQue As String
Dim Z As Integer
Dim s1, s2 As Variant

S = [Ô]020305060910111314161820232425[Ô]

For Z = 1 To Len(Trim(S)) Step 2
s1 = Mid(Trim(S), Z, 2)
s2 = Mid(S, InStr(S, s1) + 2, 2)
If Val(s2) - [Ô]1[Ô] = Val(s1) Then seQue = s1 & s2
MsgBox seQue
Next

End Sub

peguei so sequencia de 2 ate agora ,
PAYDANA 14/11/2012 20:47:02
#414250
To quase la quem quiser da um pitaco ae fique a vontade hehe

Private Sub Command1_Click()
Dim S, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15, seQ2, seQ3, seQ4, seQ5, seQ6, seQ7, seQ8, seQ9, seQ10, seQ11, seQ12, seQ13, seQ14, seQ15 As String
Dim Z As Integer

S = [Ô]02030405060910111314161820232425[Ô]

For Z = 1 To Len(Trim(S)) Step 2
s1 = Mid(Trim(S), Z, 2)
s2 = Mid(S, InStr(S, s1) + 2, 2)
s3 = Mid(S, InStr(S, s2) + 2, 2)
s4 = Mid(S, InStr(S, s3) + 2, 2)
s5 = Mid(S, InStr(S, s4) + 2, 2)
s6 = Mid(S, InStr(S, s5) + 2, 2)
s7 = Mid(S, InStr(S, s6) + 2, 2)
s8 = Mid(S, InStr(S, s7) + 2, 2)
s9 = Mid(S, InStr(S, s8) + 2, 2)
s10 = Mid(S, InStr(S, s9) + 2, 2)
s11 = Mid(S, InStr(S, s10) + 2, 2)
s12 = Mid(S, InStr(S, s11) + 2, 2)
s13 = Mid(S, InStr(S, s12) + 2, 2)
s14 = Mid(S, InStr(S, s13) + 2, 2)
s15 = Mid(S, InStr(S, s14) + 2, 2)

If Val(s2) - [Ô]1[Ô] = Val(s1) Then seQ2 = s1 & s2:
If Val(s3) - [Ô]1[Ô] = Val(s2) Then seQ3 = s1 & s2 & s3
If Val(s4) - [Ô]1[Ô] = Val(s3) Then seQ4 = s1 & s2 & s3 & s4
If Val(s5) - [Ô]1[Ô] = Val(s4) Then seQ5 = s1 & s2 & s3 & s4 & s5
If Val(s6) - [Ô]1[Ô] = Val(s5) Then seQ6 = s1 & s2 & s3 & s4 & s5 & s6
If Val(s7) - [Ô]1[Ô] = Val(s6) Then seQ7 = s1 & s2 & s3 & s4 & s5 & s6 & s7
If Val(s8) - [Ô]1[Ô] = Val(s7) Then seQ8 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8
If Val(s9) - [Ô]1[Ô] = Val(s8) Then seQ9 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9
If Val(s10) - [Ô]1[Ô] = Val(s9) Then seQ10 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10
If Val(s11) - [Ô]1[Ô] = Val(s10) Then seQ11 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11
If Val(s12) - [Ô]1[Ô] = Val(s11) Then seQ12 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12
If Val(s13) - [Ô]1[Ô] = Val(s12) Then seQ13 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12 & s13
If Val(s14) - [Ô]1[Ô] = Val(s13) Then seQ14 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12 & s13 & s14
If Val(s15) - [Ô]1[Ô] = Val(s14) Then seQ15 = s1 & s2 & s3 & s4 & s5 & s6 & s7 & s8 & s9 & s10 & s11 & s12 & s13 & s14 & s15

MsgBox seQ4
Next

End Sub
Página 1 de 2 [14 registro(s)]
Tópico encerrado , respostas não são mais permitidas