小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

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

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

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

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多