Foxtable(狐表)用户栏目专家坐堂 → 关于字段数据分割


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

主题:关于字段数据分割

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
关于字段数据分割  发帖心情 Post By:2019/4/16 8:41:00 [显示全部帖子]

怎样将字段中的数据分割成几个字段呢?比如用一个地址列:原数据是“***省***市***区**********”将他分割成“省”、“市”、"区"、“地址”四个字段,分别将其内容填入到相应的字段呢?并将元数据的***省***市***区删除掉。

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 9:50:00 [显示全部帖子]

怎么给对应的字段赋值,并将元数据的***省***市***区删除掉呢?


还有就是第一次出现的“区”是属于哪个区的可是有的是小区的名字怎么区分开呢?
[此贴子已经被作者于2019/4/16 10:12:03编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 10:33:00 [显示全部帖子]

甜老师怎么区分区域和小区的名字的区呢?
还有就是删除原数据中的省、市、区|县的部分字段呢?

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 10:50:00 [显示全部帖子]

比如 “河北省石家庄市长安区翟营北大街387号万国龙小区32号楼2单元302室”、“河北省石家庄裕华路联强小区12号楼2单元502室”、“河北省石家庄裕华区裕华路路306号”

第二个没有区域的区只有小区的区 ,第三个没有小区的区,像这类的问题怎么处理呢?

还有就分割的数据怎么没有省、市、区或县的字符呢?
[此贴子已经被作者于2019/4/16 11:13:52编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 11:23:00 [显示全部帖子]

怎样删除原数据中的省、市、区|县的部分字段呢?也就是说已经提出的部分

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 12:06:00 [显示全部帖子]

和四楼的代码不一样吗?
我想实现把|“地址”字段中的省、市、区|县的部分提出来赋值给相应的字段中同时删除提取部分的内容

[此贴子已经被作者于2019/4/16 12:10:05编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 13:28:00 [显示全部帖子]

我想实现把|“地址”字段中的省、市、区|县的部分提出来赋值给相应的字段中同时删除提取部分的内容
我读去的是数据表中地址字段中的内容,不是给定的固定字符串,经过测试原内容的省市区的内容部分没删除呢?
代码如下
Dim dt1 As DataTable = DataTables("发货地址")
Dim ary() As String = {"^", "(省|上海市|北京市|重庆市|天津市|自治区)", "(市)", "(区|县)", "$"}
For Each dr As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt1.Find("地址='" & dr("地址") & "'")
    If fdr IsNot Nothing Then
        For i As Integer = 0 To 3
            For j As Integer = i To 0 Step -1
                Dim mc = System.Text.RegularExpressions.Regex.Match(dr("地址") , "(?<=" & ary(j) & ").+" & ary(i+1))
                If mc.success Then
                    If i=0 Then
                        dr("省") = mc.value.remove(mc.value.length-1) &  "省"
                    End If
                    If i=1 Then
                        dr("市") = mc.value.remove(mc.value.length-1) &  "市"
                    End If
                    If i=2 Then
                        If fdr("地址").Contains("区") Then
                            dr("区") = mc.value.remove(mc.value.length-1) &  "区"
                            
                        ElseIf fdr("地址").Contains("县") Then
                            dr("区") = mc.value.remove(mc.value.length-1) &  "县"
                        End If                     
                    End If
                    If i=3 Then
                        dr("具体地址") = mc.value.remove(mc.value.length-1)
                    End If
                    Exit For
                End If
            Next
        Next
    End If
Next
 


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

 

 

 

想实现同时删除地址字段中的省、市、区内容部分。比如“河北省石家庄市裕华区翟营南大街385号卓达书香园2区583号楼50单元501室”要删除"河北省石家庄市裕华区"部分内容

[此贴子已经被作者于2019/4/16 13:47:28编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/16 23:24:00 [显示全部帖子]

Dim dt1 As DataTable = DataTables("发货地址")
For Each dr As DataRow In dt1.Select("")
    Dim fdr As DataRow = dt1.Find("地址='" & dr("地址") & "'")    
    Dim str As String = dr("地址") 
    Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(.*?省|上海市|北京市|重庆市|天津市|自治区)(.*?市|区)(.*?区|县)")
    dr("省") = mc(0).groups(1).value
   dr("市") = mc(0).groups(2).value
  dr("区") = mc(0).groups(3).value
    dr("具体地址") = str.Replace(mc(0).groups(0).value, "")   
Next
地址字段内容是人工输入的有有省份有的没有有的有市区有的没有
代码那有问题运行后弹出错误框

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

[此贴子已经被作者于2019/4/17 9:43:55编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/17 14:20:00 [显示全部帖子]

麻烦测一下2到4行的数据
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目7.foxdb

第一行的“区”字段也有问题:应该是“裕华区”而显示“翟营南大街385号卓达书香园2区”

[此贴子已经被作者于2019/4/17 14:29:20编辑过]

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


加好友 发短信
等级:八尾狐 帖子:2007 积分:12794 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/4/17 16:40:00 [显示全部帖子]

地址如果是“河北省邯郸市大名县沙地镇魏村”怎么不提取呢?


如果把什么区变为什么县以后就不提取了,直接把整个字段的内容全部赋值给“具体地址”字段了


如果是“北京市房山区西直门北大街388号”没有省也不提取的

[此贴子已经被作者于2019/4/17 16:49:06编辑过]

 回到顶部
总数 11 1 2 下一页