循环读取字符串求教高手,谢谢!!!

msdn165168 2004-07-21 09:23:10

我想循环读取字符串,每次读取3个字符

Dim ss() As String
ReDim ss(1 To Lenb(Text1))
For i = 1 To Lenb(Text1) Step 3
MsgBox ss(i)
Next i
...全文
338 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
KiteGirl 2004-07-23
  • 打赏
  • 举报
回复
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 #1

resultstring=StrConv(b(), vbUniCode) '储存文件需要b()=StrConv(resultstring, vbFormUniCode)

resultstring是文本内容。

Dim tStrings() As String
tStrings()=Split(resultstring, vbCrlf)

tStrings()返回每个行,每个元素是一行。
msdn165168 2004-07-23
  • 打赏
  • 举报
回复
谢谢各位的帮助,谢谢!!!
在求教各位高手:
我如想取得一个数组的每个值,该如何作,谢谢!!
如:
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()里的每个值。
KiteGirl 2004-07-22
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Text1.Text = StringLoopGet(Text1.Text, 1, 10)
End Sub

Function 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
熊孩子开学喽 2004-07-22
  • 打赏
  • 举报
回复
发现楼上一个小小的错误哦,当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
northwolves 2004-07-21
  • 打赏
  • 举报
回复
Dim i as Integer
For i = 1 To Len(Text1.txt) Step 3
MsgBox Mid(Text1.txt, i,3)
Next
DNAbomb 2004-07-21
  • 打赏
  • 举报
回复
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

这样行吗?
gdami 2004-07-21
  • 打赏
  • 举报
回复
....
你的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

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