MyTetra Share
Делитесь знаниями!
Текстовые Файлы - Экспорт в текстовый файл в заданной кодировке
16.03.2019
23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 11 Импорт - Экспорт

Текстовые Файлы - Экспорт в текстовый файл в заданной кодировке

По материалам:
http://excelvba.ru/code/SaveTextToFile
http://excelvba.ru/code/encode


Function SaveTextToFile(ByVal txt$, ByVal filename$, Optional ByVal encoding$ = "windows-1251") As Boolean

' функция сохраняет текст txt в кодировке Charset$ в файл filename$

' http://excelvba.ru/code/SaveTextToFile

' http://excelvba.ru/code/encode

'-----------------------------------------------------------------

Dim FSO As Object

Dim ts As Object

Dim binaryStream As Object


On Error Resume Next: Err.Clear

Select Case encoding$

Case "windows-1251", "", "ansi"

Set FSO = CreateObject("scripting.filesystemobject")

Set ts = FSO.CreateTextFile(filename, True)

ts.Write txt: ts.Close

Set ts = Nothing: Set FSO = Nothing

Case "utf-16", "utf-16LE"

Set FSO = CreateObject("scripting.filesystemobject")

Set ts = FSO.CreateTextFile(filename, True, True)

ts.Write txt: ts.Close

Set ts = Nothing: Set FSO = Nothing

Case "utf-8noBOM"

With CreateObject("ADODB.Stream")

.Type = 2: .Charset = "utf-8": .Open

.WriteText txt$

Set binaryStream = CreateObject("ADODB.Stream")

binaryStream.Type = 1: binaryStream.Mode = 3: binaryStream.Open

.Position = 3: .CopyTo binaryStream 'Skip BOM bytes

.flush: .Close

binaryStream.SaveToFile filename$, 2

binaryStream.Close

End With

Case Else

With CreateObject("ADODB.Stream")

.Type = 2: .Charset = encoding$: .Open

.WriteText txt$

.SaveToFile filename$, 2 ' сохраняем файл в заданной кодировке

.Close

End With

End Select

SaveTextToFile = Err = 0: DoEvents

End Function






Пример эксплуотации:

'Write

val = SaveTextToFile(str, stPagePath, "utf-8noBOM")




Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования