Usuário com melhor resposta
Ajuda com expressão regular

Pergunta
-
Tenho um arquivo com varias linhas parecido com isso:
prog1 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog2 \\192.168.0.1 jose:abc123
prog2 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog4 \\192.168.0.1 jose:abc123
prog4 \\192.168.0.1 jose:abc123
Pode ser que no futuro alguem adicione mais linhas seguindo o padrão
ex.:"job4 \\192.168.0.1 jose:abc123"
Ai quero criar uma tela que liste como opções (radio em hta) a primeira coluna sem repetir.
De inicio fiz um if que comprava com o anterior, mas não fucionou, hove duplicidade de opções.
Então pensei vou juntar numa variavel toda ocorrencia da coluna1 delimitando por ":" e um expressão regular para ver se já havia ocorrencia da opção.
strRegExp = "[\b:][A-Z a-z 0-9][:\b]"
Set objRE = New RegExp
objRE.Pattern = strRegExp
Até ai eu acho que esta certo (eu acho), mas como vou comparar para saver se por exemplo "prog1" já foi listado? como comparar o resuldado da RegExp com uma variavel ou string?
Grato a todos pela ajuda.
Edson.
Respostas
-
Olá Jesiel,
Pra falar a verdade, resolvi o problema hoje pela manhã.
Estava querendo criar um montro para nada...rsrs... fiz um simple InSTR que resolvel tudo.
Fico grato mais uma vez por sua ajuda!!!.
Abraço.
Edson- Marcado como Resposta edson_ed quinta-feira, 28 de maio de 2009 16:38
Todas as Respostas
-
Olá,
O exemplo abaixo, varre um arquivo (arquivo1) e grava o arquivo2 somente com os valores que não são iguais. (repetidos). Acho que irá atender sua necessidade.
Dim arrFile1(), arrFile2()
i = 0
j = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
'VARIAVEIS QUE PRECISAM SER ALTERADAS ATENÇAO: PRECISA EXISTIR OS 3 ARQUIVOS
Set objFile1 = objFSO.OpenTextFile("C:\arquivo1.txt", 1)
strFile3 = "c:\arquivo2.txt"
Do Until objFile1.AtEndOfStream
Redim Preserve arrFile1(i)
arrFile1(i) = objFile1.ReadLine
i = i + 1
Loop
objFile1.Close
For l = Lbound(arrFile1) to UBound(arrFile1) Step 1
lIgual = False
if objFSO.FileExists(strFile3) Then
Set objNewFile = objFSO.OpenTextFile(strFile3, 1)
Do Until objNewFile.AtEndOfStream
if objNewFile.ReadLine = arrFile1(l) Then
lIgual = True
End if
Loop
Else
Set objNewFile = objFSO.OpenTextFile(strFile3, 8, True, 0)
lIgual = True
End if
if lIgual = Truen Then
Set objNewFile = objFSO.OpenTextFile(strFile3, 8, True, 0)
objNewFile.WriteLine arrFile1(l)
objNewFile.Close
End if
Next
Faça os testes e nos retorne.
Até mais,
Jesiel
Obs.: Se útil, classifique -
Olá Jesiel,
Pra falar a verdade, resolvi o problema hoje pela manhã.
Estava querendo criar um montro para nada...rsrs... fiz um simple InSTR que resolvel tudo.
Fico grato mais uma vez por sua ajuda!!!.
Abraço.
Edson- Marcado como Resposta edson_ed quinta-feira, 28 de maio de 2009 16:38
-
Uma saÃda bem simples, com PowerShell:cat arquivo.txt | group[]s,
--
Vinicius Canto Xavier
MVP Scripting - Admin Frameworks - PowerShellBlog sobre scripting e powershell: http://viniciuscanto.blogspot. com"edson_ed" wrote in message news:dddf983c-9ce9-462 1-976b-2c3ef2af2950...Tenho um arquivo com varias linhas parecido com isso:
prog1 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog2 \\192.168.0.1 jose:abc123
prog2 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog1 \\192.168.0.1 jose:abc123
prog4 \\192.168.0.1 jose:abc123
prog4 \\192.168.0.1 jose:abc123
Pode ser que no futuro alguem adicione mais linhas seguindo o padrão
ex.:"job4 \\192.168.0.1 jose:abc123"
Ai quero criar uma tela que liste como opções (radio em hta) a primeira coluna sem repetir.
De inicio fiz um if que comprava com o anterior, mas não fucionou, hove duplicidade de opções.
Então pensei vou juntar numa variavel toda ocorrencia da coluna1 delimitando por ":" e um expressão regular para ver se já havia ocorrencia da opção.
strRegExp = "[\b:][A-Z a-z 0-9][:\b]"
Set objRE = New RegExp
objRE.Pattern = strRegExp
Até ai eu acho que esta certo (eu acho), mas como vou comparar para saver se por exemplo "prog1" já foi listado? como comparar o resuldado da RegExp com uma variavel ou string?
Grato a todos pela ajuda.
Edson.