?? richtextbox的find方法如何應用于中文.txt
字號:
你 這 段 程 序 對 于 英 文 文 本 是 正 確 的 , 對 中 文 則 是 錯 誤 的 。 我 在 “VB 5提示錯誤:"輸入超出文件尾"”介 紹 了 VB是 如 何 處 理 中 文 字 符 串 的 。 對 于 RichTextBox, 它 的 Find、 SelLength都 是 按 照 一 個 漢 字 算 一 個 字 符 計 算 的 , 但 Find的 第 二 個 參 數 是 按 照 一 個 漢 字 算 兩 個 字 符 計 算 的 , 這 樣 的 處 理 方 法 導 致 你 的 程 序 無 法 應 用 于 中 文 。 下 面 是 正 確 的 程 序 , 其 中 SelS是 按 照 按 照 一 個 漢 字 算 兩 個 字 符 計 算 , 而 SelS按 照 一 個 漢 字 算 一 個 字 符 計 算 。
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" ( _
ByVal lpString As String) As Long
Private Sub Command1_Click()
Dim I, SelS, SelC As Long
Dim StrLen, OldStrLen As Long
Dim TMPstr As String
SelS = 0
SelC = 0
Text1.Text = Chr(13) ''Text1 為 換 行 標 記
Dim FoundPos As Integer
Dim FoundLine As Integer
'查 找 TextBox 控 件 中 指 定 的 文 本 。
'SelS = 1
Do While FoundPos <> -1
FoundPos = RichTextBox1.Find(Text1.Text, SelS)
RichTextBox1.SelStart = SelC
If FoundPos <> -1 Then
RichTextBox1.SelLength = FoundPos - SelC
SelC = FoundPos
MsgBox "查 找 的 字 符 串 是 : " & RTrim(RichTextBox1.SelText)
Else
Exit Do
End If
SelS = SelS + lstrlen(RichTextBox1.SelText) + Len(Text1.Text)
Loop
End Sub
<END>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -