Foxtable(狐表)用户栏目专家坐堂 → 请教一个关于判断字符串中是否含空格的代码。


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

主题:请教一个关于判断字符串中是否含空格的代码。

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
请教一个关于判断字符串中是否含空格的代码。  发帖心情 Post By:2012/2/6 10:49:00 [只看该作者]

textchanged 代码如下:

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("草绳选产品_Table1")
tbl.Filter= ""
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "'*" & txt.Replace("*","[*]") & "*'"
    '或者 txt = "'*" & strtowide(txt) & "*'"


    tbl.filter = "chanpinname Like " & txt & " Or guige Like " & txt & " "     '如果产品名称包含txt,或规格包含txt
    tbl.Sort = "chanpinname desc,guige desc,danwei desc"
End If

 

看一下运行效果

 

 


此主题相关图片如下:232.jpg
按此在新窗口浏览图片

 

无论通过 产品名称筛选 还是 规格筛选,都会得到很多个结果。还是不方便。

 

 

我的想法是这样

 


此主题相关图片如下:233.jpg
按此在新窗口浏览图片

 

如果只有一个字符串,那么

tbl.filter = "chanpinname Like " & txt & " or guige Like " & txt & " "     '如果产品名称包含txt,或规格包含txt

如果 字符串中有空格 那么

用空格 分割字符串,前部分=txt2,后部分=txt3

tbl.filter = "chanpinname Like " & txt2 & " and guige Like " & txt3& " "  

 

 

代码如何实现呢?

[此贴子已经被作者于2012-2-6 11:01:34编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/6 11:22:00 [只看该作者]

1、判断是否空格:
http://www.foxtable.com/help/topics/0236.htm


2、将字符串拆分成数组:

http://www.foxtable.com/help/topics/0245.htm

 


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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2012/2/6 16:15:00 [只看该作者]

奇怪,按以下代码 竟然搜索不到结果

 

产品表里面有产品名称“特级红双草绳”  规格“4CM” 的记录。

可是录入 "特级红双 4CM" 找不到记录。

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("草绳选产品_Table1")
tbl.Filter= ""
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "'*" & txt.Replace("*","[*]") & "*'"
    '或者 txt = "'*" & strtowide(txt) & "*'"

If txt.IndexOf(" ") = -1 Then '如果没有空格
tbl.filter = "chanpinname Like " & txt & " or guige Like " & txt & " "
    tbl.Sort = "chanpinname desc,guige desc,danwei desc"

Else
'Dim txt As String
Dim txt2 As String
Dim txt3 As String
Dim Values() As String
Values = txt.split(" ")
txt2=values(0)
txt3=values(1)

    tbl.filter = "chanpinname Like " & txt2 & " and guige Like " & txt3 & " "
    tbl.Sort = "chanpinname desc,guige desc,danwei desc"
End If
End If

[此贴子已经被作者于2012-2-6 16:15:46编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/6 17:08:00 [只看该作者]

Messagebox.show(tbl.filter)

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2012/2/6 17:21:00 [只看该作者]

谢谢管理员。元宵节还一直坚守岗位。

 


图片点击可在新窗口打开查看此主题相关图片如下:234.jpg
图片点击可在新窗口打开查看

代码怎么改呢?

主要是跟这段有关吧

 txt = "'*" & txt.Replace("*","[*]") & "*'"

不知道具体怎么改

[此贴子已经被作者于2012-2-6 17:25:24编辑过]

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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2012/2/6 17:30:00 [只看该作者]

好了 非常感谢管理员,顺祝元宵愉快!

 

Dim txt As String = e.Form.Controls("TextBox1").Text
Dim tbl As Table = Tables("草绳选产品_Table1")
tbl.Filter= ""
If txt = "" Then
    tbl.Filter = ""
Else
    txt = "'*" & txt.Replace("*","[*]") & "*'"
    '或者 txt = "'*" & strtowide(txt) & "*'"

If txt.IndexOf(" ") = -1 Then '如果没有空格
tbl.filter = "chanpinname Like " & txt & " or guige Like " & txt & " "
    tbl.Sort = "chanpinname desc,guige desc,danwei desc"

Else
'Dim txt As String
Dim txt2 As String
Dim txt3 As String
Dim Values() As String
Values = txt.split(" ")
txt2=values(0)& "*'"
txt3="'*"& values(1)

    tbl.filter = "chanpinname Like " & txt2 & " And guige Like " & txt3 & " "
    tbl.Sort = "chanpinname desc,guige desc,danwei desc"
'Messagebox.show(tbl.filter)
End If
End If


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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2012/2/6 23:50:00 [只看该作者]

有没有一个把全角字符串转换成半角字符串的函数?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2012/2/7 0:06:00 [只看该作者]

我看错了,txt包含单引号了!

[此贴子已经被作者于2012-2-7 0:07:06编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/2/7 7:39:00 [只看该作者]

 

自动全角转换和着色

在默认的情况下,代码编辑器会自动将全角字符转换为半角,如果你不喜欢这种强制转换,可以在第一行代码输入:'''。

例如:

'''
Dim
s1 As String
s1 =
"我喜欢Foxtable,因为..."
Output.Show(s1)

此外编辑器会用不同的颜色标出各种关键词,以及表名和列名,如果你的电脑性能不太好,代码又比较长,这种代码自动着色的功能会耗费较长的时间,此时你只需在第一行输入"'...",即可关闭自动着色。

例如:

'...
Dim s1 As String
s1 = "我喜欢Foxtable,因为..."
Output.Show(s1)

如果你希望同时关闭全角转换和着色,只需在第一行输入"'''..."。

例如:

'''...
Dim s1 As String
s1 = "我喜欢Foxtable,因为..."
Output.Show(s1)

 


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


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2012/2/7 13:16:00 [只看该作者]

blackzhu回答得有点牛头不对马嘴。

 回到顶部