Jump to content
Weasel

Richtextbox carregar um rtf guardado numa string

Recommended Posts

Weasel

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?


Knowledge to the masses


Share this post


Link to post
Share on other sites
ribeiro55

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...


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Weasel

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.


Knowledge to the masses


Share this post


Link to post
Share on other sites
ribeiro55

Compara a string que envias com a que recebes.

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


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Weasel

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


Knowledge to the masses


Share this post


Link to post
Share on other sites
ribeiro55

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.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Nazgulled

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...

Share this post


Link to post
Share on other sites
Weasel

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.


Knowledge to the masses


Share this post


Link to post
Share on other sites
Weasel

😳

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


Knowledge to the masses


Share this post


Link to post
Share on other sites
ribeiro55

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


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.