Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2011, 13:42   #11
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Код:
Public Function Writer_To(strUnicode As String, FileName As String)
 
 Const adTypeBinary = 1
   Const adTypeText = 2
   Const bOverwrite = True
   Const bAsASCII = False
   Dim oFS: Set oFS = CreateObject("Scripting.FileSystemObject")
   Dim oFrom: Set oFrom = CreateObject("ADODB.Stream")
   Dim sFrom: sFrom = "utf-8"
   Dim oTo: Set oTo = CreateObject("ADODB.Stream")
   Dim sTo: sTo = "Windows-1251"
   Dim sTFSpec: sTFSpec = oFS.GetAbsolutePathName(FileName)
   If oFS.FileExists(sTFSpec) Then oFS.DeleteFile sTFSpec
   oFrom.Type = adTypeText
   oFrom.Charset = sFrom
   oFrom.Open
   oTo.Type = adTypeText
   oTo.Charset = sTo
   oTo.Open
 oTo.WriteText strUnicode
   oTo.SaveToFile sTFSpec
 
   oFrom.Close
   oTo.Close

End Function



 Public Function Writ_To_UTF8(strUnicode As String, FileName As String)
 
 Const adTypeBinary = 1
   Const adTypeText = 2
   Const bOverwrite = True
   Const bAsASCII = False
   Dim oFS: Set oFS = CreateObject("Scripting.FileSystemObject")
   Dim oFrom: Set oFrom = CreateObject("ADODB.Stream")
   Dim sFrom: sFrom = "Windows-1251"
   Dim oTo: Set oTo = CreateObject("ADODB.Stream")
   Dim sTo: sTo = "utf-8"
   Dim sTFSpec: sTFSpec = oFS.GetAbsolutePathName(FileName)
   If oFS.FileExists(sTFSpec) Then oFS.DeleteFile sTFSpec
   oFrom.Type = adTypeText
   oFrom.Charset = sFrom
   oFrom.Open
   oTo.Type = adTypeText
   oTo.Charset = sTo
   oTo.Open
 oTo.WriteText strUnicode
   oTo.SaveToFile sTFSpec
 
   oFrom.Close
   oTo.Close

End Function
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 18.08.2011, 13:49   #12
mrBond007
Пользователь
 
Регистрация: 17.08.2011
Сообщений: 10
По умолчанию

вручную не подойдет, все должно быть автоматически......
mrBond007 вне форума Ответить с цитированием
Старый 18.08.2011, 16:32   #13
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
как текстовый файл преобразовать из Unicode в ANSI ?
http://excelvba.ru/code/Encode
смотрите функцию ChangeFileCharset

Код:
Function ChangeFileCharset(ByVal filename$, ByVal DestCharset$, _
                           Optional ByVal SourceCharset$) As Boolean
    ' функция перекодировки (смены кодировки) текстового файла
   ' В качестве параметров функция получает путь filename$ к текстовому файлу,
   ' и название кодировки DestCharset$ (в которую будет переведён файл)
   ' Функция возвращает TRUE, если перекодировка прошла успешно
   On Error Resume Next: Err.Clear
    With CreateObject("ADODB.Stream")
        .Type = 2
        If Len(SourceCharset$) Then .Charset = SourceCharset$    ' указываем исходную кодировку
       .Open
        .LoadFromFile filename$    ' загружаем данные из файла
       FileContent$ = .ReadText   ' считываем текст файла в переменную FileContent$
       .Close
        .Charset = DestCharset$    ' назначаем новую кодировку
       .Open
        .WriteText FileContent$
        .SaveToFile filename$, 2   ' сохраняем файл уже в новой кодировке
       .Close
    End With
    ChangeFileCharset = Err = 0
End Function
EducatedFool вне форума Ответить с цитированием
Старый 18.08.2011, 18:13   #14
mrBond007
Пользователь
 
Регистрация: 17.08.2011
Сообщений: 10
По умолчанию

Большущее спасибо!!! все работает
mrBond007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в файле заменить один символ на другой? RockGirl Помощь студентам 0 16.05.2011 09:40
Как заменить все символы в текстовом поле на один определённый Memfis1992 Общие вопросы Delphi 3 16.06.2010 15:01
Как в текстовом файле распознать символ перевода строки? mzelenyy Общие вопросы C/C++ 4 12.06.2010 11:30
Как заменить слово в текстовом поле. vladtr SQL, базы данных 2 19.04.2010 09:46
Как можно убрать пробелы в текстовом файле? zzz007 Microsoft Office Excel 1 20.08.2009 23:14