![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 файлы говори что это такое