Jump to content
Sign in to follow this  
Lukas S.

Metodo Regex igual mas o ciclo continua como se não fosse igual

Recommended Posts

Lukas S.

Boas ... A estas horas da noite já começa a ser frustrante  :wallbash: o problema é que já testei tudo desde fazer tudo directo sem as variáveis resultado e valores mas nada feito ... se alguém me conseguir fazer entender o porque de este ciclo continuar e não parar seria uma grande ajuda ... neste caso quero que ele encontre "127.0.0.1  lol " no arquivo e ele encontra tanto que :

lucas {127.0.0.1  lol } System.Text.RegularExpressions.Match

resultado "127.0.0.1  lol " String

Sendo que as duas variáveis estão completamente iguais e não consegue fazer o if (

If resultado = valores Then ' se os resultados forem iguais entao

                            lucas.ToString.Remove(0) 'remove

                        End If)

Deixo aqui o código para que se alguém souber por favor dê a entender

  If p = Windows.Forms.DialogResult.No Then
                ficheiro = Environment.GetFolderPath(Environment.SpecialFolder.System) + "\drivers\etc\hosts"       
                If TextBox2.Text = "" Or TextBox2.Text = " " Then
                    MsgBox(" Coloque um site qualquer  ")
                Else
                    Dim Texto As String
                    Dim r As New System.Text.RegularExpressions.Regex("127.0.0.1 .*") '127.0.0.1  lol - esta é aquela que eu quero apanhar 
                    Dim resultado As String
                    resultado = "127.0.0.1  " & TextBox2.Text & " " ' coloquei o espaço para ficar igual  (???) 
                    Texto = My.Computer.FileSystem.ReadAllText(ficheiro) ' Lê o ficheiro como Texto 
                    Dim encontrado As MatchCollection = r.Matches(Texto) ' guarda na variável encontrado a colecção encontrada das regex
                    For Each lucas As Match In encontrado  ' por cada item encontrado
                        Dim valores As String
                        valores = lucas.ToString ' valores assume os items lucas strings 
                        If resultado = valores Then ' se os resultados forem iguais entao 
                            lucas.ToString.Remove(0) 'remove 

                        End If
                        lucas.ToString.Remove(0)
                    Next
                End If
            End If


E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Share this post


Link to post
Share on other sites
José Lopes

Mas queres remover do arquivo??? é que dá-me ideia que estás a retirar mas é do array....


Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Share this post


Link to post
Share on other sites
rumbafum

Estás a usar o object Match para comparar e não o valor desse objecto.

Na verdade ao fazeres valores = lucas.ToString, a variável valores deve ficar com o valor "System.Text.RegularExpressions.Match" ou assim.

Tens que usar valores = lucas.Value

Share this post


Link to post
Share on other sites
Lukas S.

Continua sem efeito .. nao funciona :s

Update: encontrei uma forma para que desse certo coloquei .Trim no final de cada variável comparando assim os valores um com o outro o problema agora é apagar a linha to arquivo

Alguém sabe como apagaR ?


E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Share this post


Link to post
Share on other sites
Lukas S.

Mas queres remover do arquivo??? é que dá-me ideia que estás a retirar mas é do array....

Penso que estou a apagar do array sim .. Alguém sabe outro modo ?

Ps: O método que encontrei foi este

                            Dim lines As New List(Of String)(IO.File.ReadAllLines(ficheiro))

                            lines.RemoveAt()
                            IO.File.WriteAllLines(ficheiro, lines.ToArray())
                        End If

Só que não consegui encontrar uma menaira pra saber em que posição está  a linha encontrada no regex


E o Impossível foi criado por pessoas fracas pra acabar com o sonho das pessoas fortes. Não deixes que acabem com o teu. Sonha , luta , ambiciona e realiza. Se amas , se gostas tu vais conseguir. Cala todas as pessoas que um dia duvidaram de ti e prova que foste mais forte de qualquer outro.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.