Foxtable(狐表)用户栏目专家坐堂 → [求助]替换html文件中的字符串


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

主题:[求助]替换html文件中的字符串

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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11230 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]替换html文件中的字符串  发帖心情 Post By:2018/12/12 10:37:00 [只看该作者]

一个html文件,路径:ProjectPath & "html\文书.html"
其中有一行代码是:<body bgcolor="#CCFFCC">


我想用按钮变更网页背景色,在下次打开窗口时启用。
比如把<body bgcolor="#CCFFCC"> 替换为<body bgcolor="#FFFFFO"> 或者<body bgcolor="">

 

<body bgcolor="#CCFFCC"> 这句代码在文件里是独一无二的,但是引号中的"#CCFFCC"经过设置后就不一定了,也可能是""。
请老师指教!
谢谢!


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


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

1、你应该做一个【文书模板】这个模板固定,不能变的。

 

2、读取模板的内容,然后替换,最后生成一个新文件 abc.html 显示


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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11230 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/12/12 12:04:00 [只看该作者]

谢谢甜老师!

下面黑体字的双引号怎么写?

....

if s.contains("<body bgcolor="#CCFFCC"> ") = true then

...

 

 


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


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

if s.contains("<body bgcolor=""#CCFFCC"">") = true then

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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11230 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/12/12 16:57:00 [只看该作者]

甜老师,加黑代码中的“*”,能这样在IFF中进行是否包含的判断吗?

......

Dim s As String = FileSys.ReadAllText(ProjectPath & "html\文书.html")
Dim s1 As String = "<body bgcolor=" & "*" & ">"   
Dim s2 As String = Tables("网页设置")(0,"网页背景")       '保存的自定义背景
FileSys.WriteAllText(ProjectPath & "html\文书.html",IIF(s.Contains(s1) = True , s.Replace(s1, s2)), False)

......


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


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

叫你把【文书.html】弄成模板,不要修改啊,然后读取替换固定的内容即可。

 

不然,请上传具体实例说明你要做什么。


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


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

也就是红色底分改成另一个名称啊

 

FileSys.WriteAllText(ProjectPath & "html\文书123.html", s, False)


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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11230 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2018/12/12 19:14:00 [只看该作者]

老师说的方法我明白了,读取模板文件→替换文件中固定字符→写入一个新命名的HTML文件→窗口打开新HTML→关闭窗口时再删掉这个临时生成的文件。

我还想知道,像下面的两组字符串,仅引号中的色值不同,能不能用通配符或者正则表达式来表达呢?
<body bgcolor="#CCFFCC">
<body bgcolor="#FFFFFO">
......
Dim s1 As String = "<body bgcolor=" & "#??????" & ">"   

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


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

参考

 

Dim str = "<body bgcolor=""#CCFFCC"">"
str = System.Text.RegularExpressions.Regex.Replace(str, "#[a-zA-Z0-9]+","#123456")
msgbox(str)


 回到顶部