Foxtable(狐表)用户栏目专家坐堂 → [求助]为何文本替换替换不了?


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

主题:[求助]为何文本替换替换不了?

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


加好友 发短信
等级:三尾狐 帖子:650 积分:4935 威望:0 精华:0 注册:2016/1/16 22:42:00
[求助]为何文本替换替换不了?  发帖心情 Post By:2020/7/9 8:09:00 [只看该作者]

tStr =“中外合作办学>本科一批B政治学类(外交学)()” ,这个文本 用xStr = tStr.Replace(“中外合作办学>”,""), xStr与原tStr 一样,因为需要替换的文本很多,都没有替换下来,搞一天了,无任何进展

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


加好友 发短信
等级:童狐 帖子:249 积分:1859 威望:0 精华:2 注册:2018/1/16 20:53:00
  发帖心情 Post By:2020/7/9 8:27:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:b32ba2b8-c388-48dd-b9f9-2dfe33f4d64b.png
图片点击可在新窗口打开查看



测试正常,你的代码怎么写的

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


加好友 发短信
等级:三尾狐 帖子:650 积分:4935 威望:0 精华:0 注册:2016/1/16 22:42:00
  发帖心情 Post By:2020/7/9 8:31:00 [只看该作者]

Dim tStr As String = dr("其它说明")
    'Dim 
    If tSTr.Trim <> "" Then
    Output.Show(tStr & ":正在处理..." & i & "/" & n & "lsthas.Count:" & lsthas.Count)
        For Each xStr As String In lsthas
            If xStr <> "" Then
                dr("其它说明") = tStr.Replace(xStr,"")
                Application.DoEvents()
            End If
        Next
        i = i + 1
    End If


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


加好友 发短信
等级:三尾狐 帖子:650 积分:4935 威望:0 精华:0 注册:2016/1/16 22:42:00
  发帖心情 Post By:2020/7/9 8:45:00 [只看该作者]

还是有半角全角问题,唉,怎么搞都替换不了,用窗口跟踪,有10条符合记录的,它处理2~6条,你重新来,它又处理几条,搞好几次,才能处理完,带字母字符的几乎处理不了


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


加好友 发短信
等级:幼狐 帖子:162 积分:1089 威望:0 精华:0 注册:2020/1/16 11:58:00
  发帖心情 Post By:2020/7/9 9:42:00 [只看该作者]

请上传完整一些的代码  和想实现的效果

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


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

把字符串全部转换为半角再替换:http://www.foxtable.com/webhelp/topics/1621.htm

Dim tStr As String = StrToNarrow(dr("其它说明"))

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


加好友 发短信
等级:三尾狐 帖子:650 积分:4935 威望:0 精华:0 注册:2016/1/16 22:42:00
  发帖心情 Post By:2020/7/9 20:34:00 [只看该作者]

蓝老师,转成半角是可以一次改完,但余下的顿号变问号,转全角,还是问号,怎么办?


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


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

那就还是按全角字符替换:http://www.foxtable.com/webhelp/topics/1273.htm

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


加好友 发短信
等级:三尾狐 帖子:650 积分:4935 威望:0 精华:0 注册:2016/1/16 22:42:00
  发帖心情 Post By:2020/7/10 9:57:00 [只看该作者]

没办法,做了下面代码替代
Dim iStr As String =  Args(0)'
Dim sStr As String = Args(1)'
Dim dStr As  String = ""
If  Args.Length > 2 Then dStr =  Args(2)'
iStr = iStr.Trim()
sStr = sStr.Trim()
dStr = dStr.Trim()
Dim iStrWd As String = StrToWide(iStr)
If sStr = "" Then  Return iStr
Dim asStr() As String = sStr.Split(iif(sStr.Contains("§"),"§","|" ))
Dim adStr() As String = dStr.Split(iif(dStr.Contains("§"),"§","|" ))
For i As Integer = 0 To ubound(asStr)
    asStr(i) = asStr(i).Trim
    Dim sStrWd As String = StrToWide(asStr(i))
    Dim idx As Integer = iStrWd.IndexOf(sStrWd)
    Dim l As Integer = sStrWd.Length
    If idx< 0 Then Continue For ' Return iStr
    If l > 0 Then
        Dim xStr As String = iStr.SubString(idx,l)
        iStr = iStr.Replace(xStr,"")
        If adStr(i) IsNot Nothing Then
            adStr(i) = adStr(i).Trim
            If  adStr(i).Length > 0 Then iStr = iStr.Insert(idx, adStr(i))
        End If
    End If
Next
Return iStr

 回到顶部