我想循环读取字符串,每次读取3个字符Dim ss() As String
ReDim ss(1 To Lenb(Text1))
For i = 1 To Lenb(Text1) Step 3
MsgBox ss(i)
Next i

解决方案 »

  1.   

    ....
    你的ss又没赋值,那里可以得到值啊。Private Sub Command1_Click()
    Dim ss() As String
    ReDim ss(1 To Len(Text1))
    For i = 1 To Len(Text1) Step 3
    ss(i) = Mid(Trim(Text1.Text), i, 3)
    MsgBox ss(i)
    Next i
    End Sub
      

  2.   

    Dim ss As String, a As String, i As Integer
    ss = Text1.Text
    a = ss
    For i = 1 To Len(ss) Step 3
    MsgBox (Left(a, 3))
    a = Right(a, Len(a) - 3)
    Next i这样行吗?
      

  3.   

    Dim i as Integer
    For i = 1 To Len(Text1.txt) Step 3
    MsgBox Mid(Text1.txt, i,3)
    Next
      

  4.   

    发现楼上一个小小的错误哦,当TEXT控件内字符的个数不是三的整倍数的时候会出错。
    Dim L as Long
    Dim I as Long
    L=Len(text1.text)
    text1.text =text1.text & "  "  '最后加上两个空格,保险一点
    For I = 1 To L Step 3
       MsgBox Mid(Text1.txt, I,3)
    Next
      

  5.   

    Private Sub Command1_Click()
      Text1.Text = StringLoopGet(Text1.Text, 1, 10)
    End SubFunction StringLoopGet(ByVal pString As String, ByVal pStart As Long, ByVal pCount As Long) As String
      'StringLoopGet函数
      '语法:[tOutStr] = StringLoopGet(pString, pStart, pCount)
      '功能:从一个字符串指定位置循环获取指定数量的字符。
      '参数:string pString                 '原字符串
      '      long   pStart                  '必要参数。开始字符位置(如果超过字符长度则与字符长度取余)
      '      long   pCount                  '必要参数。获取字符数量(如果超过字符长度则循环获取)
      '输出:string tOutStr                 '返回获取的字符。
      Dim tOutStr As String
      Dim tNotOut As Boolean
      
      tNotOut = (pString = "") Or (pCount = 0)
      
      If tNotOut Then Exit Function
      
      Dim tBytes() As Byte
      Dim tBytes_Length As Long
      Dim tWordCount As Long
      
      tBytes() = pString
      tBytes_Length = UBound(tBytes())
      tWordCount = (tBytes_Length + 1) \ 2
      
      Dim tStart As Long
      
      tStart = pStart Mod tWordCount
      
      Dim tIndex As Long
      Dim tIndex_Length As Long
      Dim tWordIndex As Long
      Dim tByteGetIndex As Long
      Dim tBytePutIndex As Long
      Dim tOutBytes() As Byte
      
      tIndex_Length = pCount - 1
      tOutBytes_Length = (pCount * 2) - 1
      
      ReDim tOutBytes(tOutBytes_Length)
        
      For tIndex = 0 To tIndex_Length
        tWordIndex = (tStart + tIndex)
        tByteGetIndex = (tWordIndex Mod tWordCount) * 2
        tBytePutIndex = tIndex * 2
        tOutBytes(tBytePutIndex) = tBytes(tByteGetIndex)
        tOutBytes(tBytePutIndex + 1) = tBytes(tByteGetIndex + 1)
      Next
      
      tOutStr = tOutBytes()
      
      StringLoopGet = tOutStr
    End Function
      

  6.   

    在上面函数基础上看看下面的测试代码:
    Private priString As StringPrivate Sub Form_Load()
      priString = "造谣日报2004年7月刊 小仙妹是个好孩子 msdn165168是个小笨蛋 联合国秘书长宣布辞职并推荐KiteGirl接替他的职务 小仙妹表示愿意接受地球球长一职 纽约昨日发生恐怖袭击 恐怖分子被发现是一只猫 "
    End SubPrivate Sub Command1_Click()
      priString = StringLoopGet(priString, 1, Len(priString))
      Text1.Text = StringLoopGet(priString, 1, 10)
    End Sub
      

  7.   

    谢谢各位的帮助,谢谢!!!
    在求教各位高手:
    我如想取得一个数组的每个值,该如何作,谢谢!!
    如:
    Dim b()   As Byte
    Dim resultstring   As String
    Open App.Path & "\ccc.txt" For Binary Access Read As #1
     ReDim b(LOF(1)) As Byte
     Get #1, , b()
    Close #1我想取得b()里的每个值。
      

  8.   

    Dim b()   As Byte
    Dim resultstring   As String
    Open App.Path & "\ccc.txt" For Binary Access Read As #1
     ReDim b(LOF(1)-1) As Byte
     Get #1, , b()
    Close #1resultstring=StrConv(b(), vbUniCode) '储存文件需要b()=StrConv(resultstring, vbFormUniCode)resultstring是文本内容。Dim tStrings() As String
    tStrings()=Split(resultstring, vbCrlf)tStrings()返回每个行,每个元素是一行。