| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:请教一个有关函数的问题
只看楼主 加入收藏
jiafeng6
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-9-1
收藏
 问题点数:0 回复次数:6 
请教一个有关函数的问题
各位大虾好,小生于一个问题需要请教:
通过哪个函数能够自动判断一个数据前面有没有字母,如果有就去掉数据前面的字母,输出数据;如果没有就直接输出数据。

举例:对于“C25200.0”,该函数能够自动判断出数据前面有字母并去掉字母(C),输出“25200.0";
对于“28520.0”,该函数能够自动判断数据前面没有字母,输出“28520.0”。

请大师不吝赐教,谢谢!!
搜索更多相关主题的帖子: 函数 字母 数据 自动判断 
2007-09-15 12:29
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 

[CODE]Function TickOutForwardingChars(inputStr As String) As String
Const MathStr = "0123456789"
Dim i As Integer, startPos As Long
startPos = 65536
For i = 1 To 10
startPos = IIf((InStr(inputStr, Mid(MathStr, i, 1)) < startPos) And (InStr(inputStr, Mid(MathStr, i, 1)) > 0), InStr(inputStr, Mid(MathStr, i, 1)), startPos)Next 'i
TickOutForwardingChars = Right(inputStr, Len(inputStr) - startPos + 1)
End Function[/CODE]

2007-09-15 12:51
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
楼上的代码多次使用了Mid(MathStr, i, 1)
应该使用个变量来存放.效率会高一些.

我的msn: myfend@
2007-09-15 14:33
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 

[CODE]Public Function TickOutForwardingChars(inputStr As String) As String
Const MathStr = "0 1 2 3 4 5 6 7 8 9"
Dim MathArr() As String
MathArr = Split(MathStr)
Dim i As Integer, startPos As Long
startPos = 65536
For i = 1 To 10
startPos = IIf((InStr(inputStr, MathArr(i)) < startPos) And (InStr(inputStr, MathArr(i)) > 0), InStr(inputStr, MathArr(i)), startPos)
Next 'i
TickOutForwardingChars = Right(inputStr, Len(inputStr) - startPos + 1)
End Function[/CODE]

[此贴子已经被作者于2007-9-15 14:37:23编辑过]

2007-09-15 14:36
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
这是我写的版本.

Private Sub Command1_Click()
Dim s As String
s = "ABC200.1"
Print trimEngChar(s)
s = "200.1"
Print trimEngChar(s)
End Sub

Public Function trimEngChar(strSource As String) As String
Dim intIndex As Integer
Dim intStrLength As Integer
Dim intCharIndex As Integer
Dim strChar As String

'get string length
intStrLength = Len(strSource)

'first char is not number
If Not IsNumeric(Mid(strSource, 1, 1)) Then
intCharIndex = 1
For intIndex = 1 To intStrLength
strChar = Mid(strSource, intIndex, 1)
If Not IsNumeric(strChar) Then
intCharIndex = intCharIndex + 1
Else
Exit For
End If
Next
trimEngChar = Mid(strSource, intCharIndex)
Else
trimEngChar = strSource
End If
End Function


我的msn: myfend@
2007-09-15 14:52
论坛元老
Rank: 1
等 级:新手上路
帖 子:812
专家分:0
注 册:2008-3-31
收藏
得分:0 
路过,顶一下
2008-04-02 15:11
hyhhd
Rank: 2
等 级:论坛游民
威 望:1
帖 子:502
专家分:44
注 册:2006-5-12
收藏
得分:0 
如果为“H”怎么办?十六进制!

2008-04-03 18:37
快速回复:请教一个有关函数的问题
数据加载中...
 
   



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

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