Foxtable(狐表)用户栏目专家坐堂 → [求助]字符串拆分问题


  共有4460人关注过本帖树形打印复制链接

主题:[求助]字符串拆分问题

帅哥哟,离线,有人找我吗?
cqlwsam
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
[求助]字符串拆分问题  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/21 15:04:00 [只看该作者]

没有看到图.


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


Dim dt(i) As fxDataSource  哪有这样的定义方式的?


 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/21 15:05:00 [只看该作者]

那个是后面需要用来合并统计表的。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/21 15:14:00 [只看该作者]

上例子,这代码乱七八糟的错漏百出

建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

 回到顶部
帅哥哟,离线,有人找我吗?
cqlwsam
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1022 积分:7598 威望:0 精华:0 注册:2010/4/12 12:23:00
  发帖心情 Post By:2013/12/21 15:29:00 [只看该作者]

谢谢。就那儿错了。

 回到顶部