定义一个strTemp=UCASE(sourcestring)定义一个数组,存储各个abc出现的位置,然后midintArray(index)=instr(strTemp,"ABC")

解决方案 »

  1.   

    你能说的明白点吗?为什么提取abc?
      

  2.   

    计算ascii码
    a65   A90
    b66   B91
    c67   C92
      

  3.   

    '没VB,不能调试,大体上就是这个意思
    dim a as string
    dim p as integer
    a="abc123Abc4567aBc89"
    p=instr(lcase(a),"abc")
    while p<>0
    list1.additem mid(a,p,3)
    p=instr(p,lcase(a),"abc") '或是p=instr(lcase(a),p,"abc")我忘了起始位置参数是第一个还是第二个了,我这儿没VB,不好意思
    wend
      

  4.   

    Dim L As Integer
    Dim AA, TMPAA As String
    AA = "abc123Abc4567aBc89"
    L = Len(AA)
    For X = 1 To L
            TMPAA = UCase(Mid(AA, X, 3))
            If TMPAA = "ABC" Then
                List1.AddItem Mid(AA, X, 3)
                X = X + 2
            End If
    Next
      

  5.   

    Private Sub CutString(lstDest As ListBox, strSrc As String, strCut As String)
        Dim intOffset As Integer        '找到的需要截取的字符串的位置
        Dim intCutPos As Integer        '应截取的位置
        Dim intCutLength As Integer     '截取长度
        
        Dim strTmpSrc As String
        Dim strTmpCut As String
        
        strTmpSrc = UCase(strSrc)       '把字符串转换成大写
        strTmpCut = UCase(strCut)       '把要借取的字符串转换成大写
        intCutLength = Len(strCut)      '取得截取的长度
        intOffset = InStr(strTmpSrc, strTmpCut)     '找到字符串出现的位置
        
        If intOffset = 0 Or intCutLength = 0 Then
            Exit Sub
        Else
            intCutPos = intOffset - 1   '计算截取位置
        End If
        
        Do While intOffset <> 0
            lstDest.AddItem Mid(strSrc, intCutPos + 1, intCutLength) '向列表框添加Item
            strTmpSrc = Mid(strTmpSrc, intOffset + intCutLength)    '重新获得字符串
            intOffset = InStr(strTmpSrc, strTmpCut)                 '找到字符串出现的位置
            intCutPos = intCutPos + intOffset - 1 + intCutLength    '计算截取位置
        Loop
    End Sub好了,可以用了。其中lstDest 是要添加Item的列表框控件, strSrc 是原始的字符串, strCut 是需要的字符串,例如你的ABC(不分大小写)。:),祝你使用愉快!
      

  6.   

    楼上的兄台,如果ABC不是出现在1或3+1的位置,你那段代码可能判断不出来。
      

  7.   

    Amoon(阿木) 
        程序员应该用1和0做判断,请你不要用可能这么含糊的概念
     我想拜托你你先实际调试一下。
      

  8.   

    同意hnlzh(吸海垂虹) 的意见
       我试验了没有问题,楼上上可能看错了
       但如果hnlzh(吸海垂虹)把  X = X + 2 改成x== X + len(要提取字符长度)-1就不限于3个字串的
    再做成Amoon(阿木)那样的函数给人调用就更有普遍性了,
      

  9.   

    你上一个问题我在没有VB的机器上看到的,所以没有办法调试源代码。这样才对。(我想这是最简单的方法)
    Dim a As String
    Dim p As Integer
    a = "abc123Abc4567aBc89"
    p = InStr(LCase(a), "abc")
    While p <> 0
    List1.AddItem Mid(a, p, 3)
    p = InStr(p + 3, LCase(a), "abc")
    Wend
      

  10.   

    to hnlzh(吸海垂虹):抱歉,我没仔细看代码,忽略了X 是从1 to L 步长是1了。在这里向你道歉了,对不起了!