2013-08-24 2 views
0

VB.NET에서 RTB를 사용하고 서식 지정 텍스트를 암호화 한 후 파일에 저장하는 이벤트 처리기를 배치했습니다. 그러나 서식을 다시로드하는 방법을 알 수 없습니다. 서식을 열면 서식있는 텍스트 대신 서식의 기호가 표시됩니다. 여기 내 코드 :형식이 지정된 텍스트를 RTB로 다시로드하려면 어떻게해야합니까?

Dim FileName As String = TextBox1.Text 
File.Delete(FileName) 
Dim EncryptElement As New TripleDESCryptoServiceProvider 
      EncryptElement.Key = {AscW("B"c), AscW("A"c), AscW("1"c), AscW("R"c), AscW("3"c), AscW("9"c), AscW("G"c), AscW("V"c), AscW("5"c), AscW("S"c), AscW("P"c), AscW("0"c), AscW("L"c), AscW("Z"c), AscW("4"c), AscW("M"c)} '128 bit Key 
      EncryptElement.IV = {AscW("N"c), AscW("B"c), AscW("5"c), AscW("3"c), AscW("G"c), AscW("L"c), AscW("2"c), AscW("Q"c)} ' 64 bit Initialization Vector 

Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate) 
Dim cStream As New CryptoStream(fStream, New TripleDESCryptoServiceProvider().CreateEncryptor(EncryptElement.Key, EncryptElement.IV), CryptoStreamMode.Write) 

Dim sWriter As New StreamWriter(cStream) 

sWriter.WriteLine(RichTextBox1.Rtf) 

sWriter.Close() 
cStream.Close() 
fStream.Close() 

위의 코드는 저장하기위한 것이며, 아래 코드는 열기위한 코드입니다.

Dim FileName As String = TextBox1.Text 
Dim DecryptElement As New TripleDESCryptoServiceProvider 
      DecryptElement.Key = {AscW("B"c), AscW("A"c), AscW("1"c), AscW("R"c), AscW("3"c), AscW("9"c), AscW("G"c), AscW("V"c), AscW("5"c), AscW("S"c), AscW("P"c), AscW("0"c), AscW("L"c), AscW("Z"c), AscW("4"c), AscW("M"c)} 
      DecryptElement.IV = {AscW("N"c), AscW("B"c), AscW("5"c), AscW("3"c), AscW("G"c), AscW("L"c), AscW("2"c), AscW("Q"c)} 

Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate) 

Dim cStream As New CryptoStream(fStream, New TripleDESCryptoServiceProvider().CreateDecryptor(DecryptElement.Key, DecryptElement.IV), CryptoStreamMode.Read) 

Dim sReader As New StreamReader(cStream) 

Dim DecryptedData As String = "" 

DecryptedData = sReader.ReadToEnd 

RichTextBox1.AppendText(DecryptedData) 
RichTextBox1.Enabled = True 
Button1.Text = "OK" 

sReader.Close() 
cStream.Close() 
fStream.Close() 

어디에서 문제가 발생합니까?

답변

0

당신은 RichTextBox1.SaveFile (SomeStream, RichTextBoxStreamType)이 필요합니다. 저는 StreamWriter가 그것을 채우고 있다고 생각합니다.

아, 그리고 방금 세계 당신이 새로운 마련 할 수 있습니다 암호화의 키를 주면서보고 ...

추가 코멘트 후에하지만 입증되지.

RichTextBox1.SaveFile(cStream,RichTextBoxStreamType.RichText); 

와 일상

Dim sWriter As New StreamWriter(cStream) 
sWriter.WriteLine(RichTextBox1.Rtf) 

저장하여이 두 라인을 교체하고 내가 생각 swriter.Close()

제거.

+0

어디에 넣어 줄 수 있습니까? 죄송합니다. 아직 배우고 있습니다. – Rahul

+0

저장 루틴에서 이와 비슷한 것입니다. –

+0

\ tab과 같은 태그를 제공합니다 .. – Rahul

관련 문제