Private Sub 模板导出_Click()
Dim fnum1 As Integer
Dim fnum2 As Integer
Dim v As Variant
Dim gchr As String
Dim MaxSize As Long
Dim inext As Long
Dim vv As String
Set dbs = CurrentDb
m = "Select 文件名, 标题 FROM 商技二部DITA目录 order by 编码;"
Set rst_zk = dbs.OpenRecordset(m)
Do While Not rst_zk.EOF
m = rst_zk.Fields(0)
fnum1 = FreeFile
Open "E:\格力技术资料\资料模板\商技二部DITA模板\" + m + ".dita" For Binary As #fnum1
fnum2 = FreeFile
Open "E:\格力技术资料\资料模板\DITA模板.dita" For Input As #fnum2
vv = ""
MaxSize = LOF(fnum2)
inext = Seek(fnum2)
Do While inext < MaxSize
v = ""
Do While Right(v, 2) <> Chr(13) + Chr(10) And inext <= MaxSize
gchr = Input(1, #fnum2)
v = v + gchr
Loop
m = Left(v, Len(v) - 2)
If m = "<title></title>" Then
m = "<title>" +
rst_zk.Fields(1) + "</title>" ;
这里写入的汉字内容会变成乱码。
v = m + Chr(13) + Chr(10)
End If
vv = vv + v
inext = Seek(fnum2)
Loop
Put #fnum1, , vv
Close #fnum1
Close #fnum2
rst_zk.MoveNext
Loop
rst_zk.Close
End Sub
执行的结果:
文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!--Arbortext, Inc., 1988-2015, v.4002-->
<!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN"
"topic.dtd">
<?Pub Inc?>
<topic id="topic-1-9BE1E248" xml:lang="zh-CN">
<title>¡°d5¡±א2¿ς¶ȴ«¸ц�ϣ¨Ԥ′1˕ϣ©</title>
<shortdesc></shortdesc>
<prolog>
<metadata><keywords><indexterm></indexterm></keywords></metadata>
</prolog>
<body></body><?Pub Caret -1?>
</topic>