TRATAMENTO DE STRINGS
                    Caros amigos,
Gostaria de que meu programa retornasse as srings contidas entre determinadas strings.
Exemplo:
gostaria que:
<font size=3 face=arial>VBMania</font>
retornasse:
VBMania
Tem como?
                
            Gostaria de que meu programa retornasse as srings contidas entre determinadas strings.
Exemplo:
gostaria que:
<font size=3 face=arial>VBMania</font>
retornasse:
VBMania
Tem como?
                    Basicamente falando de forma simples...split do split.
Existem codigo em VB que fazem isso ai, essa tecnica se chama token, voce diz parametros iniciais e finais e aguarda tudo no meio...
            Existem codigo em VB que fazem isso ai, essa tecnica se chama token, voce diz parametros iniciais e finais e aguarda tudo no meio...
                    tenta este POG
Private Sub Command1_Click()
Dim Inicial As Integer
Dim Final As Integer
Linha = [Ô]<font size=3 face=arial>VBMania</font>[Ô]
Inicial = InStr(1, Linha, [Ô]>[Ô])
Final = InStr(Inicial, Linha, [Ô]</font>[Ô])
MsgBox Mid(Linha, Inicial + 1, (Final - Inicial) - 1)
End Sub
                
            Private Sub Command1_Click()
Dim Inicial As Integer
Dim Final As Integer
Linha = [Ô]<font size=3 face=arial>VBMania</font>[Ô]
Inicial = InStr(1, Linha, [Ô]>[Ô])
Final = InStr(Inicial, Linha, [Ô]</font>[Ô])
MsgBox Mid(Linha, Inicial + 1, (Final - Inicial) - 1)
End Sub
                    P.O.G. 2.0
            
Private Function func_Retorna_Valor_Tag(sTag As String) As String
    Dim iPosInicial                               As Integer
    Dim iPosFinal                                 As Integer
    Dim iAuxiliar                                 As Integer
    [ô]
    On Error GoTo ErroFunc
    [ô]
    For iAuxiliar = 1 To Len(sTag)
        [ô]
        If Mid(sTag, iAuxiliar, 1) = [Ô]>[Ô] Then
            iPosInicial = iAuxiliar + 1
            Exit For
        End If
        [ô]
    Next
    [ô]
    For iAuxiliar = iPosInicial To Len(sTag)
        [ô]
        If Mid(sTag, iAuxiliar, 1) = [Ô]<[Ô] Then
            iPosFinal = iAuxiliar
            Exit For
        End If
        [ô]
    Next
    [ô]
    func_Retorna_Valor_Tag = Mid(sTag, iPosInicial, iPosFinal - iPosInicial)
    Exit Function
    [ô]
ErroFunc:
    func_Retorna_Valor_Tag = [Ô][Ô]
End Function
                
                    boa tarde a todos
ASHKATCHUP, tentei seu código mas na última linha antes do erro:
func_Retorna_Valor_Tag = Mid(sTag, iPosInicial, iPosFinal - iPosInicial)
Dá o erro: Argumento ou chamada de procedimento inválida.
Lembrando que meu programa está lendo o texto que está dentro de um TextBox multiline (text1) para jogar a string tratada dentro da TextBox2 (text2)
obrigado
                
            ASHKATCHUP, tentei seu código mas na última linha antes do erro:
func_Retorna_Valor_Tag = Mid(sTag, iPosInicial, iPosFinal - iPosInicial)
Dá o erro: Argumento ou chamada de procedimento inválida.
Lembrando que meu programa está lendo o texto que está dentro de um TextBox multiline (text1) para jogar a string tratada dentro da TextBox2 (text2)
obrigado
                    Você está passando somente uma tag ou mais?
Poderia postar o exemplo de texto que você está usando?
            Poderia postar o exemplo de texto que você está usando?
                    Olá ASHKATCHUP,
Estou passando mais tags.
O programa busca textos em páginas de internet, entendeu?
Daà são inúmeras tags.
Eu pensei, em primeiro lugar, eliminar os comando das tags (por exemplo, body, font, table...);
Daà só ficarão os caracteres [Ô]<[Ô] (menor que) e [Ô]>[Ô] (maior que);
Depois fazer um Replace para eliminá-las.
O que você acha?
            Estou passando mais tags.
