• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Weasel

Richtextbox carregar um rtf guardado numa string

11 mensagens neste tópico

Bom dia,

O que eu pretendia era carregar num RichTextbox, o conteúdo rtf de outro RichTextbox que está guardado numa variável de formato string. E porque? Porque eu estou a enviar esse conteúdo através de sockets de um computador para outro, ou seja um utilizador escreve num Richtextbox e aplica-lhe a formatação desejada, e envia (por socket) para outro utilizador o "RichTextbox1.rtf" mas por socket vai em formato string e no destinatário não consigo fazer Richtextbox2.rtf = rtfRecebido

Existe algum método para dar a volta a isto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estranho porque se fizeres num projecto novo, com dois richtextbox num form e este código no form_load:

        RichTextBox1.Text = "Sou um texto formatadinho!"
        RichTextBox1.SelectAll()
        RichTextBox1.SelectionFont = New Font("Arial", 12, FontStyle.Bold)
        RichTextBox1.SelectionColor = Color.DarkMagenta
        Dim S As String = RichTextBox1.Rtf
        RichTextBox2.Rtf = S

O formato passa limpinho. Acabei de testar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já percebi o problema, ou pelo menos a causa.

Eu para a informação que chega via socket tenho um "parser" e nesse parser estava a fazer LoadMSG(remetente, Ip, mensagem)

Esse LoadMSG é o seguinte:

Public Sub loadMSG(ByVal fromNAME As String, ByVal fromIP As String, ByRef msg As String)

        Dim newMSG As New frmMsgRead
        Dim data As String = Date.Now
        newMSG.txtFrom.Text = fromNAME
        newMSG.txtMsg.Rtf = msg 'Ao fazer Debug ao programa dá erro aqui diz que "O formato de ficheiro não é válido."
        newMSG.Text = fromNAME & " - " & data
        newMSG.txtDate.Text = data
        newMSG.rPCIP = fromIP
        newMSG.Show()
    End Sub

Mas se no local onde tenho a chamada para este Sub colocar directo este código já funciona bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Compara a string que envias com a que recebes.

Pode ser qualquer granel com codificação ou não chega completa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O problema é que assim o programa nem compila dá logo erro ali (no IDE não acusa nenhum erro nem nenhum Warning)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E qual é o erro?

EDIT: De qualquer maneira compara a string que chega. Não atribuas logo ao RTF dado que isso atira uma excepção. Manda, ao invés disso, uma linha para o Debug para veres o que chega.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bump!

Alguém sabe qual poderá ser o problema?

Eu ainda não percebi exactamente o problema e o que se está a passar...

Se puderes, cria um exemplo básico mas que faça tudo aquilo que o teu faz relativamente ao erro. Para puder testar e fazer debug deste lado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu aqui já expliquei qual o erro e quando/como se origina,não percebo é o porquê.

Já percebi o problema, ou pelo menos a causa.

Eu para a informação que chega via socket tenho um "parser" e nesse parser estava a fazer LoadMSG(remetente, Ip, mensagem)

Esse LoadMSG é o seguinte:

Public Sub loadMSG(ByVal fromNAME As String, ByVal fromIP As String, ByRef msg As String)

        Dim newMSG As New frmMsgRead
        Dim data As String = Date.Now
        newMSG.txtFrom.Text = fromNAME
        newMSG.txtMsg.Rtf = msg 'Ao fazer Debug ao programa dá erro aqui diz que "O formato de ficheiro não é válido."
        newMSG.Text = fromNAME & " - " & data
        newMSG.txtDate.Text = data
        newMSG.rPCIP = fromIP
        newMSG.Show()
    End Sub

Mas se no local onde tenho a chamada para este Sub colocar directo este código já funciona bem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:-[

Só hoje que voltei a pegar neste projecto é que detectei o erro  :-[

Eu tinha-me esquecido no frmMAIN no evento LOAD do form, uma chamada ao Sub loadMSG com loadMSG(NomeTeste,200.200.200.200,"teste de mensagem") isto tinha servido para testar o Sub loadMSG, nunca mais me lembrei que tinha ali aquela linha e era devido a isso que dava erro, pois estava a enviar uma string sem ser no formato rtf

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando for assim outra vez, usa e abusa do step-debug (F8 a partir de um break ou F11 para correr em steps).

Apanhavas logo o problema. :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora