以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]替换html文件中的字符串  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128646)

--  作者:天一生水
--  发布时间:2018/12/12 10:37:00
--  [求助]替换html文件中的字符串

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


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

 

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


--  作者:有点甜
--  发布时间:2018/12/12 11:08:00
--  

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

 

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


--  作者:天一生水
--  发布时间:2018/12/12 12:04:00
--  

谢谢甜老师!

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

....

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

...

 

 


--  作者:有点甜
--  发布时间:2018/12/12 12:06:00
--  
if s.contains("<body bgcolor=""#CCFFCC"">") = true then
--  作者:天一生水
--  发布时间: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)

......


--  作者:有点甜
--  发布时间:2018/12/12 17:27:00
--  

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

 

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


--  作者:有点甜
--  发布时间:2018/12/12 17:28:00
--  

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

 

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


--  作者:天一生水
--  发布时间:2018/12/12 19:14:00
--  
老师说的方法我明白了,读取模板文件→替换文件中固定字符→写入一个新命名的HTML文件→窗口打开新HTML→关闭窗口时再删掉这个临时生成的文件。

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

--  作者:有点甜
--  发布时间: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)