none
Obter caracteres que estejam entre delimitadores percorrendo uma string e armazenar em uma datagridview RRS feed

  • Pergunta

  • Por favor, poderia me ajudar a desenvolver um método que percorre uma string (um texto longo) e pega todo o conteúdo que está entre dois caracteres delimitadores e exiba cada resultado em uma linha de um datagridview, em Visual Basic?

    Por exemplo, tenho o seguinte texto:

    Podemos acreditar que tudo que a vida nos oferecerá no futuro é repetir o que fizemos ontem e hoje. Mas, se prestarmos atenção, *vamos nos dar conta de que nenhum dia é igual a outro*. Cada manhã traz uma benção escondida; *uma benção que só serve para esse dia e que não se pode* guardar nem desaproveitar.
    *Se não usamos este milagre hoje, ele vai se perder*.

    Gostaria de pegar todas as frases que estão entre os asteriscos e exibir em um datagridview. Um registro em cada linha.

    Obrigado pela ajuda!

    sexta-feira, 3 de agosto de 2018 22:27

Respostas

  • Olá amigo!

    Experimente este método:

    Private Sub ObterNomeDelimitado()

            Dim strR = "Podemos acreditar que tudo que a vida nos oferecerá no futuro é repetir o que fizemos ontem e     hoje. Mas, se prestarmos atenção, 
                       *vamos nos dar conta de que nenhum dia é igual a outro*. Cada manhã traz uma benção escondida; 
                       *uma benção que só serve para esse dia e que não se pode* guardar nem desaproveitar.
                       *Se não usamos este milagre hoje, ele vai se perder*."
            Dim indexComeco As Integer = 0
            Dim indexFinal As Integer = 0
            Dim index As Integer = 0
            Dim limitador As Integer = 0
            Dim palavra As String
            Dim comeco As String
            Try

                DataGridView1.Columns.Add("col01", "Texto")
                DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
                For Each chr As Char In strR

                    If chr.ToString().Equals("*", StringComparison.Ordinal) Then
                        limitador += 1
                        If limitador Mod 2 <> 0 Then
                            comeco = strR.Substring(indexComeco + 1)
                            indexFinal = comeco.IndexOf("*")
                            palavra = comeco.Substring(0, indexFinal)
                            DataGridView1.Rows.Insert(index, palavra)
                            index += 1
                        End If
                    End If
                    indexComeco += 1
                Next
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Espero que isto te ajudou se sim, marque como resposta para ajudar outros também.

    sábado, 4 de agosto de 2018 10:56

Todas as Respostas

  • Olá amigo!

    Experimente este método:

    Private Sub ObterNomeDelimitado()

            Dim strR = "Podemos acreditar que tudo que a vida nos oferecerá no futuro é repetir o que fizemos ontem e     hoje. Mas, se prestarmos atenção, 
                       *vamos nos dar conta de que nenhum dia é igual a outro*. Cada manhã traz uma benção escondida; 
                       *uma benção que só serve para esse dia e que não se pode* guardar nem desaproveitar.
                       *Se não usamos este milagre hoje, ele vai se perder*."
            Dim indexComeco As Integer = 0
            Dim indexFinal As Integer = 0
            Dim index As Integer = 0
            Dim limitador As Integer = 0
            Dim palavra As String
            Dim comeco As String
            Try

                DataGridView1.Columns.Add("col01", "Texto")
                DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
                For Each chr As Char In strR

                    If chr.ToString().Equals("*", StringComparison.Ordinal) Then
                        limitador += 1
                        If limitador Mod 2 <> 0 Then
                            comeco = strR.Substring(indexComeco + 1)
                            indexFinal = comeco.IndexOf("*")
                            palavra = comeco.Substring(0, indexFinal)
                            DataGridView1.Rows.Insert(index, palavra)
                            index += 1
                        End If
                    End If
                    indexComeco += 1
                Next
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Espero que isto te ajudou se sim, marque como resposta para ajudar outros também.

    sábado, 4 de agosto de 2018 10:56
  • Cara, perfeito!

    Mais uma vez eu agradeço.

    sábado, 4 de agosto de 2018 21:11