|
发表于 2013-7-20 10:58:44
|
显示全部楼层
本帖最后由 i-wiki 于 2013-7-20 20:04 编辑
( r5 U3 a3 [2 k) ~- Q% r! {9 ^
& `; I2 n, P. B为什么要使用FSO?VBA有自己的文件处理语句,可以对文本或二进制数据操作,结合kernel32函数调用可完成Unicode到utf8代码转换。$ }& ~& j* `, @8 g' i5 E% Z
程序中疑似函数tran_ado转换时,从流中读出并返回串时有问题。+ @3 c: T% H2 `& H) `. [
ADODB的Stream本身就可以保存为文件,试一试下面代码如何?- Sub main()
# M/ b( ? I9 B* ~$ Y0 S - Dim i As Integer
$ A' y2 P7 j- C; ]+ V2 W - Dim sft As String; N. j- |2 ?% M7 S
- Dim spy As String
( Q8 F! j- r* j P - Dim szm As String, C; u' d+ T% S3 Q
- Dim s As String
8 f+ }9 Z; y1 I' i5 b - Dim Stm As New ADODB.Stream& T7 N$ s9 u& T. c/ T8 w
/ V: J. C4 O& m8 C1 E- Stm.Type = adTypeText$ E% r/ F) T1 y' }3 b8 C8 G Q
- Stm.Mode = adModeUnknown
! b, \- B- V1 Z8 S: s - Stm.Open+ p; B1 F b4 C# Y; _( Z) Q4 b
- Stm.Charset = "utf-8"5 Y! M" Y1 R$ ^: N0 d2 N
/ w, C: u3 y5 q. j+ w' `% S d5 z- For i = 1 To 7
) o; N2 k+ m% q' ] x4 V( R$ H" s - sft = Cells(i, 1)1 ?( R, t& |2 Y( r& E7 O
- szm = Cells(i, 2)
: @" ]' y5 e3 ], H$ s: ~ - spy = Cells(i, 3)
7 U$ Y v+ C, c- ^7 Z3 Q6 q - s = "<a href=""entry://" & sft & "/"">" & sft & "</a>" & spy & "/" & szm
+ r# M {3 w. w2 Z6 K
A! h: ]! t! J2 f2 B- Stm.WriteText s & vbLf
, S! R8 x% \, \ - Next
% ~& o; u" k2 Y% s% ?( U$ s - ) Y( s! c3 y7 _0 F$ i
- If Dir("z:\vba.txt") <> "" Then Kill "z:\vba.txt"# w( A; X1 p3 [; i
- Stm.SaveToFile "z:\vba.txt"5 d( ^( y' n2 }: b6 e9 e1 p. m( r
- Stm.Close
! K. ?5 g! b1 l7 p' [ L/ \ - End Sub
& T' p2 `9 l0 q8 H2 B" @
复制代码 |
|