{\rtf1\ansi\ansicpg949 \deff0\deflang1033{\fonttbl
오늘은 위 두 줄의 차이 때문에 엄청 삽질한 하루였다.
참고로 \ansicpg1252는 Windows-1252를 의미하며
iso-8859-1 즉 서유럽어(Windows) 문자인코딩을 의미한다.
다음은 HelloHangul.java를 컴파일, 실행하여 얻은 RTF 파일의 내용이다.
참고로,
http://msdn.microsoft.com/en-us/library/aa140277.aspx 에는 좀 낡은 것이기는 하지만
RTF 1.6 스펙을 볼 수 있으며, 위키백과 http://en.wikipedia.org/wiki/Rich_Text_Format 에는 RTF에 관한 많은 정보를 볼 수 있다.
또,
http://www.java2s.com/Tutorial/VB/0260__GUI/LoadtxtfiletoRichTextBox.htm
를 방문하면 RichTextBox를 이용하여 RTF 파일을 컨트롤하는 어러가지 비베(Visual Bascic)를 여러개 볼 수 있다.
소스 파일명: testReadWriteRTF.bas
Imports System.IO
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Windows.Forms
Imports System.Text
Imports Microsoft.VisualBasic
public class RichTextBoxSaveReadFile
public Shared Sub Main
Application.Run(New Form1)
End Sub
End class
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents RichTextBox1 As System.Windows.Forms.RichTextBox
Friend WithEvents ColorDialog1 As System.Windows.Forms.ColorDialog
Friend WithEvents FontDialog1 As System.Windows.Forms.FontDialog
Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog
Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog
Friend WithEvents btnChangeColor As System.Windows.Forms.Button
Friend WithEvents btnChangeFont As System.Windows.Forms.Button
Friend WithEvents btnSaveRTF As System.Windows.Forms.Button
Friend WithEvents btnOpenRTF As System.Windows.Forms.Button
Friend WithEvents btnWriteControls As System.Windows.Forms.Button
Friend WithEvents btnReadControls As System.Windows.Forms.Button
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.Text = "RTF Reader and Writer"
Me.Panel1 = New System.Windows.Forms.Panel()
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
Me.ColorDialog1 = New System.Windows.Forms.ColorDialog()
Me.FontDialog1 = New System.Windows.Forms.FontDialog()
Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
Me.btnChangeColor = New System.Windows.Forms.Button()
Me.btnChangeFont = New System.Windows.Forms.Button()
Me.btnSaveRTF = New System.Windows.Forms.Button()
Me.btnOpenRTF = New System.Windows.Forms.Button()
Me.btnWriteControls = New System.Windows.Forms.Button()
Me.btnReadControls = New System.Windows.Forms.Button()
Me.TextBox1 = New System.Windows.Forms.TextBox()
Me.TextBox2 = New System.Windows.Forms.TextBox()
Me.TextBox3 = New System.Windows.Forms.TextBox()
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'Panel1
'
Me.Panel1.Controls.AddRange(New System.Windows.Forms.Control() {Me.btnReadControls, Me.btnWriteControls, Me.btnOpenRTF, Me.btnSaveRTF, Me.btnChangeFont, Me.btnChangeColor})
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.Panel1.Location = New System.Drawing.Point(0, 222)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(656, 64)
Me.Panel1.TabIndex = 0
'
'RichTextBox1
'
Me.RichTextBox1.Location = New System.Drawing.Point(16, 8)
Me.RichTextBox1.Name = "RichTextBox1"
Me.RichTextBox1.Size = New System.Drawing.Size(336, 176)
Me.RichTextBox1.TabIndex = 1
Me.RichTextBox1.Text = "Mr. and Mrs. Dursley, of number four, Privet Drive, were proud to say that they w" & _
"ere perfectly normal, thank you very much."
'
'btnChangeColor
'
Me.btnChangeColor.Location = New System.Drawing.Point(24, 24)
Me.btnChangeColor.Name = "btnChangeColor"
Me.btnChangeColor.Size = New System.Drawing.Size(88, 32)
Me.btnChangeColor.TabIndex = 0
Me.btnChangeColor.Text = "Change Color"
'
'btnChangeFont
'
Me.btnChangeFont.Location = New System.Drawing.Point(128, 24)
Me.btnChangeFont.Name = "btnChangeFont"
Me.btnChangeFont.Size = New System.Drawing.Size(88, 32)
Me.btnChangeFont.TabIndex = 1
Me.btnChangeFont.Text = "Change Font"
'
'btnSaveRTF
'
Me.btnSaveRTF.Location = New System.Drawing.Point(232, 24)
Me.btnSaveRTF.Name = "btnSaveRTF"
Me.btnSaveRTF.Size = New System.Drawing.Size(88, 32)
Me.btnSaveRTF.TabIndex = 2
Me.btnSaveRTF.Text = "Save RTF"
'
'btnOpenRTF
'
Me.btnOpenRTF.Location = New System.Drawing.Point(336, 24)
Me.btnOpenRTF.Name = "btnOpenRTF"
Me.btnOpenRTF.Size = New System.Drawing.Size(88, 32)
Me.btnOpenRTF.TabIndex = 3
Me.btnOpenRTF.Text = "Open RTF"
'
'btnWriteControls
'
Me.btnWriteControls.Location = New System.Drawing.Point(440, 24)
Me.btnWriteControls.Name = "btnWriteControls"
Me.btnWriteControls.Size = New System.Drawing.Size(88, 32)
Me.btnWriteControls.TabIndex = 4
Me.btnWriteControls.Text = "Write Controls"
'
'btnReadControls
'
Me.btnReadControls.Location = New System.Drawing.Point(544, 24)
Me.btnReadControls.Name = "btnReadControls"
Me.btnReadControls.Size = New System.Drawing.Size(88, 32)
Me.btnReadControls.TabIndex = 5
Me.btnReadControls.Text = "Read Controls"
'
'TextBox1
'
Me.TextBox1.Location = New System.Drawing.Point(400, 24)
Me.TextBox1.Name = "TextBox1"
Me.TextBox1.Size = New System.Drawing.Size(232, 20)
Me.TextBox1.TabIndex = 2
Me.TextBox1.Text = "TextBox1"
'
'TextBox2
'
Me.TextBox2.Location = New System.Drawing.Point(400, 68)
Me.TextBox2.Name = "TextBox2"
Me.TextBox2.Size = New System.Drawing.Size(232, 20)
Me.TextBox2.TabIndex = 3
Me.TextBox2.Text = "TextBox2"
'
'TextBox3
'
Me.TextBox3.Location = New System.Drawing.Point(400, 112)
Me.TextBox3.Name = "TextBox3"
Me.TextBox3.Size = New System.Drawing.Size(232, 20)
Me.TextBox3.TabIndex = 4
Me.TextBox3.Text = "TextBox3"
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(656, 286)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.TextBox3, Me.TextBox2, Me.TextBox1, Me.RichTextBox1, Me.Panel1})
Me.Panel1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub btnSaveRTF_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnSaveRTF.Click
SaveFileDialog1.InitialDirectory = Application.ExecutablePath
SaveFileDialog1.DefaultExt = "rtf"
SaveFileDialog1.FileName = "NewFile"
SaveFileDialog1.Filter = "Rich Text Files (*.rtf)|*.rtf|All Files (*.*) | *.*"
SaveFileDialog1.ShowDialog()
RichTextBox1.SaveFile(SaveFileDialog1.FileName)
End Sub
Private Sub btnOpenRTF_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnOpenRTF.Click
OpenFileDialog1.InitialDirectory = Application.ExecutablePath
OpenFileDialog1.DefaultExt = "rtf"
OpenFileDialog1.FileName = "NewFile"
OpenFileDialog1.Filter = "Rich Text Files (*.rtf)|*.rtf|All Files (*.*) | *.*"
OpenFileDialog1.ShowDialog()
RichTextBox1.LoadFile(OpenFileDialog1.FileName)
End Sub
Private Sub btnChangeFont_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnChangeFont.Click
Dim theFont As System.Drawing.Font
FontDialog1.ShowDialog()
theFont = FontDialog1.Font
btnChangeFont.Font = theFont
RichTextBox1.SelectionFont = theFont
End Sub
Private Sub btnChangeColor_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnChangeColor.Click
Dim theColor As System.Drawing.Color
ColorDialog1.AllowFullOpen = True
ColorDialog1.AnyColor = True
ColorDialog1.ShowDialog()
theColor = ColorDialog1.Color
btnChangeColor.ForeColor = theColor
RichTextBox1.SelectionColor = theColor
End Sub
End Class
컴파일은 Visual Studio 명령행에서
vbc testReadWriteRTF.bas
하면 되고, 실행은
testReadWriteRTF
하면 된다.
'프로그래밍 > BASIC' 카테고리의 다른 글
명령행 인자 처리 예제 for Visual Basic (0) | 2009.02.13 |
---|---|
조립제법(Horner의 방법) 예제 for Visual Basic (0) | 2009.02.13 |
윈도우 Hello 예제 for Visual Basic 2005 (0) | 2009.01.29 |
Hello 컨솔 예제 for Visual Basic 2005 (0) | 2009.01.29 |
Visial Basic vs FreeBasic (0) | 2009.01.28 |