Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBF файл и Юникоды


Lala ©   (2004-07-19 16:14:00) 

Поддерживаются  ли Юникоды в DBF файлах 8-й версии Дельфи? Если да, то каким образом. У меня выходят вопросительные знаки. Благодарна за любые рекомендации.


y-soft   (2004-07-22 17:23:00) [1]

Юникод разный бывает...

Если речь о UTF-16 (типы Widestring, Widechar. Размер символа 2 или 4 байта), то с ним проблемы следующие:

Проблемы с СУБД.

Из-за того, что в символах набора Latin 1 один байт всегда равен #0, большинство библиотек доступа  СУБД по этому #0 строку режет (при этом большинство СУБД строки с многобайтовой кодировкой хранят без проблем). Счастливое исключение - Unified Interbase ( http://www.progdigy.com/UIB/). При использовании IB необходимо установить CHARACTER SET NONE и размер поля в 2 раза больше наибольшей длины строки в символах и забыть про привычную сортировку...

В принципе можно обойтись и привычными IBX etc, если перед записью заменять в строках все #0 на любой из диапазона #$8F..#$BF (эти наборы определены в стандарте как пользовательские), а при чтении из базы проводить обратную конвертацию

Проблемы с VCL.

Контролы Delphi UTF-16 в принципе воспроизводить не могут, т.к. используют ANSI варианты функций API, да и вообще не имеют свойств типа Widestring - приходится использовать альтернативы (вроде TNT).

Проблемы с используемыми шрифтами. Чтобы не появлялись вопросы вместо символов, необходимо использовать шрифт, в котором эти символы присутствуют. Наиболее универсальным является Arial Unicode MS (он есть в дистрибутиве MS Office - ARIALUNI.TTF, правда размерчик великоват - 22Мб!). Немного другие наборы символов содержит Core2000, но его создавал явно не художник...
Об юникодовских шрифтах - http://www.alanwood.net/unicode/fonts.html


Лала   (2004-07-22 15:55:00) [2]

Cпасибо всем!


Anatoly Podgoretsky   (2004-07-21 23:51:00) [3]

dBase до версии 2000 включительно не имеет поддержки Юникода.
Надо переходить на другой формат InterBase/MSSQL(MSDE)/Access


Adil   (2004-07-21 23:21:00) [4]

У меня тоже были такие программы. Лала, наши буквы(Азербайджанские) тоже после сохранение перебразуется на ???.
Лучше используй MS SQL. Если трудно тогда можеш Access через ADO.
Можеш обшатся через э-мейл или IM
E-mail: adil@aliev.info
ICQ: 174321977
Yahoo: alievadil
MSN: adil@aliev.info


Лала   (2004-07-21 15:22:00) [5]

Спасибо большое, завтра попробую.  Аccess у меня есть, а  с
mssql никогда не работала. Еще раз спасибо.


sniknik   (2004-07-21 15:14:00) [6]

> а для баз данных не работает((
dbf возможно (даже больше чем ;о), смотря что понимать, если оракловские файлы то не может быть ;о)), а вот access, mssql работает даже в прогах на 7 дельфе и ниже (проверено).


Лала   (2004-07-21 15:06:00) [7]

Юникод работает по умолчанию при создании Меню, а для баз данных не работает((


sniknik   (2004-07-21 15:02:00) [8]

> интересно это для 8-й применимо, вы случайно не знаете.
в восьмерке юникод должен по умолчанию быть (поддержан компонентами), ведь там идея что все работает унифицировано под платформой NET. так что там тнт лишний (сорри не обратил внимания на упоминание о восьмерке)


Лала   (2004-07-21 14:42:00) [9]

Спасибо всем кто откликнулся.

sniknik - Посмотрела по ссылке. Спасибо. Там выложено все для 6-й версии, интересно это для 8-й применимо, вы случайно не знаете.

TuMOXA  -
база - firebird, о которой вы упоминаете она поддерживает все специфические буквы? В моем случае речь идет о буквах восточных языков.


sniknik   (2004-07-21 14:14:00) [10]

> Переключилась на Delphi.
дельфи тоже его не поддерживает, в стандарте во всяком случае (но он (дельфи) язык программирования, такой забавный ;о), позволяет написать даже то что сначала не поддерживает ;о)))
воспользуйся если сам не можеш/лень написать
http://tnt.ccci.org/delphi_unicode_controls/

> Если бы знать базами какой среды можно воспользоваться
access, mssql, ...

> Может быть что-нибудь посоветуете.
не пользуйся BDE/ODBC, они в этом случае "слабое звено" тоже не держат юникод. (можно ADO)


TuMOXA   (2004-07-21 11:24:00) [11]

Я пишу юникодовые приложения так : база - firebird, интерфейс -библиотека Tnt, Отчёты - Afalina XL Report.


Лала   (2004-07-21 09:54:00) [12]

Здравствуйте, Анатолий! Спасибо за внимание.
Работала на Visual FoxPro.
Дело в том, что базы в Visual FoxPro не поддерживают Юникоды.
Переключилась на Delphi.  Мне необходимо создать программу, работающую именно с Юникодами.
Если бы знать базами какой среды можно воспользоваться, чтобы программа, написанная на Delphi могла распозновать содержимое базы с использованием при необходимости Юникодов. То есть речь идет о распозновании редко используемых шрифтов, коды которых имеют номер  больше 255. Может быть что-нибудь посоветуете.


nikol   (2004-07-21 09:34:00) [13]

Удалено модератором


nikol   (2004-07-21 09:33:00) [14]

Удалено модератором
Примечание: Задай сообщение в своей ветке


Anatoly Podgoretsky   (2004-07-21 09:31:00) [15]

В таком случае смотри спецификацию на Visual FoxPro for Windows. Если конечно такая база существует, я знаю только Visual FoxPro 3..8


я   (2004-07-21 09:16:00) [16]

Неужели никто не сталкивался с такой проблемой((


Lala   (2004-07-21 09:08:00) [17]

DBF файлы - это база данных, созданная в среде Visual FoxPro.


Lala   (2004-07-19 16:28:00) [18]

Базы данных, создаваемые в среде Visual FoxPro for Windows.


Anatoly Podgoretsky   (2004-07-19 16:24:00) [19]

Когда говоришь про DBF файлы говори что это такое


Наверх

Титульная страница Поиск, карта сайта Написать письмо