Foxtable(狐表)用户栏目专家坐堂 → [求助]快速替换


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

主题:[求助]快速替换

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


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
[求助]快速替换  发帖心情 Post By:2022/5/31 0:32:00 [只看该作者]

C
C.V.C.V0001
C.V.C.V0002
C.V.C.V0003
C.V.C.V0004
C.V.C.V0005

如上数据,替换为
D
D.V.C.V0001
D.V.C.V0002
D.V.C.V0003
D.V.C.V0004
D.V.C.V0005
我现在的代码是,老师:感觉代码很沉余,有没有简约的代码
Dim tb As Table = Tables( "物料表_table1")
Dim dt As DataTable = tb.DataTable 
    Dim fr As DataRow = dt.Find("料号 = 'C'")
    If fr IsNot Nothing Then fr("料号") = "D" 
    Dim drs As List(Of DataRow)
    drs = dt.Select("料号 like 'C.%'")
    For Each dr As DataRow In drs
        Dim txt As String = dr("料号")
        Dim ts() As String = txt.Split(".")
        Dim tx As String = "D"
        For i As Integer = 1 To ts.Length - 1
            If tx > "" Then tx &= "."
            tx &= ts(i)
        Next
        dr("料号") = tx         
    Next 


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


加好友 发短信
等级:小狐 帖子:328 积分:5068 威望:0 精华:0 注册:2019/1/1 15:53:00
  发帖心情 Post By:2022/5/31 5:57:00 [只看该作者]

参考处理代码:
以下内容为程序代码:

1 Dim dt As DataTable = DataTables("表A")
2 For Each dr As DataRow In dt.DataRows
3 If dr("第二列").StartsWith("C") Then '大写字母开头
4 dr("第二列") = dr("第二列").insert(0, "D").remove(1, 1) '插入大写D,去掉大写C
5 End If
6 Next


此主题相关图片如下:替换分隔数列2022-05-31_055349.jpg
按此在新窗口浏览图片


[此贴子已经被作者于2022/5/31 5:57:16编辑过]

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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/5/31 8:43:00 [只看该作者]

Dim drs As List(Of DataRow) = Tables( "物料表_table1").DataTable.Select("料号 like 'C.%'")
For Each dr As DataRow In drs
    dr("料号") = “D” & dr("料号").substring(1)
Next
[此贴子已经被作者于2022/5/31 8:43:32编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1327 积分:9648 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2022/7/24 15:11:00 [只看该作者]

以下是引用有点蓝在2022/5/31 8:43:00的发言:
Dim drs As List(Of DataRow) = Tables( "物料表_table1").DataTable.Select("料号 like 'C.%'")
For Each dr As DataRow In drs
    dr("料号") = “D” & dr("料号").substring(1)
Next
[此贴子已经被作者于2022/5/31 8:43:32编辑过]

C.V.C.V.V0001
C.D.C.V.V0001

老师,如果想将第二个V改为D,因为想改的字符在那个位置不确定!用substring还是有问题


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


加好友 发短信
等级:超级版主 帖子:107718 积分:547917 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/24 20:17:00 [只看该作者]

Dim drs As List(Of DataRow) = Tables( "物料表_table1").DataTable.Select("料号 like '%V%'")
For Each dr As DataRow In drs
dim s as string = dr("料号")
dim i as integer = s.indexof("V")
if i > -1 then
i = s.indexof("V",i)
if i > -1 then
i = s.indexof("V",i)
    dr("料号") = dr("料号").substring(0,i) & "D" & dr("料号").substring(i+1)
en dif
en dif

Next

 回到顶部