|
发表于 2013-7-20 10:58:44
|
显示全部楼层
本帖最后由 i-wiki 于 2013-7-20 20:04 编辑
4 C7 _3 D! c! r' W) R+ `* B: ]5 Y7 \" G3 g) f) O
为什么要使用FSO?VBA有自己的文件处理语句,可以对文本或二进制数据操作,结合kernel32函数调用可完成Unicode到utf8代码转换。
0 }' X2 x4 u, N9 S7 R程序中疑似函数tran_ado转换时,从流中读出并返回串时有问题。
: a N* k" d) C/ i& M! }) u$ DADODB的Stream本身就可以保存为文件,试一试下面代码如何?- Sub main()9 |9 t2 M3 L0 j1 r
- Dim i As Integer
: T1 ~: x. a% y. E0 ? - Dim sft As String
3 K2 {7 n; r; M6 E* P - Dim spy As String
A# }& _& g- a' ` ` U* o7 c. D - Dim szm As String3 S! C% P6 M. `
- Dim s As String, }! e" t1 ^' J2 o( z. }
- Dim Stm As New ADODB.Stream
) b5 i2 C/ ]# o3 Z f* k8 w, K9 y - 2 P7 g: P! P. |
- Stm.Type = adTypeText
/ o3 e+ m x' _: v! J% Z- M, J' m4 R - Stm.Mode = adModeUnknown6 i8 h# l9 _1 Y1 E/ x
- Stm.Open
( T" M# |7 k: l - Stm.Charset = "utf-8"' l( M7 H$ d6 R. k# J( t
- ; [+ ~: m' B1 v' g
- For i = 1 To 7
" ?% t0 ^- j" U3 u$ b - sft = Cells(i, 1)
9 o" K2 J/ b6 z% L - szm = Cells(i, 2)! x* f3 N* N# m0 j/ U
- spy = Cells(i, 3)
, D I% o) U3 I0 b( R - s = "<a href=""entry://" & sft & "/"">" & sft & "</a>" & spy & "/" & szm
0 @& F/ [5 x5 W" V& M+ E8 w - 5 v6 C( L, w6 I; r/ ^1 _
- Stm.WriteText s & vbLf
9 j3 I( M- T/ D: U! s* ~ - Next
) b i- O2 D" L+ c
. d2 G5 A Z0 H+ l/ N: X0 h- If Dir("z:\vba.txt") <> "" Then Kill "z:\vba.txt"5 T. T# Z; b+ i
- Stm.SaveToFile "z:\vba.txt"
4 w1 I# q4 V$ K) C6 d W7 S( D/ ^ - Stm.Close
% Y$ F. ^3 X4 q. ]( }: Q - End Sub0 ^: D3 i1 ^* ~+ G3 L, ^
复制代码 |
|