以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]为何文本替换替换不了? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152161) |
-- 作者:小美菜 -- 发布时间:2020/7/9 8:09:00 -- [求助]为何文本替换替换不了? tStr =“中外合作办学>本科一批B政治学类(外交学)()” ,这个文本 用xStr = tStr.Replace(“中外合作办学>”,""), xStr与原tStr 一样,因为需要替换的文本很多,都没有替换下来,搞一天了,无任何进展 |
-- 作者:linyunu -- 发布时间:2020/7/9 8:27:00 -- 此主题相关图片如下:b32ba2b8-c388-48dd-b9f9-2dfe33f4d64b.png 测试正常,你的代码怎么写的 |
-- 作者:小美菜 -- 发布时间: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 |
-- 作者:小美菜 -- 发布时间:2020/7/9 8:45:00 -- 还是有半角全角问题,唉,怎么搞都替换不了,用窗口跟踪,有10条符合记录的,它处理2~6条,你重新来,它又处理几条,搞好几次,才能处理完,带字母字符的几乎处理不了 |
-- 作者:linyunu1 -- 发布时间:2020/7/9 9:42:00 -- 请上传完整一些的代码 和想实现的效果 |
-- 作者:有点蓝 -- 发布时间:2020/7/9 9:54:00 -- 把字符串全部转换为半角再替换:http://www.foxtable.com/webhelp/topics/1621.htm Dim tStr As String = StrToNarrow(dr("其它说明"))
|
-- 作者:小美菜 -- 发布时间:2020/7/9 20:34:00 -- 蓝老师,转成半角是可以一次改完,但余下的顿号变问号,转全角,还是问号,怎么办? |
-- 作者:有点蓝 -- 发布时间:2020/7/9 20:39:00 -- 那就还是按全角字符替换:http://www.foxtable.com/webhelp/topics/1273.htm |
-- 作者:小美菜 -- 发布时间: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 |