【vb小程序】急需一个VB小程序计算0-9数字总次数请不要嫌我说得....
网友回答
【答案】 这回完全符合你的题意了.
结果确实如你所给
新建一个exe工程,画一个text文本框,一个按钮.
text文本框的multiline=true
代码如下
'
Option Explicit
Private Sub Command1_Click()
On Error GoTo writeFile:
Dim CacheA As String
Dim CacheB() As String
Dim CacheC() As String
Dim CounterA(0 To 9) As Long
Dim CounterCache(0 To 9) As Long
Dim ThisLenC As Long,LastLenC As Long
Dim i As Integer,j As Integer,b As Long,LastValue As Long,VBOut As String
CacheA = Text1.Text
CacheA = Replace(CacheA,Chr(32),)
CacheA = Replace(CacheA,Chr(13),,)
CacheA = Replace(CacheA,Chr(10),,)
CacheA = Replace(CacheA, ,)
CacheA = Replace(CacheA,),Chr(35))
CacheA = Replace(CacheA,,,Chr(35))
Do
CacheA = Replace(CacheA,Chr(35) & Chr(35),Chr(35))
Loop Until InStr(1,CacheA,Chr(35) & Chr(35),vbTextCompare) = 0
CacheA = Replace(CacheA,Chr(35) & (,()
CacheB = Split(CacheA,Chr(35),,vbTextCompare)
For i = LBound(CacheB) To UBound(CacheB)
If InStr(1,CacheB(i),(,vbTextCompare) = 0 Then
CacheB(i) = CacheB(i) & (1
End If
CacheC = Split(CacheB(i),(,,vbTextCompare)
j = 0
Do While Len(CacheC(0)) > 0
LastLenC = Len(CacheC(0))
CacheC(0) = Replace(CacheC(0),j,,,,vbTextCompare)
ThisLenC = Len(CacheC(0))
CounterA(j) = (LastLenC - ThisLenC) * CLng(CacheC(1)) + CounterA(j)
LastLenC = ThisLenC
j = j + 1
Loop
Next
For i = 0 To 9
CounterCache(i) = CounterA(i)
Next
For i = 0 To 9
For j = i + 1 To 9
If CounterCache(i) > CounterCache(j) Then
b = CounterCache(i)
CounterCache(i) = CounterCache(j)
CounterCache(j) = b
End If
Next
Next
LastValue = 0
For i = 9 To 0 Step -1
If Not LastValue = CounterCache(i) Then
For j = 0 To 9
If CounterA(j) = CounterCache(i) Then
VBOut = VBOut & j
End If
Next
VBOut = VBOut & ( & CounterCache(i) & ),
LastValue = CounterCache(i)
End If
Next
If FileLen(App.Path & \数字总次数.txt) > 0 Then
Kill App.Path & \数字总次数.txt
End If
writeFile:
Open App.Path & \数字总次数.txt For Output As #1
Print #1,Left(VBOut,Len(VBOut))
Close #1
Shell C:\WINDOWS\NOTEPAD.EXE & App.Path & \数字总次数.txt,1
End Sub
Private Sub Form_Load()
Text1.Text =
End Sub