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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2013, 20:45   #11
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Как вариант: в x64 строку "ку-ку" преобразовать в байтовый массив и сравнить с байтовыми массивами в различных кодировках под x32
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 09.02.2013, 20:57   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Проверил - байты одинаковые.
Вот как бы теперь эти байты превратить в UTF-8-строку?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.02.2013, 21:11   #13
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

также побайтово сравнить после перевода в utf 8 в разных версиях, чтоб убедиться в правильности преобразования
... не мое http://www.cyberforum.ru/vba/thread4...ml#post3005889
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 09.02.2013, 21:19   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

MultiByteToWideChar - это было первое, что не заработало под х64
Это просто выпадает в ошибку.
ADODB.Stream просто тупо молчит...
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.02.2013, 21:24   #15
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Пока вижу такое начало пути - преобразовываем исходную строку в байтовый массив, далее каждую пару чисел (или всегда каждое первое из пары?) преобразуем в 4 других... Уже это адская работа, чтоб не накосячить - да и сперва нужно соответствия где-то найти...
Но тогда следующий вопрос - как из этих чисел составить строку?
Наверняка есть путь прямее
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 09.02.2013, 21:29   #16
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Цитата:
MultiByteToWideChar - это было первое, что не заработало под х64
под х64 нужно менять типы при декларировании, меняли?
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 09.02.2013, 21:47   #17
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
#If Win64 And VBA7 Then
    Private Declare PtrSafe Function WideCharToMultiByte Lib "Kernel32" ( _
        ByVal CodePage As LongPtr, ByVal dwflags As LongPtr, _
        ByVal lpWideCharStr As LongPtr, ByVal cchWideChar As LongPtr, _
        ByVal lpMultiByteStr As LongPtr, ByVal cchMultiByte As LongPtr, _
        ByVal lpDefaultChar As LongPtr, ByVal lpUsedDefaultChar As LongPtr) As LongPtr
#Else
    Private Declare Function WideCharToMultiByte Lib "Kernel32" ( _
        ByVal CodePage As Long, ByVal dwflags As Long, _
        ByVal lpWideCharStr As Long, ByVal cchWideChar As Long, _
        ByVal lpMultiByteStr As Long, ByVal cchMultiByte As Long, _
        ByVal lpDefaultChar As Long, ByVal lpUsedDefaultChar As Long) As Long
#End If
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 09.02.2013, 21:53   #18
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Менял - но похоже что там этого просто нет...

Так, стоп - спотыкается на StrPtr... Почему может такое быть?
Вернее что это может заменить в х64?

Нет, это обошёл - спотыкается на WideCharToMultiByte... Тип не известен - хотя Kernel32 есть... ?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 09.02.2013 в 22:09.
Hugo121 вне форума Ответить с цитированием
Старый 09.02.2013, 23:18   #19
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
ADODB.Stream просто тупо молчит...
У меня W7 х64 офис 2013 отработал ADODB.Stream нормально,создал текстовик с кодировкой UTF-8.
Перегрузился,W7 x32 офис 2010 создал новый текстовик,тот же текст с кодировкой UTF-8.
Перезрузился на ХР,посмотрел файлы,везде кодировка UTF-8.

OlePrn.OleCvt.1 этой штукой не пользуюсь,у меня она как правило косячит,только ADODB.Stream
вот такой результат испытаний.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 09.02.2013, 23:23   #20
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Сергей, можно попросить код с ADODB.Stream, но не для файла, а функцию для конвертирования одной строки. Может там какая мелочь мешает, не знаю... У меня просто выдало нулевую строку и всё. Дома тот же код работал корректно.

Не, похоже что наврал - дома тоже уже не работает с UTF-8...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 09.02.2013 в 23:58.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с windows server 2008 Molodoii Операционные системы общие вопросы 3 04.09.2012 18:33
Проблема с Windows Server 2008 ChocoPie Помощь студентам 8 14.12.2011 22:04
Не запускается Windows Server 2008 Салауат Windows 2 09.10.2011 20:02
windows server 2008 Viktor_Line Windows 5 27.10.2009 09:11