O programa busca textos em páginas de internet, entendeu?
Daà são inúmeras tags.
Eu pensei, em primeiro lugar, eliminar os comando das tags (por exemplo, body, font, table...);
Daà só ficarão os caracteres [Ô]<[Ô] (menor que) e [Ô]>[Ô] (maior que);
Depois fazer um Replace para eliminá-las.
O que você acha?
                    tentou isto
                
            Private Sub Command1_Click()
Dim Inicial As Integer
Dim Final As Integer
Linha = [Ô]<font size=3 face=arial>VBMania</font>[Ô]
Inicial = InStr(1, Linha, [Ô]>[Ô])
Final = InStr(Inicial, Linha, [Ô]</font>[Ô])
MsgBox Mid(Linha, Inicial + 1, (Final - Inicial) - 1)
End Sub
                    Olá MARCELO-TREZE
Tentei isto sim funcionou como o esperado.
O problema é que, como eu disse, o programa lê um código-fonte HTML todo, do inÃcio até o fim.
Necessito que se faça um loop, para ler todo o conteúdo do arquivo e eleiminar todas as tags e colocar um separador [Ô],[Ô] (vÃrgula).
Estou trabalhando em cima do seu exemplo e do ASHKATCHUP, mas só consigo pegar o primeiro texto, ou seja, o tÃtulo da página.
Obrigado pela força.
Desculpe o incômodo.
            Tentei isto sim funcionou como o esperado.
O problema é que, como eu disse, o programa lê um código-fonte HTML todo, do inÃcio até o fim.
Necessito que se faça um loop, para ler todo o conteúdo do arquivo e eleiminar todas as tags e colocar um separador [Ô],[Ô] (vÃrgula).
Estou trabalhando em cima do seu exemplo e do ASHKATCHUP, mas só consigo pegar o primeiro texto, ou seja, o tÃtulo da página.
Obrigado pela força.
Desculpe o incômodo.
                    Galera consegui resolver meu problema.
Eu fiz assim:
Private Sub Command1_Click()
Dim MyString, MyString2() As String
    
MyString = Text1.Text
    
While MyString Like [Ô]*>*[Ô]
Mid(MyString, InStr(1, MyString, [Ô]<[Ô]), InStr(1, MyString, [Ô]>[Ô]) - InStr(1, MyString, [Ô]<[Ô]) + 1) = _
String(InStr(1, MyString, [Ô]>[Ô]) - InStr(1, MyString, [Ô]<[Ô]) + 1, [Ô]_[Ô])
Wend
MyString = Replace(MyString, [Ô]_[Ô], [Ô][Ô])
MyString2 = Split(MyString, [Ô];[Ô], , vbTextCompare)
    
For j = LBound(MyString2) To UBound(MyString2)
If Not MyString2(j) = [Ô][Ô] Then
Text2.Text = Text2.Text & MyString2(j) & [Ô] [Ô]
End If
Next
End Sub
Valeu pelas ajudas e dicas
            Eu fiz assim:
Private Sub Command1_Click()
Dim MyString, MyString2() As String
MyString = Text1.Text
While MyString Like [Ô]*>*[Ô]
Mid(MyString, InStr(1, MyString, [Ô]<[Ô]), InStr(1, MyString, [Ô]>[Ô]) - InStr(1, MyString, [Ô]<[Ô]) + 1) = _
String(InStr(1, MyString, [Ô]>[Ô]) - InStr(1, MyString, [Ô]<[Ô]) + 1, [Ô]_[Ô])
Wend
MyString = Replace(MyString, [Ô]_[Ô], [Ô][Ô])
MyString2 = Split(MyString, [Ô];[Ô], , vbTextCompare)
For j = LBound(MyString2) To UBound(MyString2)
If Not MyString2(j) = [Ô][Ô] Then
Text2.Text = Text2.Text & MyString2(j) & [Ô] [Ô]
End If
Next
End Sub
Valeu pelas ajudas e dicas
                        Tópico encerrado , respostas não são mais permitidas