End Select
End Sub
Function sReplace(SearchLine As String, SearchFor As String, ReplaceWith As String)
Dim vSearchLine As String, found As Integer
found = InStr(SearchLine, SearchFor): vSearchLine = SearchLine
If found <> 0 Then
vSearchLine = ""
If found > 1 Then vSearchLine = Left(SearchLine, found - 1)
vSearchLine = vSearchLine ReplaceWith
If found Len(SearchFor) - 1 < Len(SearchLine) Then _
vSearchLine = vSearchLine Right$(SearchLine, _
Len(SearchLine) - found - Len(SearchFor) 1)
End If
sReplace = vSearchLine
End Function
Private Sub ChangeText()
Dim Control
For Each Control In Form1.Controls
If TypeOf Control Is TextBox Then
Control.Text = sReplace(Control.Text, "somebody", "me")
End If
Next Control
End Sub
--5-------------------------------------------------------------
提问:
现在我有一个文本框来输入字符串。另外有60个文本框的控件数组,它们包含了我的一个字典。我设法检查字符串中的每一个单词,看它是否符合控件数组中的也就是字典中的单词。我在检验前不得不把标点全部去掉。如果整个句子都拼写对了,我发出一个消息,如果拼错了,发出另一个消息。
感谢所有对此提出的任何建议和想法。
回答:
假定你有一个文本框来输入单词,然后你对照一个数组来检查它们……你可以使用以下代码作为你的起点……但是请考虑把你的字典转换成一个数据库,因为当它成为一个真正的字典时,数据库工作起来快得多。
'on the general section
Dim vWords()
Dim Max%
Dim vCheckWord()
Private Form1_Load()
Text1.SetFocus
Text1.Text = "living in america but not really"
Max% = 10
'make array
'you can use an ascii file to get the words
Redim vCheckWord(Max)
vCheckWord(0) = "walther"
vCheckWord(1) = "musch"
vCheckWord(2) = "america"
vCheckWord(3) = "tilburg"
vCheckWord(4) = "hallo"
vCheckWord(5) = "testen"
vCheckWord(6) = "testing"
vCheckWord(7) = "really"
vCheckWord(8) = "visual"
vCheckWord(9) = "basic"
End Sub
Sub SplitStringintoWords(bron$)
Dim c%, p%, t%, vCheck%
Dim TempBron$, tmp$
Dim vOke As Boolean
'splitting the input into words
t% = 0
TempBron$ = bron$
For c% = 1 To Len(bron$)
p% = InStr(TempBron$, Chr(32))
If p% <> 0 Then
ReDim Preserve vWords(t%)
tmp = Left$(TempBron$, p% - 1)
vWords(t%) = StripString(tmp)
TempBron$ = Right$(TempBron$, Len(TempBron$) - p)
t% = t% 1
c% = c% p%
End If
Next c%
ReDim Preserve vWords(t%)
vWords(t%) = StripString(TempBron)
'checking against spellingschecker
vOke = False
For c% = 0 To t%
For vCheck% = 0 To Max
If vCheckWord(vCheck%) <> vWords(c%) Then
vOke = False
Else
vOke = True
vCheck% = Max%
End If
Next vCheck%
If Not vOke Then MsgBox vWords(c%)
vOke = False
Next c%
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
'split string into words
Call SplitStringintoWords(Text1.Text)
End If
End Sub
Function StripString(source As String) As String
Const Letters$ = "abcdefghijklmnopqrstuvwxyz"
Dim p%, tmp$
tmp = source$
For p% = 1 To Len(source$)
If InStr(Letters, LCase(Mid$(source$, p%, 1))) = 0 Then
Select Case p%
Case 1
tmp = Right$(source$, Len(source$) - p%)
Case Len(source$)
tmp = Left$(source$, Len(source$) - 1)
Case Else
tmp = Left$(source$, p%) & Right$(source$, Len(source$) - p%)
End Select
End If
Next p%
StripString = tmp
End Function
--6-------------------------------------------------------------
提问:
我需要帮助,如何判断一个文件名是否有后缀名,然后剥除这个后缀。原本我是想获得文件名,然后用另一个后缀名来把它存为一个备份文件。有没有一个方便的方法,不用搜索整个路径字符串中的“\”。
回答:
从路径字符串的后面向前查找第一个“\”,用Right$命令,这样你就可以得到文件名。
如果你要删掉后缀名,也这么做,只是查找第一个“.”而已。注意在W95中,文件名可以包括一个以上的“.”
可以使用这样的代码:
Dim p%
Function GetFileName(PathString$) As String
GetFileName = PathString
For p% = Len(PathString) To 0 Step -1
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




