VB .NET - Convertendo RTF para Texto
Se você precisa converter textos no formato RTF(Rich Text Format) para o formato TXT(Texto) vai se surpreender como isso pode ser simples de ser feito no VB .NET.(pelo menos para arquivos pequenos)
Crie um novo projeto no VB .NET 2010 Express Edition do tipo Windows Forms Application e com o nome ConverterRTF_Texto;
No formulário form1.vb inclua duas Labels, duas caixas de texto e um controle Button conforme o leiaute abaixo:
A seguir no menu Project clique em Add Class e informe o nome RtfTexto.vb;
Digite o código abaixo nesta classe:
Imports System.Text Imports System.IO Public Class ConverteRTFTexto Public Shared Function Converter(ByVal Origem As String, ByVal Saida As String) As Boolean Dim rbox As New RichTextBox() Dim sb As New StringBuilder() Dim sw As StreamWriter If Not File.Exists(Origem) Then Return False Else 'Abre o arquivo richtext origem rbox.LoadFile(Origem, RichTextBoxStreamType.RichText) 'Anexa texto no string builder. sb.Append(rbox.Text).Replace(vbLf, vbCrLf) Try 'Cria um nova saida sw = New StreamWriter(Saida) 'Escreve o texto sw.Write(sb.ToString()) 'Fecha o arquivo. sw.Close() 'limpa sb = Nothing Catch ex As Exception Return False End Try End If 'operação concluida com sucesso Return True End Function End Class |
Observe que usamos a classe StringBuilder mas porque não usamos uma String ??
Toda vez que você usa um dos métodos da classe System.String , você cria um novo objeto string na memória , o qual requer uma nova alocação de espaço para o objeto criado. Em situações onde você precisa realizar repetidas modificações em uma string a sobrecarga de ter que criar um novo objeto String pode lhe trazer problemas.
Nestas situações é que entra a classe StringBuilder , ela faz parte do namespace System.Text ; então a classe System.Text.StringBuilder pode ser usada para modificar uma string sem que seja necessário criar um novo objeto. Por exemplo a concatenação de strings em um loop pode ser uma destas situações onde o uso de StringBuilder pode melhorar muito o desempenho do seu código.
Podemos pensar no objeto StringBuilder como um buffer dinâmico que pode conter uma String com a habilidade de aumentar seu tamanho a partir do zero até a capacidade final do buffer. O tamanho do buffer vai crescendo a medida que o tamanho dos caracteres presentes no objeto StringBuilder vai aumentando.
Podemos definir um número máximo de caracteres que o objeto StringBuilder pode manipular . Este valor é chamado de capacidade do objeto e não pode ser confundido com o comprimento da string contida no objeto atual.
Por exemplo podemos criar um instância da classe StringBuilder com a string "Macoratti" que possui um tamanho de 9 , e ao mesmo tempo podemos definir a capacidade máxima do objeto como sendo de 25. Ao modificar o objeto StringBuilder , ele não faz a realocação de tamanho até que a capacidade máxima seja alcançada ; quando isto ocorre novo espaço é alocado automaticamente e a capacidade dobra de tamanho. Vejamos como podemos criar um objeto StringBuilder :
A classe System.Text.StringBuilder obtém uma melhor performance no tratamento de strings justamente porque ela aloca o espaço inicial quando uma instância do objeto é criada por isso ele foi usada neste caso.
Após isso inclua no evento Click do Botão de comando o seguinte código:
Private Sub btnConverter_Click(sender As System.Object, e As System.EventArgs) Handles btnConverter.Click Dim converterRTF_Texto As Boolean = ConverteRTFTexto.Converter(txtRTF.Text, txtTexto.Text) If converterRTF_Texto Then MessageBox.Show("A conversão foi realizada com sucesso", "Conversor RTF-Texto", MessageBoxButtons.OK, MessageBoxIcon.Exclamation) Else MessageBox.Show("A conversão FALHOU...", "Conversor RTF-Texto", MessageBoxButtons.OK, MessageBoxIcon.Error) End If End Sub |
E esta pronto um mini conversor RTF/TXT; tudo muito simples como só o VB .NET é capaz de fazer.
Pegue o projeto completo aqui: ConverterRTF_Texto.zip
Veja os
Destaques e
novidades do SUPER
CD VB 2012 (sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ? Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira... Quer aprender C# ?? Chegou o Super DVD C# 2012 com exclusivo material de suporte e vídeo aulas com curso básico sobre C#.
|
Heb 3:10
Por isto me indignei contra essa geração, e disse: Estes sempre erram em seu coração, e não chegaram a conhecer os meus caminhos.Heb 3:11
Assim jurei na minha ira: Não entrarão no meu descanso.Heb 3:12
Vede, irmãos, que nunca se ache em qualquer de vós um perverso coração de incredulidade, para se apartar do Deus vivo;Referências: