|
发表于 2013-7-20 10:58:44
|
显示全部楼层
本帖最后由 i-wiki 于 2013-7-20 20:04 编辑 5 {6 |6 j1 k4 v; E2 ~% R1 E
+ w* [2 _, }+ V; Z为什么要使用FSO?VBA有自己的文件处理语句,可以对文本或二进制数据操作,结合kernel32函数调用可完成Unicode到utf8代码转换。, X. ~. I/ f4 a3 q; _
程序中疑似函数tran_ado转换时,从流中读出并返回串时有问题。
- }" ], {# O( F( w& kADODB的Stream本身就可以保存为文件,试一试下面代码如何?- Sub main()
% J' k; X+ w6 z! J6 T$ h) [4 u - Dim i As Integer6 @% A: l1 B) w4 W% w, h* q3 k
- Dim sft As String
" U: O1 q2 `1 i. E9 |2 k - Dim spy As String' H! A8 Z0 w2 M9 [9 z. L
- Dim szm As String" ~ K: @& T- e% u3 l% S
- Dim s As String
' a& z+ E1 q& \( _' n; b - Dim Stm As New ADODB.Stream
' x8 N2 k9 V I - $ ~; K! a- R0 r1 S% i2 e! v. p6 ]
- Stm.Type = adTypeText; @5 O; \6 [: L% Z) |
- Stm.Mode = adModeUnknown! U5 r3 s* J8 B$ _
- Stm.Open
9 }6 @/ U! ~% V/ f6 z/ @! v - Stm.Charset = "utf-8"
* O3 V; K5 z3 @
- {4 I, r' K- ?/ W- For i = 1 To 72 o8 N& `$ h' {7 |5 j# ^0 a
- sft = Cells(i, 1)- l: \# A5 h, D3 Z2 |
- szm = Cells(i, 2)
5 N9 z1 d9 u9 x& r: {% W* R - spy = Cells(i, 3) G, o. K+ U# i! O9 }
- s = "<a href=""entry://" & sft & "/"">" & sft & "</a>" & spy & "/" & szm
) Z4 x- R! A& A. }* c
1 t" {0 P9 f& \+ S' E2 S- Stm.WriteText s & vbLf
3 {# i/ G9 K1 u3 m( Q - Next# O- b$ `. N0 j) z# h8 s% x
+ G* }9 D* F3 N# F# x- If Dir("z:\vba.txt") <> "" Then Kill "z:\vba.txt"# }" h( n. @$ g
- Stm.SaveToFile "z:\vba.txt"
, s3 P- W, C( ?1 `% M - Stm.Close
/ a* r, ]2 v: t9 N - End Sub! {0 s8 P V2 x8 l: r( w$ M$ H' d
复制代码 |
|