读书人

请问一个代码写法

发布时间: 2012-02-13 17:20:26 作者: rapoo

请教一个代码写法
我这有三个text第一个text是个固定的三位数,第二个text值是第一个text值的邻号,第三个是0到9之间剩下的数
我举个例子啊,如果text1.text= "267 "那么text2.text= "13458 "
text3.text= "09 "
  这个用VB来实现,怎么写?
  还有一个问题是我数据库表中记录是些三位数,我想统计前十条记录中某个数字出现的次数,这该怎么实现?
  比如 前三条记录是379,290,237
那么我想知道9的出现次数就是二次,
  高手们帮帮忙,用代码怎么实现?

[解决办法]
1.
private function GetNext(byval iValue as string) as string
dim i as byte
dim strRet as integer
dim j as byte

strRet = " "
for i = 1 to 3
j=cbyte(mid(ivalue,i,1))
strRet = strRet & cstr(j-1) & cstr(j+1)
next
GetNext = strRet
end function

2.先读出前十条记录,连成一个字串,再用循环判断
objconn.open
sql = "select top 10 field from table "
objrs.open sql,objconn,1,1
strRet = objRs.getstring(, " ", " ")
intCount = 0
for i = 1 to len(strRet)
if mid(strRet , i ,1)= "9 " then
intCount = intCount +1
end if
next
msgbox "共出现 " & intCount & "次 "

[解决办法]
Private Sub Command1_Click()
Dim n(3), n1, n2, a(9), i, j, s
For i = 1 To Len(Text1)
n(i) = Mid(Text1, i, 1): a(n(i)) = 1
Next
For i = 1 To Len(Text1)
If n(i) > 0 Then n1 = n1 & IIf(a(n(i) - 1) = 0 And n(i) > 0, n(i) - 1, " "): a(n(i) - 1) = 1
If n(i) < 9 Then n1 = n1 & IIf(a(n(i) + 1) = 0 And n(i) < 9, n(i) + 1, " "): a(n(i) + 1) = 1
Next
For i = 0 To 9
n2 = n2 & IIf(a(i), " ", i)
Next
Text2 = n1: Text3 = n2
End Sub

[解决办法]
' '1
Option Explicit

Private Sub Form_Load()
Dim m As Long, n As Long
Dim Temp As String
Dim Str1 As String, Str2 As String, Str3 As String

Str1 = "378 "

For m = 1 To 3
n = Val(Mid(Str1, m, 1))
Temp = CStr(n - 1)
If Temp < 0 Then Temp = " "
If InStr(1, Str1, Temp) = 0 And InStr(1, Str2, Temp) = 0 Then Str2 = Str2 & Temp

Temp = CStr(n + 1)
If Temp > 9 Then Temp = " "
If InStr(1, Str1, Temp) = 0 And InStr(1, Str2, Temp) = 0 Then Str2 = Str2 & Temp
Next m

For m = 0 To 9
If InStr(1, Str1 & Str2, CStr(m)) = 0 Then Str3 = Str3 & CStr(m)
Next m
Debug.Print Str1, Str2, Str3

End Sub


[解决办法]
' ' '2
Option Explicit

Private Sub Form_Load()
' '先将前三条读出,连成字符串 str1
Dim str1 As String, str2 As String
Dim m As Long
str2 = Replace(str1, "9 ", " ")
Debug.Print Len(str2) - Len(str1) '
End Sub

读书人网 >VB

热点推荐