设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: fanion
打印 上一主题 下一主题

[与其它组件] 请教有关截取字符的问题?

[复制链接]
11#
发表于 2006-4-11 04:53:00 | 只看该作者
老实说,我没有看懂你的问题,能具体点吗?
12#
发表于 2006-4-11 05:10:00 | 只看该作者
修改如下:

Function GetStr(L As Integer)
Dim str, str1, I As Integer, J As Integer, rs(99)
str = " 4     4-     5  5-  6  6-  7  7-  8  8-  9  9-  10  10-  11  11-  12  12-  13  13-  1  1-  2  2-  3  3-"
str = (Replace(Trim(str), " ", ","))
''Replace space
MsgBox str
Do Until InStr(1, str, ",,", 1) = 0
str = (Replace(str, ",,", ","))
str = str
Loop
str = str & ","
MsgBox str
''Get "," position
For I = 1 To Len(str)
If Mid(str, I, 1) = "," Then
J = J + 1
rs(J) = I
End If
Next I
I = 1
''Get string
If L > 1 And L <= J Then
GetStr = Mid(str, rs(L - 1) + 1, rs(L) - rs(L - 1) - 1)
ElseIf L = 1 Then
GetStr = Left(str, rs(L) - 1)
ElseIf L > J Then
MsgBox "超出数据范围"
End If
End Function

'//取得字符串
Function ds()
MsgBox GetStr(2) '2表示第2个字符
End Function[em01]
13#
 楼主| 发表于 2006-4-11 05:22:00 | 只看该作者
不在了吗?请贴个代码出来了解一下..
14#
 楼主| 发表于 2006-4-11 05:24:00 | 只看该作者
现在有字符串如下面型式
型式一:“4  4-  5  5-  6  6-  7  7-  8  8-  9  9-  10  10-  11  11-  12  12-  13  13-  1  1-  2  2-  3  3- ”
型式二:“36      37     38       39      40     41 ”
现在要把型式一中的 4截取出来放到变量A,截取4-出来放到变量B,一直截取到3-。
理式二:是把36截取出来变量X,  截取37放到变量Y,一直到41。
15#
发表于 2006-4-11 05:24:00 | 只看该作者
代码不是在上面吗?
16#
 楼主| 发表于 2006-4-11 05:57:00 | 只看该作者
你的函数是要我传目前我要截取第几个字串.但问题我是不知道要取第几个啊?能不能用循环的方式截取出来分别放到数组中.
17#
发表于 2006-4-11 06:14:00 | 只看该作者
下面过程只是在立即窗口中打印,如果要实现放在数组中,请更改Debug.Print处的代码.

Sub MySplit()
Dim strMyStr As String
Dim strTemp As String
Dim i As Integer

strMyStr = "4  4-  5  5-  6  6-  7  7-  8  8-  9  9-  10  10-  11  11-  12  12-  13  13-  1  1-  2  2-  3  3-"

For i = 0 To UBound(Split(strMyStr, "-", -1), 1)
    strTemp = Trim(Split(strMyStr, "-", -1)(i))
  If strTemp <> "" Then
     Debug.Print Split(strTemp, " ", -1)(0)
     Debug.Print Split(strTemp & " ", " ", -1)(UBound(Split(strTemp & " ", " ", -1), 1) - 1) & "-"
  End If
Next
End Sub
18#
发表于 2006-4-11 06:21:00 | 只看该作者
帮到底了,再修改如下,已取得a b值了:

Function GetStr()
Dim str, str1, I As Integer, J As Integer, rs(99), K As Integer, a, b
str = " 4     4-     5  5-  6  6-  7  7-  8  8-  9  9-  10  10-  11  11-  12  12-  13  13-  1  1-  2  2-  3  3-"
str = (Replace(Trim(str), " ", ","))
''Replace space
Do Until InStr(1, str, ",,", 1) = 0
str = (Replace(str, ",,", ","))
str = str
Loop
str = str & ","
''Get "," position
For I = 1 To Len(str)
If Mid(str, I, 1) = "," Then
J = J + 1
rs(J) = I
End If
Next I
I = 1
''Get string
If J Mod 2 = 0 Then
For K = 2 To J Step 2
L = K - 1
'//取得A B 值
a = Mid(str, rs(L - 1) + 1, rs(L) - rs(L - 1) - 1)
b = Mid(str, rs(K - 1) + 1, rs(K) - rs(K - 1) - 1)
MsgBox "(" & a & "," & b & ")"
Next K
End If
End Function
19#
发表于 2006-4-11 16:27:00 | 只看该作者
LTrim,RTrim,及 Trim 函数示例

本示例使用 LTrimRTrim 函数将某字符串的开头及结尾的空格全部去除。事实上只使用 Trim 函数也可以做到将两头空格全部去除。
  1. Dim MyString, TrimString

  2. MyString = "  <-Trim->  "    '
复制代码
设置字符串初值。

  1. TrimString = LTrim(MyString)
复制代码
  
  1. ' TrimString = "<-Trim->  "
复制代码


  1. TrimString = RTrim(MyString)
复制代码
  
  1. ' TrimString = "  <-Trim->"
复制代码


  1. TrimString = LTrim(RTrim(MyString))
复制代码
  
  1. ' TrimString = "<-Trim->"
复制代码


  1. '
复制代码
只使用
  1. Trim
复制代码
函数也同样将两头空格去除。

  1. TrimString = Trim(MyString)
复制代码
  
  1. ' TrimString = "<-Trim->"
复制代码


20#
 楼主| 发表于 2006-4-11 16:49:00 | 只看该作者
fan0217版主的方法不对啊?当字串变成35      36      37     38      39这种型式就不行了。

还有Benjamin_luk     的AB值我不懂是什么意思,我只要截取出来的每一个字串存到数组就可以了。你的第一种方法是对的,只不过怎么样循环把它存到数组里面啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-2-22 02:08 , Processed in 0.101313 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表