| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2209 人关注过本帖
标题:继续[求助]VB编程的一道题
只看楼主 加入收藏
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 
心中有剑,你的思路跟版主的是一样的么?
2007-08-30 14:35
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 

Public Function GetStr(str) As String '自定义函数
Dim TStr, re
TStr = str
Set re = CreateObject("vbscript.regexp") '正则表达式对象
re.Pattern = "[^a-z]" '规则非数字字符

re.Global = True '全局可用性。
TStr = re.Replace(TStr, "")

Set re = Nothing '释放对象
GetStr = TStr
End Function

这自定义的函数有些地方不理解,

我想问如果不用自定义函数怎么实现呢?

2007-08-30 14:39
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 
一样,那就前面改下了!哈哈 我看看啊!

2007-08-30 14:41
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 
以下是引用multiple19O2在2007-8-30 12:56:50的发言:

非字母的你不理他就是了。


Dim Ins(1000) As String
Dim I,j,k
Dim L(1000) As Integer
j=1
For i=1 to len(inputstr)
Ins(i)=Mid(Inputstr,i,1)
if Instr("abcdefghilmnopqrstuvwxyz",Ins(i))>0 Then
L(j)=I
J=J+1
End If
next
j=j-1
for i=1 to j-1
for k=i+1 to j
If Ins(i)>Ins(k) Then
Ins(i)=Chr(Asc(Ins(j)) Xor Asc(Ins(i)))
ins(j)=Chr(Asc(Ins(j)) Xor Asc(Ins(i)))
Ins(i)=Chr(Asc(Ins(j)) Xor Asc(Ins(i))) '这3行完成变量交换
next 'k
next 'i
Dim Outstr as string
for i=1 to 1000 '本程序中下标从1开始使用的
outstr=outstr & Ins(i)
Next


我也就能理解这程度的代码,心中有剑大哥的那个实在是看不太懂啊

2007-08-30 14:44
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 

[CODE]Private Sub Command1_Click()
Dim strTemp As String
Dim strArr() As String
Dim llCount As Long
Dim i As Integer, j As Integer
strTemp = Text1
i = 0
For llCount = 1 To Len(strTemp)
If Mid$(strTemp, llCount, 1) Like "[^a-z]" Then
i = i + 1
ReDim Preserve strArr(i) As String
strArr(i) = Mid$(strTemp, llCount, 1)
End If
Next
'排序
Text2 = ""
Dim tmp As String
For i = 1 To UBound(strArr)
For j = i + 1 To UBound(strArr)
If strArr(i) > strArr(j) Then
'交换两数
tmp = strArr(i)
strArr(i) = strArr(j)
strArr(j) = tmp
End If
Next j
Next i
i = 0
For llCount = 1 To Len(strTemp)
If Mid$(strTemp, llCount, 1) Like "[^a-z]" Then
i = i + 1
Text2 = Text2 & strArr(i)
Else
Text2 = Text2 & Mid$(strTemp, llCount, 1)
End If
Next
End Sub
Private Sub Form_Load()
Text1 = "ccbb1aa4ggff1ee"
Text2 = ""
End Sub[/CODE]
这下看懂了吧! 哎


2007-08-30 14:50
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 
呵,差不多了,谢谢哩
2007-08-30 14:51
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 
MID$ 是???
2007-08-30 14:54
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 

跟 mid一个道理!


2007-08-30 14:56
JackyNone
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2007-8-30
收藏
得分:0 

那干嘛加个$,

最后问一个问题,ReDim Preserve strArr(i) As String解释一下这条代码

2007-08-30 14:58
心中有剑
Rank: 2
等 级:新手上路
威 望:5
帖 子:611
专家分:0
注 册:2007-5-18
收藏
得分:0 

你看看 msdn吧!帮助里写的很详细了!保留重定义数组! 加$ 是证明字符串类型基本没区别,不过习惯写法而已


2007-08-30 15:23
快速回复:继续[求助]VB编程的一道题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023618 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved