Список форумов Акцент Акцент
официальный форум разработчика программы Акцент
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проблема с отражением украинских букв в DBF файле
На страницу 1, 2  След.
 
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0
Предыдущая тема :: Следующая тема  
Автор Сообщение
Daemonu4
Гость





СообщениеДобавлено: Чт Мар 04, 2010 9:24 pm    Заголовок сообщения: Проблема с отражением украинских букв в DBF файле Ответить с цитатой

Ребята спасайте

Для месячной персонификации форируем таблици в DBF формате
путём импорта из акцента. Но вот только возникает проблема с отражение м букв і, ї получается вот так Натал?я.
Файл создавал и под FoxPro, Accessa менял кодировки всё без толку.
Кто сталкиваля подскажите, и кто не сталкивался тоже подскажите дельным советом.
Вернуться к началу
Daemonu4
Гость





СообщениеДобавлено: Пт Мар 05, 2010 9:08 am    Заголовок сообщения: Ответить с цитатой

Люди не партесь проблема решена
Вернуться к началу
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Пт Мар 05, 2010 9:19 am    Заголовок сообщения: Ответить с цитатой

Daemonu4 писал(а):
Люди не партесь проблема решена

Поделись
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Daemonu4
Гость





СообщениеДобавлено: Пт Мар 05, 2010 10:18 am    Заголовок сообщения: Ответить с цитатой

Поделись[/quote]

Поспешил немного с проблемой решена.

Только на половину

В месячном бесте есть менюшка єкспорта DBF файла. Запускаем её и вэти файлы записываем данные. Всё как бы красиво получается Access стал видеть украинские букви.
Но есть большое НО при импорте в БЕСТ украинские буквы таво ?.
Так что проблева остаётся, продолжаем разговор. Wink
Вернуться к началу
Kimmy



Зарегистрирован: 05.06.2006
Сообщения: 44

СообщениеДобавлено: Пт Мар 05, 2010 1:15 pm    Заголовок сообщения: Ответить с цитатой

А ХМЛ не спасает отца русской демократии ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AllexL



Зарегистрирован: 10.03.2005
Сообщения: 434
Откуда: Donetsk

СообщениеДобавлено: Пт Мар 05, 2010 1:37 pm    Заголовок сообщения: Re: Проблема с отражением украинских букв в DBF файле Ответить с цитатой

Daemonu4 писал(а):
Но вот только возникает проблема с отражение м букв і, ї получается вот так Натал?я.

Попробовать экспортировать в дбф (не обязательно персонификацию) из звита текст, содержащий букву i прочитать КОД_СИМВОЛА в VBS-е

Чуть не забыл - есть еще возможность экспорта в БЗ через COM-интерфейс.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Мар 05, 2010 5:17 pm    Заголовок сообщения: Ответить с цитатой

olimp писал(а):
Daemonu4 писал(а):
Люди не партесь проблема решена

Поделись


Для работы с файлами ДБФ предпочтительно использовать OLE DB Provider for Visual FoxPro. Он понимает различные кодировки, может создавать ДБФ файлы с заданными числовыми полями, но его нужно загрузить http://download.microsoft.com/download/b/f/b/bfbfa4b8-7f91-4649-8dab-9a6476360365/VFPOLEDBSetup.msi и установить. Строка соединения имеет вид:
Код:

  cn.Open "Provider=VFPOLEDB;" & _
          "Extended Properties=FoxPro;" & _
          "CodePage=1251;" & _
          "Data Source="&fldNM&";"


В штатном JET-драйвере по умолчанию установлена кодировка OEM. В этом состоянии он игнорирует команды установки кодовой страницы и всегда выполняет ANSI-OEM преобразование.
Признак кодовой страницы (29-й байт в файле DBF) JET-драйвер не понимает, длинные имена не поддерживает - но поведение xBase ISAM зависит от наличия BDE (Borland DataBase Engine) в системе.
Для записи ДБФ в формате ANSI гарантированно отключить автоматическое ANSI-OEM преобразование в драйвере можно только изменив значение ключа в реестре:
Код:
        If ask("Для использования существующего драйвера необходимо установить в реестре кодовую страницу ANSI"&vbCrLf&_
               "В редких случаях это может повлиять на правильность отображения символов кириллицы"&vbCrLf&_
               "в данных, импортированных некоторыми другими программами, использующие обмен файлами DBF."&vbCrLf&_
               "Сменить кодовую страницу драйвера?") Then _
          CreateObject("WScript.Shell").RegWrite "HKLM\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase\DataCodePage", "ANSI"


