日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VBA生成或讀取指定字符集的文本文件

 Excel實(shí)用知識(shí) 2021-11-21
用VBA做工具的過程中,遇見這樣一個(gè)問題。使用FSO方式或者直接OPEN文件方式,生成的文本文件采用的字符集為當(dāng)前操作系統(tǒng)默認(rèn)字符集,不能選擇字符集類型。這樣的文件作為應(yīng)用程序的配置文件或者作為js代碼文件,常常會(huì)因?yàn)樽址皇荱TF-8,不能直接使用,需要利用記事本進(jìn)行一次人工的字符集轉(zhuǎn)換。特別麻煩。

近日發(fā)現(xiàn)有一辦法,可以較好的解決這個(gè)問題。即是采用ADO的方式,將字符串生成以指定字符集的流文件輸出。
函數(shù)代碼如下,VB或VBA中均可用。注意:需要添加對(duì)ADO 對(duì)象庫的引用。

ADO方式寫入
'功能:text保存為文件(ADO方式)
'
輸入:輸出文件地址、內(nèi)容文本、字符集
'
輸出:無
Sub WriteToTextFileADO(filePath As String, strContent As String, CharSet As String)
    
Set stm = New ADODB.Stream
    stm.Type 
= 2 '以本模式讀取
    stm.Mode = 3
    stm.CharSet 
= CharSet
    stm.Open
    stm.WriteText strContent
    
'如果文件存在,刪除文件
    If Len(Dir(filePath)) > 0 Then
        Kill filePath
    
End If
    stm.SaveToFile filePath, 
2
    stm.Flush
    stm.Close
    
Set stm = Nothing
End Sub

使用示例:
Call WriteToTextFileADO(Sheets('channel-list').Cells(35& '\' & feedName & '.xml', feedXml, 'utf-8')

ADO方式讀取

'功能:讀取text文件(ADO方式)
'
輸入:輸入文件地址、字符集
'
輸出:無
Function ReadFromFileADO(filePath As String, CharSet As StringAs String
    
Dim strRtn As String
    
Set stm = New ADODB.Stream
    stm.Type 
= 2 '以本模式讀取
    stm.Mode = 3
    stm.CharSet 
= CharSet
    stm.Open
    stm.LoadFromFile filePath
    strRtn 
= stm.ReadText
    stm.Close
    
Set stm = Nothing
    ReadFromFileADO 
= strRtn
End Function

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多