以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]字符串拆分问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=44042) |
-- 作者:cqlwsam -- 发布时间:2013/12/21 12:21:00 -- [求助]字符串拆分问题 为了美观,增加可读性。我将textbox2的字符串在拼接时使用了两个vbcrlf。代码如下: e.form.controls("TextBox2").text=e.form.controls("TextBox2").text & vbcrlf & vbcrlf & sql 但是将其进行拆分时split(vbcrlf & vbcrlf)仍然有空行,代码如下,怎么回事! Dim str As String= e.Form.Controls("TextBox2").value Dim n As Integer Dim strs() As String strs =str.Split(vbcrlf & vbcrlf) n=strs.Length Dim i As Integer Dim dt(i) As fxDataSource For i = 0 To n-1 MessageBox.Show(strs(i),"提示") Next |
-- 作者:狐狸爸爸 -- 发布时间:2013/12/21 12:28:00 -- Dim str As String= e.Form.Controls("TextBox2").value Dim n As Integer Dim strs() As String strs =str.replace(vbcr,"").Split(vblf) n=strs.Length Dim i As Integer Dim dt(i) As fxDataSource For i = 0 To n-1 If strs(i) > "" Then MessageBox.Show(strs(i),"提示") End If Next |
-- 作者:cqlwsam -- 发布时间:2013/12/21 15:01:00 -- textbox2的内容如下: 登记时间: 否;入院时间:否;开始时间: 无;截止时间: 无;患者种类: 无;统计项目: 性别. 登记时间:是;入院时间:否;开始时间: 无;截止时间: 无;患者种类: 失访患者(登记时间);统计项目: 性别. 点击“统计”后,出现运行错误,代码如下: Dim str As String= e.Form.Controls("TextBox2").value Dim n As Integer Dim strs() As String strs =str.replace(vbcr,"").Split(vblf) n=strs.Length Dim i As Integer Dim dt(i) As fxDataSource For i = 0 To n-1 If strs(i)>"" Then Dim s() As String =strs(i).Split(";") For j As Integer = 0 To s(j).length-1 If s(j) > "" Then MessageBox.Show(s(j),"提示") End If Next End If Next 错误提示如下,在出现第一段后面,第二段前面。 [此贴子已经被作者于2013-12-21 15:03:34编辑过]
|
-- 作者:Bin -- 发布时间:2013/12/21 15:04:00 -- 没有看到图. Dim dt(i) As fxDataSource 哪有这样的定义方式的?
|
-- 作者:cqlwsam -- 发布时间:2013/12/21 15:05:00 -- 那个是后面需要用来合并统计表的。 |
-- 作者:Bin -- 发布时间:2013/12/21 15:14:00 -- 上例子,这代码乱七八糟的错漏百出 建议您用这个方法: http://www.foxtable.com/help/topics/1485.htm 先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。 |
-- 作者:cqlwsam -- 发布时间:2013/12/21 15:23:00 -- 没有这个循环的时候对的,加了这个循环后就出现了问题。拆分第一段字符串的时候没问题,在第一段字符串后、第二段开始前出现了上面的错误提示。应该是s(j)中的j没有重置的问题。 Dim s() As String =strs(i).Split(";") For j As Integer = 0 To s(j).length-1 If s(j) > "" Then MessageBox.Show(s(j),"提示") End If Next [此贴子已经被作者于2013-12-21 15:23:30编辑过]
|
-- 作者:Bin -- 发布时间:2013/12/21 15:26:00 -- For j As Integer = 0 To s(j).length-1 If s(j) > "" Then MessageBox.Show(s(j),"提示") End If Next 红色部分是怎么回事? 循环S的话应该是 For j As Integer = 0 To s.length-1 If s(j) > "" Then MessageBox.Show(s(j),"提示") End If Next |
-- 作者:cqlwsam -- 发布时间:2013/12/21 15:29:00 -- 谢谢。就那儿错了。 |