В кодировке OEM (CP866) нет украинских символов "ЇїЄєҐґІі", поэтому при штатном преобразовании ANSI-OEM происходит их замена на знаки вопроса. Для отправки в украинской ДОС-кодировке (RUSCII, она же CP-1125) помогает замена украинских букв специально подобранными символами. Для передачи в БЕСТ-ЗВИТ можно заменять украинские "i" английскими, он их исправляет.
Код:
'этот алфавит правильно (кроме ї) преобразуется в OEM ISAMом.
Function CorrectUkrAnsi(str) ' предыскажение украинских символов в строке для перевода в RUSCII при ANSI-OEM преобразовании.
  Dim ss : ss=Replace(str,Chr(175),Chr(176))   ',"I")'Ї      175=248
           ss=Replace( ss,Chr(191),Chr(176))   ',"i")'ї      191=249 не ловится, поставили Ї
           ss=Replace( ss,Chr(170),Chr(175))   ',"Э")'Є      170=244
           ss=Replace( ss,Chr(186),Chr(191))   ',"э")'є      186=245   '
           ss=Replace( ss,Chr(165),Chr(170))   ',"Г")'Ґ      165=242
           ss=Replace( ss,Chr(180),Chr(186))   ',"г")'ґ      180=243
           ss=Replace( ss,Chr(178),Chr(161))   ',"I")'І      178=246
           ss=Replace( ss,Chr(179),Chr(162))   ',"i")'і      179=247
  CorrectUkrAnsi=ss
End Function


Последний раз редактировалось: Юров Ю.С. (Пт Мар 12, 2010 9:56 am), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Daemonu4
Гость





СообщениеДобавлено: Ср Мар 10, 2010 7:58 pm    Заголовок сообщения: Ответить с цитатой

Благодаствуем Юров Ю.С. за большой выбор решений сложившейся проблемы. Пригодился последний вариант Exclamation
Вернуться к началу
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Пт Мар 12, 2010 9:58 am    Заголовок сообщения: Ответить с цитатой

Пожалуйста. Я подправил описательную часть, надеюсь что проблема и пути решения достаточно полно раскрыты.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Sergio



Зарегистрирован: 05.01.2009
Сообщения: 18

СообщениеДобавлено: Ср Апр 14, 2010 1:12 pm    Заголовок сообщения: Ответить с цитатой

Похожая проблема, когда надо сделать импорт из клиент-банка. Получается что в поле примечание вместо всех букв знаки вопроса. В настройках клиент банка, кодировка для ДБФ файла стоит DOS866.
Как-то можно это решить?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Ср Апр 14, 2010 6:56 pm    Заголовок сообщения: Ответить с цитатой

Sergio писал(а):
Похожая проблема, когда надо сделать импорт из клиент-банка. Получается что в поле примечание вместо всех букв знаки вопроса. В настройках клиент банка, кодировка для ДБФ файла стоит DOS866.
Как-то можно это решить?

Клиент - банк чей и какой версии ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Юров Ю.С.



Зарегистрирован: 11.03.2005
Сообщения: 383
Откуда: Павлоград

СообщениеДобавлено: Ср Апр 14, 2010 8:15 pm    Заголовок сообщения: Ответить с цитатой

Sergio писал(а):
...вместо всех букв знаки вопроса...

При ошибках преобразования OEM-ANSI печатаются кракозябры вместо русских (или украинских) букв.
А если вместо букв появляются знаки вопроса, то вероятнее всего из-за неверных настроек операционной системы происходит лишнее UNICODE-преобразование.
По-любому сперва нужно попробовать нейтрализовать появление вопросительных знаков:
Панель управления\Язык и региональные стандарты\Дополнительно\Язык программ, не поддерживающих Юникод - русский.
Панель управления\Язык и региональные стандарты\Региональные параметры\Языковые стандарты и форматы - русский.


Последний раз редактировалось: Юров Ю.С. (Ср Апр 14, 2010 9:11 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Sergio



Зарегистрирован: 05.01.2009
Сообщения: 18

СообщениеДобавлено: Ср Апр 14, 2010 9:03 pm    Заголовок сообщения: Ответить с цитатой

Клиент-банк УкрЕксим... версию точно не скажу...
Но проблема скорей в системе, чем в настройках самого клиент-банка, потому что на другом комп. грузится нормально...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
olimp
Site Admin


Зарегистрирован: 10.03.2005
Сообщения: 2661

СообщениеДобавлено: Чт Апр 15, 2010 7:33 am    Заголовок сообщения: Ответить с цитатой

Sergio писал(а):
Клиент-банк УкрЕксим... версию точно не скажу...
Но проблема скорей в системе, чем в настройках самого клиент-банка, потому что на другом комп. грузится нормально...

В смысле чьей разработки.
Последний клиент от Импакта позволяет в XML-настройках управлять строкой подключения к файлу с выпиской, что решает часть проблем с кодировкой.
Юров правильно сказал (см. выше). Вопросы - это проблема с Unicode
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Sergio



Зарегистрирован: 05.01.2009
Сообщения: 18

СообщениеДобавлено: Чт Апр 15, 2010 10:29 am    Заголовок сообщения: Ответить с цитатой

В диалоге клиент-банка:
19-Oct-2001
Copyright (c) 2000 by Impact Group Ltd.

Спасибо за рекомендации. Попробую.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Акцент -> Акцент 7.0 Часовой пояс: GMT + 2
На страницу 1, 2  След.
Страница 1 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group