打開RTF用RichTextBox控件打開就可以正常顯示和操作了,打開方法如下:
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)三山,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
RichTextBox1.LoadFile
文件名,
rtfRTF'(后綴為rtfText表示打開純文本文件,后綴為rtfRTF時(shí)表示打開RTF文本)
然后就可以用RichTextBox1.Text來取字符串了
如果要把RTF文件保持為Txt文件,可以這樣保存
RichTextBox1.SaveFile
文件名,
rtfText
'(后綴為rtfText表示保存為純文本,后綴為rtfRTF時(shí)表示保存為RTF文本)
加一個(gè)圖片框并隱藏,用來加載圖像。用時(shí)將圖片復(fù)制到剪貼板,再粘貼到richtextbox內(nèi)。
代碼不全無法解答只能給你瞎猜
`A5`H6`C00FFFF
C00FFFF 可能是C顏色(Color),00FFFF 兩個(gè)一組(R、G、B)分代表紅綠藍(lán)的數(shù)值是16位進(jìn)制
`A5`H6`大概一個(gè)是字的大小、一個(gè)是字型如黑體、宋體、粗體等,分別調(diào)整5或6試一下
意思就是做個(gè)記事本吧
看下面的
用VB做一個(gè)記事本實(shí)在不很復(fù)雜,我們完全可以通過向?qū)砗芊奖愕刈龀鰜?。但本文只打算討論用手?dòng)方法制作記事本,旨在向VB初學(xué)者展示:學(xué)VB原來是如此容易!
通過閱讀、研究本文并按本文所述進(jìn)行嘗試,初學(xué)者將學(xué)到很多東西,如怎樣使用RichText控件來打開和保存文件,怎樣制作菜單、工具欄和狀態(tài)欄以及如何對其編寫代碼等。
第一章 讓我們的記事本馬上運(yùn)行
急于求成是初學(xué)者共有的心愿。那好,請按如下三個(gè)步驟做,我們的愿望立即就可以實(shí)現(xiàn)!
步驟一:繪制界面。
新建一個(gè)標(biāo)準(zhǔn)EXE工程,將其Caption屬性改為“超級記事本”,點(diǎn)擊Icon屬性給它找個(gè)合適的Icon圖標(biāo)。單擊菜單“工程”-“部件”,在彈出的“部件”對話框里找到Microsoft RichText Box 6.0和公共對話框Microsoft Common Dialog 6.0并選中它們,單擊“確定”按鈕。這時(shí)左邊的工具欄上出現(xiàn)了我們剛才新添的兩個(gè)控件了。在窗體上繪制RichText Box和Commn Dialog,其中RichText Box的大小和位置可不用理睬,我們將在代碼中處理它,當(dāng)然,有必要把它的ScrollBar屬性設(shè)為2-rtfVertical,這樣在打開和編輯文件時(shí)垂直滾動(dòng)條才可用。
步驟二:編輯菜單。
按Ctrl+E調(diào)出菜單編輯器,我們來做如下幾個(gè)菜單:
一.文件菜單:
文件(第一層) mnuFile
新建(第二層) mnuNew
打開(第二層) mnuOpen
保存(第二層) mnuSave
- (第二層) mnuFileSep (分隔線)
退出(第二層) mnuExit
二.編輯菜單:
編輯(第一層) mnuEdit
復(fù)制(第二層) mnuCopy
剪切(第二層) mnuCut
粘貼(第二層) mnuPaste
- (第二層) mnuEditSep (分隔線)
全選(第二層) mnuSelecAll
三.搜索菜單:
搜索(第一層) mnuSearch
查找(第二層) mnuFind
查找下一個(gè)(第二層) mnuFindOn
四.幫助菜單:
幫助(第一層) mnuHelp
使用說明(第二層) mnuUsage
關(guān)于(第二層) mnuAbout
(注:各菜單項(xiàng)的快捷鍵請自行設(shè)置)
好了,其它的菜單項(xiàng)以后再根據(jù)需要添加?,F(xiàn)在進(jìn)入:
步驟三:編寫代碼。
'聲明查找變量
Dim sFind As String
'聲明文件類型
Dim FileType, FiType As String
'初始化程序
Private Sub Form_Load()
'設(shè)置程序啟動(dòng)時(shí)的大小
Me.Height = 6000
Me.Width = 9000
End Sub
'設(shè)置編輯框的位置和大小
Private Sub Form_Resize()
On Error Resume Next '出錯(cuò)處理
RichTextBox1.Top=20
RichTextBox1.Left=20
RichTextBox1.Height = ScaleHeight-40
RichTextBox1.Width = ScaleWidth-40
End Sub
'新建文件
Private Sub mnuNew_Click()
RichTextBox1.Text = "" '清空文本框
FileName = "未命名"
Me.Caption = FileName
End Sub
'打開文件
Private Sub mnuOpen_Click()
CommonDialog1.Filter = "文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowOpen
RichTextBox1.Text = "" '清空文本框
FileName = CommonDialog1.FileName
RichTextBox1.LoadFile FileName
Me.Caption = "超級記事本:" FileName
End Sub
'保存文件
Private Sub mnuSave_Click()
CommonDialog1.Filter = "文本文檔(*.txt)|*.txt|RTF文檔(*.rtf)|*.rtf|所有文件(*.*)|*.*"
CommonDialog1.ShowSave
FileType = CommonDialog1.FileTitle
FiType = LCase(Right(FileType, 3))
FileName = CommonDialog1.FileName
Select Case FiType
Case "txt"
RichTextBox1.SaveFile FileName, rtfText
Case "rtf"
RichTextBox1.SaveFile FileName, rtfRTF
Case "*.*"
RichTextBox1.SaveFile FileName
End Select
Me.Caption = "超級記事本:" FileName
End Sub
'退出
Private Sub mnuExit_Click()
End
End Sub
'復(fù)制
Private Sub mnuCopy_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
End Sub
'剪切
Private Sub mnuCut_Click()
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelText
RichTextBox1.SelText = ""
End Sub
'全選
Private Sub mnuSelectAll_Click()
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.Text)
End Sub
'粘貼
Private Sub mnuPaste_Click()
RichTextBox1.SelText = Clipboard.GetText
End Sub
'查找
Private Sub mnuFind_Click()
sFind = InputBox("請輸入要查找的字、詞:", "查找內(nèi)容", sFind)
RichTextBox1.Find sFind
End Sub
'繼續(xù)查找
Private Sub mnuFindOn_Click()
RichTextBox1.SelStart = RichTextBox1.SelStart + RichTextBox1.SelLength + 1
RichTextBox1.Find sFind, , Len(RichTextBox1)
End Sub
'使用說明
Private Sub mnuReadme_Click()
On Error GoTo handler
RichTextBox1.LoadFile "Readme.txt", rtfText '請寫好Readme.txt文件并存入程序所在文件夾中
Me.Caption = "超級記事本:" "使用說明"
Exit Sub
handler:
MsgBox "使用說明文檔可能已經(jīng)被移除,請與作者聯(lián)系。", vbOKOnly, " 錯(cuò)誤信息"
End Sub
'關(guān)于
Private Sub mnuAbout_Click()
MsgBox "超級記事本 Ver1.0 版權(quán)所有(C) 2001 土人",vbOKOnly,"關(guān)于"
End Sub
'設(shè)置彈出式菜單(即在編輯框中單擊鼠標(biāo)右鍵時(shí)彈出的動(dòng)態(tài)菜單)
Private Sub RichTextBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuEdit, vbPopupMenuLeftAlign
Else
Exit Sub
End If
End Sub
'防止在切換輸入法時(shí)字體自變(感謝王必成先生提供此方案)
Private Sub RichTextBox1_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeySpace Then
RichTextBox1.SelFontName = CommonDialog1.FontName
End If
End Sub
至此,我們的記事本可以編譯使用了。點(diǎn)擊菜單“文件”-“生成XXX.EXE”,回到桌面運(yùn)行我們的記事本看看,是不是頗有成就感?
當(dāng)然,這樣的記事本還比較粗糙,我們還需要做些工作,請看下一章。
第二章 美化程序界面
多數(shù)字處理軟件都有工具欄和狀態(tài)欄。工具欄和狀態(tài)欄除了能美化我們的程序使其更具有專業(yè)性質(zhì)外,還給用戶帶來操作上的便利?,F(xiàn)在我們就來做一做這兩樣?xùn)|西。
一.工具欄
(一)制作工具欄
單擊“工程”-“部件”,選中Microsoft Windows Common Control 6.0并確定。這時(shí),我們要用到的控件就出現(xiàn)在左邊的工具欄上了。
要做工具欄,首先需要一個(gè)叫ImageList的控件來裝載圖像。在程序界面上添加它,然后右鍵單擊此控件,左鍵單擊“屬性”,彈出“屬性頁”對話框的“圖像”,再單擊“插入圖片”就可以一次性裝載圖片了(如不滿意,以后還可以添加)。圖片可在C:\Microsoft Visual Studio\Common\Graphics\Bitmaps\TlBr_W95下選擇(這里假設(shè)你的VB安裝在C盤下)。注意了:在插入圖片時(shí)給每一張圖片注明關(guān)鍵字,以便在引用圖片時(shí)不至于混亂。如插入“新建”的圖片,我們在“關(guān)鍵字”欄注明“New”。
圖片有了,接下來在程序界面添加工具欄(ToolBar)。添加后工具欄就出現(xiàn)在菜單下面,右鍵單擊它,選擇“屬性”,在彈出的“屬性頁”對話框中的“通用”項(xiàng)作些設(shè)置,主要如下兩項(xiàng):
1.“圖像列表”:選擇ImageList1
2.“樣式”:根據(jù)喜愛選擇1-trbStandard或者2-trbFlat
繼續(xù)點(diǎn)擊“屬性頁”的“按鈕”選項(xiàng),插入若干按鈕。按鈕有多種樣式,請根據(jù)需要設(shè)置。這里請一定注意:每一個(gè)與用戶操作有關(guān)的按鈕都必須注明關(guān)鍵字、裝載圖片,如“新建”按鈕,在“關(guān)鍵字”項(xiàng)注明“新建”,在“圖像”項(xiàng)鍵入“New”(即ImageList1中的圖片關(guān)鍵字),需要的話還可以在“工具提示文本”項(xiàng)填入適當(dāng)?shù)奶崾菊Z。
(二)編寫工具欄的按鈕代碼
工具欄按鈕的代碼編輯很簡單,可以按照下面的格式去編寫:
Private Sub ToolBar1_ButtonClick(ByVal Button As MSComctlLib.Button)
On Error Resume Next '出錯(cuò)處理
Select Case Button.Key '按關(guān)鍵字選擇
Case "新建"
mnuNew_Click '等于菜單項(xiàng)“新建”被單擊
Case "打開" '等于菜單項(xiàng)“打開”被單擊
mnuOpen_Click
'......(繼續(xù)編寫其它按鈕的代碼)
End Select
End Sub
完成后試運(yùn)行一下我們的程序,我們發(fā)現(xiàn),有了工具欄之后,程序變得漂亮多了,只是有一個(gè)問題:打開一個(gè)較長的文檔后,編輯框的下拉滾動(dòng)條向上的箭頭不見了。原因是:工具條占用一定的空間。解決方法:將“設(shè)置編輯框的位置和大小”中的RichTextBox1.Top = 20 和 RichTextBox1.Height = Me.ScaleHeight - 40分別改為RichTextBox1.Top = 380,RichTextBox1.Height = Me.ScaleHeight - 400即可。
二.狀態(tài)欄
(一)制作狀態(tài)欄
狀態(tài)欄的英文名字叫StatusBar,在窗體上添加它后會(huì)默認(rèn)出現(xiàn)在窗體的最下方。用鼠標(biāo)右鍵點(diǎn)擊它,調(diào)出“屬性頁”對話框,單擊“窗格”項(xiàng),插入一些窗格,可以將各個(gè)窗格的“樣式”設(shè)置為:
0-sbrText 顯示文本,需編寫代碼
1-sbrCaps 顯示大小寫狀態(tài),無需編程
2-sbrNum 顯示NumLock鍵開關(guān)狀態(tài),無需編程
3-sbrIns 顯示Insert鍵狀態(tài),無需編程
4-sbrScr1
5-sbrTime 顯示時(shí)間,不編程時(shí)時(shí)間不會(huì)隨系統(tǒng)時(shí)鐘變化
6-sbrDate 顯示日期,無需編程
注意:加進(jìn)狀態(tài)欄后需將Form_Resze中的RichTextBox1.Height = Me.ScaleHeight - 400改為RichTextBox1.Height = Me.ScaleHeight - 600。
(二)狀態(tài)欄根據(jù)其“樣式”屬性決定用不用編寫代碼(如上文所述)。下面舉些例子,讀者可以認(rèn)真揣摩,從而達(dá)到舉一反三的效果。
例一:用戶選取了“新建”后,讓第一個(gè)窗格顯示:“目前狀態(tài):正在打開文件《……》”。請將下面代碼寫進(jìn)“打開”菜單里面:
StatusBar1.Panels(1).Text = "目前狀態(tài):正在打開文件" "《" CommonDialog1.FileTitle "》"
例二:讓第三個(gè)窗格顯示時(shí)間并讓時(shí)間跟隨系統(tǒng)時(shí)鐘變化。
首先,給程序加一個(gè)Timer控件,將其Interval屬性設(shè)為1000。然后:
在Form_Load過程加入:StatusBar1.Panels(1).Text = Time;然后給Timer控件編寫代碼:
Private Sub Timer1_Timer()
If StatusBar1.Panels(3).Text CStr(Time) Then
StatusBar1.Panels(3).Text = Time
End If
End Sub
例三:當(dāng)編輯框的文本發(fā)生變化時(shí)讓第一個(gè)窗格顯示:“正在編輯文檔:文件名”。
Private Sub RichTextBox1_Chang()
StatusBar1.Panels(1).Text = "正在編輯文檔:" CommonDialog1.FileName
End Sub
辛苦了那么久,我們現(xiàn)在已經(jīng)擁有一個(gè)象模象樣的記事本了。這個(gè)記事本由于用了RichText控件,理論上它能打開和編輯任意大的文檔,使用起來的確比Windows自帶的記事本方便得多。當(dāng)然,還有一些其它的功能需要添加和完善,這就靠你慢慢去完成了。
回答完畢!
除非使用word的vba方式也就是用vb.net操作word
否則 不可能編程實(shí)現(xiàn)兩者的轉(zhuǎn)換,word的文件結(jié)構(gòu)需要許可的,而且很復(fù)雜
當(dāng)然可以通過xml格式,但是和在word中另存為rtf格式 沒有本質(zhì)的區(qū)別
你熟悉操作XML結(jié)構(gòu)的文件嗎?如果熟悉的話就好辦了。
Microsoft Office 2007系列保存文件多了個(gè)格式docx,你把docx后綴改成rar,然后用Winrar打開就會(huì)
看到其實(shí)是個(gè)XML文件。接下來用你的VB對XML操作便可以獲取或修改Word文檔里的內(nèi)容了。
在XML層面操作文本文件,很容易解決諸如“ABC”替換“CBA”或者發(fā)現(xiàn)含有“ABC”就xxx="T"之類的。
像你這個(gè)需求不用懂XML其實(shí)也可以解決,只要保證你的關(guān)鍵詞字不與word格式里關(guān)鍵詞重疊就行。
對了,winrar安裝后有個(gè)rar.exe,是可以dos下用的,可以利用批處理自動(dòng)修改docx文件名為rar并用rar.exe e 123.docx
接下來
Open "c:\123.xml" For Input As #1
Open "c:\234.xml" For Input As #2
Do While Not EOF(1)
Line Input #1,s
If Instr(1,s,"ABC")0 Then
Label1.Caption = "T"
s = Replace ("ABC","CBA")
Print #2, s
End If
Loop
Close #2
Close #1
這樣既可,當(dāng)然正宗上道的方法還是用Office Word里帶的VBA來做此事