|
发表于 2013-7-20 10:58:44
|
显示全部楼层
本帖最后由 i-wiki 于 2013-7-20 20:04 编辑
. ?, S& }- n8 r( ]9 V. N; t9 K" S8 R z& V4 ^& I. l" f( |8 J
为什么要使用FSO?VBA有自己的文件处理语句,可以对文本或二进制数据操作,结合kernel32函数调用可完成Unicode到utf8代码转换。4 }" U$ k. g3 \ h' {
程序中疑似函数tran_ado转换时,从流中读出并返回串时有问题。9 l5 G6 X/ q1 D+ m% q9 d
ADODB的Stream本身就可以保存为文件,试一试下面代码如何?- Sub main()
: A) W' f& E9 s! t - Dim i As Integer
2 i0 e# E: a' `" V - Dim sft As String
( |8 [/ r% p t. {% t - Dim spy As String
6 c/ W6 J$ C) A - Dim szm As String
, q* I) F! k) C1 V/ r1 x - Dim s As String$ } Q2 M! O6 r
- Dim Stm As New ADODB.Stream
* f* q3 j" Z$ z% L7 u - $ ]5 e- @! |, b6 k' z+ A
- Stm.Type = adTypeText3 D- S$ G; i$ o+ T* Y
- Stm.Mode = adModeUnknown
; o% [, \* j3 G" x% j: p - Stm.Open
7 ^* [" n5 Q% V5 U% R8 m5 l - Stm.Charset = "utf-8"2 o- u6 ], K ?7 r" ^% T$ u1 _
/ B j8 N c h$ G8 }. t- For i = 1 To 7' d8 c6 W3 z) M9 E) v: t
- sft = Cells(i, 1)
1 U5 T4 P: C1 Z0 H" z - szm = Cells(i, 2)
0 { Q- }7 V- O4 V - spy = Cells(i, 3)
$ F) P% l |" R3 s+ r9 n - s = "<a href=""entry://" & sft & "/"">" & sft & "</a>" & spy & "/" & szm
5 P; X* a# e6 t, G
- _* j: K$ |4 ~! r7 Y7 p1 |- Stm.WriteText s & vbLf U' P$ Q" ` j; |9 j( d7 d
- Next
( F9 o& V! `$ r, s+ n: G$ _5 p
: C5 n% l- P& [; Z3 o% T- If Dir("z:\vba.txt") <> "" Then Kill "z:\vba.txt"
) ^! z3 ?/ z1 a6 c# J7 o5 F& D, M2 y/ P - Stm.SaveToFile "z:\vba.txt"
0 L1 b7 z" D8 u$ } - Stm.Close
( v& a' k) m: Y) v, ~8 @% y - End Sub
b1 [) s8 z0 L1 P2 B' E2 P* ^, S- @
复制代码 |
|