RICHTEXTBOX ENCONTRAR PALAVRA E DELETAR LINHA
Boas pessoal, preciso deletar algumas linhas em um richtextbox que contem algumas palavras que variam
tipo
RICHTEXTBOX ta assim...
blablablablabla
blablablablabla
blablablablabla
blaDELETARlablabla
blablablablabla
bAPAGARabla
blablablablabla
E tem que ficar assim:
blablablablabla
blablablablabla
blablablablabla
blablablablabla
blablablablabla
é apagada a linha toda que tinha a tal palavra.
Obrigado gente
tipo
RICHTEXTBOX ta assim...
blablablablabla
blablablablabla
blablablablabla
blaDELETARlablabla
blablablablabla
bAPAGARabla
blablablablabla
E tem que ficar assim:
blablablablabla
blablablablabla
blablablablabla
blablablablabla
blablablablabla
é apagada a linha toda que tinha a tal palavra.
Obrigado gente
Vamos lá
Voce pode utilizar o Método find
Sintaxe:
RTB.Find Palavra, PosiçãoInicial, PosiçãoFinal, Opção
Palavra: é a string que voce deseja procurar
PosiçãoInicial: é a posição inicial dentro do RTB
Posiçãofinal: é a posição final dentro do RTB
opções:
0 = localiza as palavras mas ignora minusculas/maisculas e palavras inteiras.
2 = localiza as palavras inteiras somente, mas ignora maiusculas/minusculas
4 = localiza as palavras somente Maiuscula/Minuscula, ignora palavras inteiras
6 = localiza as palavras coincide todas as letras minusculas/maiusculas/inteiras
Então:
RTB.Find [Ô]DELETAR[Ô], 0, len(RTB.TEXT), 0
if RTB.SelLength then [ô]se for encontrado alguma palavra
RTB.SelText = [Ô][Ô]
Endif
Voce pode utilizar o Método find
Sintaxe:
RTB.Find Palavra, PosiçãoInicial, PosiçãoFinal, Opção
Palavra: é a string que voce deseja procurar
PosiçãoInicial: é a posição inicial dentro do RTB
Posiçãofinal: é a posição final dentro do RTB
opções:
0 = localiza as palavras mas ignora minusculas/maisculas e palavras inteiras.
2 = localiza as palavras inteiras somente, mas ignora maiusculas/minusculas
4 = localiza as palavras somente Maiuscula/Minuscula, ignora palavras inteiras
6 = localiza as palavras coincide todas as letras minusculas/maiusculas/inteiras
Então:
RTB.Find [Ô]DELETAR[Ô], 0, len(RTB.TEXT), 0
if RTB.SelLength then [ô]se for encontrado alguma palavra
RTB.SelText = [Ô][Ô]
Endif
Opa, muito bacana sua explicação WOLFFIRE, obrigado.
Mais acho que eu não soube explicar direito, desculpe.
74-75-78-79-80
74-76-77-78-79
74-76-77-78-80
74-76-77-79-80
74-76-78-79-80
74-77-78-79-80
75-76-77-78-79
75-76-77-78-80
75-76-77-79-80
75-76-78-79-80
75-77-78-79-80
76-77-78-79-80
Tipo, eu não tenho uma referência na linha pra eu criar o posiçãoInicial e o posiçãofinal porque elas mudam o tempo todo (são como estas acima)
No caso destas linhas acima ae se eu mandasse deletar as linhas que tenha o [Ô]80[Ô] so me sobraria estas 74-76-77-78-79 75-76-77-78-79
porém preciso identificar a linha pra poder apaga-la
if instr(linha, [Ô]80[Ô]) > 0 then linha = [Ô][Ô]
Obrigado!
Mais acho que eu não soube explicar direito, desculpe.
74-75-78-79-80
74-76-77-78-79
74-76-77-78-80
74-76-77-79-80
74-76-78-79-80
74-77-78-79-80
75-76-77-78-79
75-76-77-78-80
75-76-77-79-80
75-76-78-79-80
75-77-78-79-80
76-77-78-79-80
Tipo, eu não tenho uma referência na linha pra eu criar o posiçãoInicial e o posiçãofinal porque elas mudam o tempo todo (são como estas acima)
No caso destas linhas acima ae se eu mandasse deletar as linhas que tenha o [Ô]80[Ô] so me sobraria estas 74-76-77-78-79 75-76-77-78-79
porém preciso identificar a linha pra poder apaga-la
if instr(linha, [Ô]80[Ô]) > 0 then linha = [Ô][Ô]
Obrigado!
To lendo aqui tudo que e coisa desse RichTextBox e não to encontrando nada pra identificar as linhas
http://www.recursosvisualbasic.com.ar/htm/tutoriales/richtextbox.htm#loadfile-savefile
http://www.recursosvisualbasic.com.ar/htm/tutoriales/richtextbox.htm#loadfile-savefile
segue amigo fiz rapidinho da umas ajustadas ai depois ,basta trocar o text1 para RichTextBox
Private Sub Form_Load()
Text1 = RemoveLinha([Ô]80[Ô], Text1)
End Sub
Function RemoveLinha(Buscar As String, Campo As Variant) As String
Dim Mtz As Variant
Dim i As Integer
Dim aux As String
Mtz = Split(Campo, vbCrLf)
For i = 0 To UBound(Mtz)
If InStr(Mtz(i), Buscar) = 0 Then
aux = aux & Mtz(i) & vbCrLf
End If
Next
RemoveLinha = aux
End Function
Private Sub Form_Load()
Text1 = RemoveLinha([Ô]80[Ô], Text1)
End Sub
Function RemoveLinha(Buscar As String, Campo As Variant) As String
Dim Mtz As Variant
Dim i As Integer
Dim aux As String
Mtz = Split(Campo, vbCrLf)
For i = 0 To UBound(Mtz)
If InStr(Mtz(i), Buscar) = 0 Then
aux = aux & Mtz(i) & vbCrLf
End If
Next
RemoveLinha = aux
End Function
Obrigado LUIZCOMINO
Funciono bem proximo do que preciso
O que aconteceu de estranho foi que a fonte do RichTextBox1 mudou (ficou maior) outra coisa que aconteceu foi que as linhas que eram pra ser deletadas foram esvaziadas... mais isso eu resolvo com um codigo que tenho aqui de remover linhas vazias
fui durmir 4 da manha e ja to em pé des de cedo em cima disso aqui
obrigadão meeesmo
Funciono bem proximo do que preciso
O que aconteceu de estranho foi que a fonte do RichTextBox1 mudou (ficou maior) outra coisa que aconteceu foi que as linhas que eram pra ser deletadas foram esvaziadas... mais isso eu resolvo com um codigo que tenho aqui de remover linhas vazias
fui durmir 4 da manha e ja to em pé des de cedo em cima disso aqui
obrigadão meeesmo
Opa, o poblema da fonte era so trocar de RichTextBox1para RichTextBox1.Text
então ficou blz, se ajudou pontue ai amigo, fique com Deus!
Não deu muito certo com arquivos grandes
Preciso trabalhar com listas que contem milhões de linhas
Preciso trabalhar com listas que contem milhões de linhas
qual foi o erro?
overflow algo assim
Tópico encerrado , respostas não são mais permitidas