以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  字符串分段?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=17737)

--  作者:pyh6918
--  发布时间:2012/3/22 19:31:00
--  字符串分段?

Dim r As  String="    中国国,经济ab123"
Dim bs() As  Byte = System.Text.Encoding.Default.GetBytes(r)
Dim cd As  Short= bs.Length
MessageBox.Show(cd)
执行后cd=20
请问如何将每10个字节赋值给一个变量?r的长度不定,各位帮帮忙!

 


--  作者:mr725
--  发布时间:2012/3/22 20:14:00
--  

substring

 

中英文在一起,按中文两个字符分,会有拆半的情况发生的。

[此贴子已经被作者于2012-3-22 20:17:25编辑过]

--  作者:pyh6918
--  发布时间:2012/3/22 20:39:00
--  

 

是的,先不考虑拆半的问题,先解决这一步。

多谢!


--  作者:lxl
--  发布时间:2012/3/22 21:09:00
--  

Array.Copy

如果要使用的话,直接用bs这个变量就可以了啊,没必要拆开使用。

你是不是想分段保存下来啊


--  作者:pyh6918
--  发布时间:2012/3/22 21:24:00
--  

是的,请问这个怎么用?多谢!


--  作者:lxl
--  发布时间:2012/3/22 21:56:00
--  

即使是分段保存,也不需要 分到各个变量里面去

直接用for循环处理就可以了

Array.Copy的用法

http://msdn.microsoft.com/zh-cn/library/system.array.copy.aspx


--  作者:pyh6918
--  发布时间:2012/3/22 22:24:00
--  
谢谢,我去学习一下!
--  作者:pyh6918
--  发布时间:2012/3/22 23:17:00
--  

Dim r As  String="    中国国,经济ab123"
Dim bs() As  Byte = System.Text.Encoding.Default.GetBytes(r)
Dim cd As  Short= bs.Length
Dim d As array=bs
Dim f As array=d.copy(2,4)

 

最后这一句报错,对VB一窍不通啊!还请各位老师费心!

 

 



--  作者:mr725
--  发布时间:2012/3/22 23:32:00
--  

这样可以吗:

Dim r As  String="    中国国,经济ab123aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Dim bs() As  Byte = System.Text.Encoding.Default.GetBytes(r)
Dim cd As  Short= bs.Length
\'***MessageBox.Show(cd)
Dim n As Integer
If r.length Mod 10 > 0
    n = r.length/10
    For i As Integer = 0 To n-1

        output.show( r.substring(i*10,10))
    Next
    output.show(r.substring((n-1)*10,r.length Mod 10))
Else
    n = r.length/10
    For i As Integer = 0 To n-1
        output.show(r.substring(i*10,10))
    Next   
End If

[此贴子已经被作者于2012-3-22 23:34:33编辑过]

--  作者:程兴刚
--  发布时间:2012/3/23 0:24:00
--  
Dim aa As String
Dim strRet As String
Dim bb As Byte()
aa = "截取4字符串abcjdj142你好"
bb = Encoding.Default.GetBytes(aa.ToCharArray())
For i As Integer = 0 To aa.Length  Step 10
    strRet = New String(Encoding.Default.GetChars(bb,0,10))
    If aa.IndexOf(strRet) = -1
        strRet = New String(Encoding.Default.GetChars(bb,0,9))
    End If
    Output.show(strRet)
    aa = aa.Replace(strRet,"")
    bb = Encoding.Default.GetBytes(aa.ToCharArray())
Next
Output.show(aa)