以文本方式查看主题

-  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=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

错误提示如下,在出现第一段后面,第二段前面。

图片点击可在新窗口打开查看此主题相关图片如下:360软件小助手截图20131221150249.jpg
图片点击可在新窗口打开查看


[此贴子已经被作者于2013-12-21 15:03:34编辑过]

--  作者:Bin
--  发布时间:2013/12/21 15:04:00
--  
没有看到图.


图片点击可在新窗口打开查看此主题相关图片如下:上传图片请参考这里.gif
图片点击可在新窗口打开查看


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
--  
谢谢。就那儿错了。