VBA写txt文件--vba写RF文件--vbs写文本文件不同编码--vba写UTF8

'       ===================================================
'       以下为文件操作函数
'       ===================================================

    Sub InitNotepad(MyfileName)
        '
        '初始化文件,判断文件MyfileName存在不,不存在则创建,存在则清空;
        '
        Dim fso, fil
        '创建fso对象
        Set fso = CreateObject("Scripting.FileSystemObject")
        If (fso.fileexists(MyfileName)) Then
            '打开文件,参数1为forreading,2为forwriting,8为appending
            '如果存在文件则删除该文件
            fso.DeleteFile (MyfileName)
        End If

         Set fil = fso.CreateTextFile(MyfileName, True)
        '释放文件
        Set fso = Nothing

    End Sub


    Sub AppendNotepad(MyfileName, MyStr)  
        Const ForReading = 1, ForWriting = 2, ForAppending = 8
        Dim fso, fil
        '创建fso对象
        Set fso = CreateObject("Scripting.FileSystemObject")

        

'TristateUseDefault –2 使用系统缺省打开文件。 
'TristateTrue       –1 以 Unicode 格式打开文件。 
'TristateFalse       0 以 ASCII 格式打开文件。

'注意这里要与创建文件时的编码一致

         Set fil = fso.OpenTextFile(MyfileName, 8, True, 0)
          fil.writeline (MyStr)
        '关闭文件
        fil.Close
        '释放文件
        Set fil = Nothing
        Set fso = Nothing
    End Sub


    Sub WriteNotepad(MyfileName, MyStr)
        Dim fso, fil
        '创建fso对象
        Set fso = CreateObject("Scripting.FileSystemObject")
        '初始化并写文件
        Call InitNotepad(MyfileName)
        Set fil = fso.OpenTextFile(MyfileName, 2)
        fil.Write (MyStr)
        '关闭文件
        fil.Close
        '释放文件
        Set fil = Nothing
        Set fso = Nothing
    End Sub


'从宽字节到多字节
Public Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByRef lpMultiByteStr As Any, ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal cchWideChar As Long) As Long
Public Const CP_UTF8 = 65001
 Sub WriteOut(strPath, str)
        Dim lBufSize As Long
        Dim lRest As Long
        Dim bUTF8() As Byte
        Dim TLen As Long
    
    TLen = Len(str)
    lBufSize = TLen * 3 + 1
    ReDim bUTF8(lBufSize - 1)
    lRest = WideCharToMultiByte(CP_UTF8, 0, StrPtr(str), TLen, bUTF8(0), lBufSize, vbNullString, 0)
    
    If lRest Then
        lRest = lRest - 1
        ReDim Preserve bUTF8(lRest)
        Open strPath For Binary As #1
        
        
        Put #1, , bUTF8
        Close #1
    End If
End Sub



'写的格式为UTF8
 Sub createUFT8(strPath, str)
'换行建议使用vbcrlf,否则robotFramwork无法解析
    Dim objStream As Object
    Set objStream = CreateObject("ADODB.Stream")
    With objStream
        .Type = 2               'adTypeText
        .Charset = "UTF-8"
        .Open
        .WriteText str
        .SaveToFile strPath, 2  'adSaveCreateOverWrite
    End With
    
    Set objStream = Nothing

End Sub


'       ===================================================
'       以上为文件操作函数
'       ===================================================

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜕变之痛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值