Foxtable(狐表)用户栏目专家坐堂 → 关于快递地址截短的判断


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

主题:关于快递地址截短的判断

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


加好友 发短信
等级:婴狐 帖子:56 积分:488 威望:0 精华:0 注册:2013/10/25 12:17:00
关于快递地址截短的判断  发帖心情 Post By:2014/4/21 11:38:00 [只看该作者]

打印快递面单时,需截短到县级城市为止,譬如:浙江省金华市义乌市望道路377号,这个地址在面单上有部分区域需要打印出“浙江金华义乌”,其中“省”“市”这些字要去掉
如何实现?参考代码如下:


Din s As String = “ 浙江省金华市义乌市”
If e.DataCol.Name="收件地址" Then
    If e.DataRow.IsNull("收件地址") Then
        Return
    Else
        Dim s As String = e.NewValue
        Dim str() As String = {"县","区","市","省"}
        For i As Integer = 0 To str.Length - 1
            If s.Contains(str(i)) Then
                e.DataRow("收件省市") = s.Split(str(i))(0)
                Exit For
            End If
        Next
    End If
End If

这个执行得到结果是:浙江省义乌


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


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


Dim s As String = " 浙江省金华市义乌市"
s=s.Replace("省","").Replace("市","")
MessageBox.show(s)

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/21 11:44:00 [只看该作者]

简单,就这样改

 

Dim sp() As Char = {"县","区","市","省"}
Dim data As String = "浙江省金华市义乌市"
Dim str
For Each s As String In data.Split(sp)
    str &= s
Next
msgbox(str)


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


加好友 发短信
等级:婴狐 帖子:56 积分:488 威望:0 精华:0 注册:2013/10/25 12:17:00
  发帖心情 Post By:2014/4/21 12:17:00 [只看该作者]

市后面的那些字如何去掉?我的条件写错了。地址比较长:浙江省金华市义乌市望道路377号,这样的,“市”之后的字符串,不要

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/4/21 13:07:00 [只看该作者]

If e.DataCol.Name = "收件地址" AndAlso e.DataRow.IsNull(e.DataCol) = False Then
    Dim s As String = e.NewValue '例如:"浙江省金华市义乌市望道路377号"
    Dim str() As String = {"县","区","市","省"}
    For i As Integer = 0 To str.Length - 1
        If s.LastIndexOf(str(i)) > 0 Then
            s = s.SubString(0,s.LastIndexOf(str(i)))
            Exit For
        End If
    Next
    For i As Integer = 0 To str.Length - 1
        s = s.Replace(str(i),"") '浙江金华义乌       
    Next   
End If
[此贴子已经被作者于2014-4-21 13:12:20编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/4/21 14:25:00 [只看该作者]

 或者这样

 

Dim sp() As Char = {"县","区","市","省"}
Dim data As String = "浙江省金华市义乌市望道路377号"
Dim str As String = ""
Dim ary() As String = data.Split(sp)
For i As Integer = 0 To ary.Length - 2
    str &= ary(i)
Next
msgbox(str)


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


加好友 发短信
等级:婴狐 帖子:56 积分:488 威望:0 精华:0 注册:2013/10/25 12:17:00
  发帖心情 Post By:2014/4/21 16:20:00 [只看该作者]

感谢有点甜。这个很好用。我前面还加了点 Replace 空格的判断...很好用

 回到顶部