RTF C#

DOUTORX 04/04/2012 16:20:09
#399123
Olá,

Eu gostaria de saber como usar essas formatações abaixo em um RTF no C#. Qual é o problema: Eu uso um programa para modelagem de requisitos, no caso o PowerDesigner, e nele digito palavras com acentos sem nenhum problema, mais quando eu tento abrir o arquivo salvo por ele no Notepad (exemplo) ele exibe as palavras que digitei com uma formatação estranha. Por exemplo a palavra NÃO. No programa mostra certo, mais no Notepad mostra N\'e3o

Abaixo a linha que contém o não:

Citação:

{tf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\f0\fs20 N\'e3o (Notes) - Teste\par
}


KERPLUNK 04/04/2012 16:32:38
#399124
Formato RTF é assim mesmo. Se você salvar o texto RTF do objeto RichText ele vai gravar assim mesmo. Utilize a propriedade Text para gravar apenas o texto, sem formatação nenhuma. Ou, use o wordpad para abrir...
DOUTORX 04/04/2012 16:54:47
#399132
Então, mais o PowerDesigner grava dessa forma.

A minha parte é pegar o arquivo é le-lo. E quando faço isso ele converte tudo que é palavra acentuada. Gostarai de saber como ler a palavra no seu modo correto.
KERPLUNK 04/04/2012 17:00:30
#399135
Use o wordpad para abrir...
DOUTORX 05/04/2012 15:50:21
#399236
Já usei o Wordpar, Word 2007, Word 2010, Notepad++

Sempre a mesma coisa....
o que eu preciso é ler esse Não da forma correta e via código.

DOUTORX 10/04/2012 16:43:52
#399502
Alguém sabe como resolver isso?
KERPLUNK 10/04/2012 18:42:14
#399511
Coloque o arquivo aqui que eu faço um [Ô]exemplo[Ô] pra vc...
DOUTORX 11/04/2012 09:11:30
#399555
Arquivo anexado.

KERPLUNK,

Abre o arquivo com qualquer editor de texto, e procure pela palavra: Possui
O código que você ver antes dessa palavra Possui é a palavra Não porém codificada.

O que preciso fazer é conseguir por exemplo usando um Stream é ler esse arquivo com as palavras acentuadas corretamente e não com essa codificação.

Obrigado
DOUTORX 11/04/2012 09:23:01
#399559
Anexo
KERPLUNK 11/04/2012 10:03:36
#399574
O valor que você quer, está dentro de um xml preparado para ser exibido em um browser, por isso, alguns caracteres (como o apóstrofo, por exemplo), são subsituídos pelo seu código unicode. No seu caso, o texto:
{tf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}
{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\f0\fs20 N\[ô]e3o possui Notes.\par
}

Na verdade, deveria ser:
{tf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}
{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\f0\fs20 N\[ô];e3o possui Notes.\par
}

Esse segundo sim, é um valor RTF que pode ser colado em um componente RichTextBox para ser exibido corretamente.
Então o procedimento é meio estranho, mas vai funcionar:
1 - Coloque um componente RichTextBox no seu form.
2 - Suponho que você já tenha um procedimento para buscar esse valor de dentro do arquivo. Então, pegue esse texto, use o comando replace como abaixo colocando-o como valor RTF no objeto RichText:

dim valor as string
valor = [Ô]{tf1\ansi\ansicpg1252\deff0\deflang1046{\fonttbl{\f0\fnil\fcharset0 Times New Roman;}}{\*\generator Msftedit 5.41.21.2509;}\viewkind4\uc1\pard\f0\fs20 N\& # 39e3o possui Notes.\par}[Ô]
[ô]Acima, estou colocando o valor direto na variável, mas deve vir do arquivo...
valor = replace(valor, [Ô]& # 39[Ô], [Ô][ô][Ô]) [ô]substituindo o valor unicode [Ô][ô][Ô] por apóstrofo
RichTextBox1.TextRTF = valor

Isso deve resolver seu problema.


Edição: Depois de publicar, notei que o valor [Ô]& # 39[Ô] (sem os espaços) é substituído pelo apóstrofo normalmente no site. Então estou corrigindo, no valor da variável, vai estar [Ô]& # 39[Ô], na verdade não tem os espaços...
DOUTORX 11/04/2012 15:25:16
#399613
KERPLUNK,

Genial, funcionou perfeitamente.

Agora só para ganho de conhecimento. Por que funcionou tirando aquela parte do código por [ô] ?

Obrigado
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas