English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

我朋友在軍中
要用到四角號碼

四角號碼如:

一1000
乙1771
丁1020
七4071
乃1722
九4001
了1720
二1010
人8000
入8000
八8000
几7721
刀1722
刁1712
力4002
匕2171
十4000
卜2300
又7740
三1010

享用VB寫出對照的方法

例如我打"一"就會出現"1000"

或者是我打"1000"就會出現"一"

不過四角號碼有一萬三千多字該怎ㄇ處理

2005-11-30 12:23:17 · 5 個解答 · 發問者 小線條 3 in 電腦與網際網路 程式設計

p.s有誰願意幫我寫程式ㄋ~因為資料庫我不會用

2005-11-30 17:29:46 · update #1

5 個解答

以下是程式碼 你要做一個COMMAND1 TEXT1.TEXT TEXT2.TEXT
我剛好有四角號碼的對照文字檔
你應該也有四角號碼對照檔吧
那個資料格式用COMMAND1來執行處理
四角號碼檔要和程式放一起
就可轉換成現在程式用的資料格式
這程式已經測試過 沒問題 只是很簡陋而已
你自己改漂亮點就好了
至於13000筆資料的查詢速度
極快 因為四角號碼對照的文字檔才101K
搜尋速度大概才不到1秒吧
我的CPU是 P4 2.0G
以下是程式部份 當然 文字說明部份不要COPY進去

Dim CHARTON(14000, 2) As String
Dim NUM_CONT As Integer

這個Command1_Click()是用來把資料分解成循序檔
兩欄資料 第一個是字元 第二個是四角號碼
第一次用完就沒用了
只是把資料作成雙引號格式
例如 "一","1000"
注意!!!!
一開始只COPY COMMAND1的程式部份 先執行
然後這COMMAND1的程式部份就可以刪掉了
只用一次!!!
之後再把後面的COPY進去 執行就可以了

Private Sub Command1_Click()

FILE_NAME = App.Path & "/FOUR CORN.txt"
Open FILE_NAME For Input As #1
Do While Not EOF(1)
Input #1, aaa
NUM_CONT = NUM_CONT + 1
CHARTON(NUM_CONT, 1) = Mid$(aaa, 1, 1)
CHARTON(NUM_CONT, 2) = Mid$(aaa, 2, 4)
Loop
Close #1

FILE_NAME = App.Path & "/FOUR CORN1.txt"
Open FILE_NAME For Append As #1
For i = 1 To NUM_CONT
Write #1, CHARTON(i, 1),CHARTON(i, 2)
Next i
Close #1


End Sub

這個Form_Load()用來載入新完成的資料檔
並且讀到陣列裡去
記得要先處理完資料再將以下的部份放進去

Private Sub Form_Load()
FILE_NAME = App.Path & "/FOUR CORN1.txt"
Open FILE_NAME For Input As #1
Do While Not EOF(1)
Input #1, aaa, bbb
NUM_CONT = NUM_CONT + 1
CHARTON(NUM_CONT, 1) = aaa
CHARTON(NUM_CONT, 2) = bbb
Loop
Close #1
End Sub

當text1.text輸入文字並且按下ENTER時
就開始做陣列的資料比對
若有找到 就會在text2.text顯示對應的四角號碼

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
charttt = Trim(Text1.Text)
For i = 1 To NUM_CONT
If charttt = CHARTON(i, 1) Then
Text2.Text = CHARTON(i, 2) <--修改過了
Exit For
End if
Next i
End If
End Sub

當text2.text輸入四角號碼並且按下ENTER時
就開始做陣列的資料比對
若有找到 就會在text1.text顯示對應的文字

Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
Text1.Text = ""
charNUM = Trim(Text2.Text)
For i = 1 To NUM_CONT
If charNUM = CHARTON(i, 2) Then
Text1.Text = Text1.Text & " " & CHARTON(i, 1)
End If
Next i
End If

End Sub

...恩 這樣有重複的文字應該就可以顯示了

如果再加入這個
Private Sub Text1_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

Private Sub Text2_Click()
Text1.Text = ""
Text2.Text = ""
End Sub

輸入就更方便了

2005-12-01 01:26:30 補充:
如果你沒有四角號碼對照表的檔案
再跟我拿吧

2005-11-30 19:12:42 · answer #1 · answered by ? 5 · 0 0

(A)先到這裡:http://schoolcatalog.school.net.hk/hktla/misc/four_con.txt下載四角號碼,然後將它另存新檔在跟你專案相同路徑底下,檔名為four_con.txt
(B)專案須引用Microsoft DAO 3.51 Object Library(個人認為DAO執行搜尋的速度比ADO快)
(C)建立1個TextBox跟CommandButton,把Code貼上企,執行時在TextBox輸入單字或四角號碼既可.PS:先聲明我不知道上述網址之資料是否有誤!!
Dim Db As Database
Private Sub Command1_Click()
Dim S As String, Re As Recordset
S = Text1.Text
If Len(S) = 1 Then
S = "[Key]='" & S & "'"
ElseIf Len(S) = 4 And IsNumeric(S) Then
S = "[Num]='" & S & "'"
Else
Exit Sub
End If
Set Re = Db.OpenRecordset("Select * From Data.csv Where " & S)
If Re.RecordCount > 0 Then
Re.MoveFirst: S = ""
Do Until Re.EOF
S = S & Re("Key") & "→" & Re("Num") & vbCrLf
Re.MoveNext
Loop
MsgBox S
End If
Set Re = Nothing
End Sub
Private Sub Form_Load()
Dim S1 As String, Dr As String
Dr = IIf(Right(App.Path, 1) = "\", App.Path, App.Path & "\")
If Dir(Dr & "Data.csv") = "" Then
If Dir(Dr & "four_con.txt") <> "" Then
'建立Data.csv(CSV格式)資料庫
Open Dr & "four_con.txt" For Input As #1
Open Dr & "Data.csv" For Output As #2
Write #2, "Key";: Write #2, "Num"
Do Until EOF(1)
Input #1, S1
If S1 <> "" Then Write #2, Left(S1, 1);: Write #2, Right(S1, 4)
Loop
Close #1
Close #2
Else
MsgBox "找不到" & Dr & "four_con.txt" & "無法執行!!"
End
End If
End If
Set Db = OpenDatabase(Dr, False, False, "TEXT;")
Text1.MaxLength = 4
End Sub

2005-12-01 08:17:15 · answer #2 · answered by W.J.S. 7 · 0 0

一萬多筆資料,又不想自己寫的話,花點錢解決吧!

2005-11-30 19:45:03 · answer #3 · answered by ? 6 · 0 0

一萬三千多字......可能就要用到資料庫了,沒辦法寫死在程式裡
利用VB寫出查詢界面,運用SQL指令找出你要的資料,簡單的說,這是一支資料庫程式

2005-11-30 13:10:04 · answer #4 · answered by Anonymous · 0 0

建DB吧~沒聽過有這種元件可以用

2005-11-30 13:07:41 · answer #5 · answered by 岔題與亂回文程度的能力 4 · 0 0

fedest.com, questions and answers