Интересен проблем с чарсетите ...

6 отговора 243 прегледа
#1

Интересен проблем с чарсетите ...

Имам приложение което записва и чете в база данни на Парадокс 7.0.
В един прозорец имам грид, който има няколко колони. 2 от тях са текстови(с дължина 100 символа). Като пиша в грида записва директно в базата данни (ползвам Едит, Пост и ТТабле компонент). До тук всичко е перфектно. Програмката си работи добре.
Обаче в един прекрасен момент искам в едната текстова колона да пиша на Турски а в другата на Български и от тук почват проблемите. Турския излиза на маймуни а българсия добре. В регионалните настройки (Advanced->Language for non-unicode programs)бях указал Български, смених го на турски и нещата се обърнаха, почнах да виждам турския шрифт добре а българския стана на въпросителни. Пробвах варианти на самата форма да и указвам от Фон->чарсет различен чарсет (доста варианти врътнах) ама без резултат.
Някои имал ли е подобен проблем?!?! (че вече откачам)

Отговор
в отговор на Vermax #2

Re: Интересен проблем с чарсетите ...

Ами да не те разочаровам, но Парадокс-а може да поддържа само една кодова таблица. От Control panel -> BDE Administrator -> tab Configuration -> избираш Drivers -> native drivers -> Paradox ->Langdriver.
Като леко дърварски вариант - 2 таблици само за стринговете с бг и турски. Май няма кодова таблица обща и за двата езика.

Отговор
в отговор на Vermax #3

Re: Интересен проблем с чарсетите ...

non-unicode е като черно-бял (-зелен, -червен) монитор. Възможни са само два езика в един и същ момент, от които единия е английски.
За многоезикови приложения спасението ти е само unicode.

Отговор
в отговор на NDeu #4

Re: Интересен проблем с чарсетите ...

Мда. знам, но приятелите от Борланд навремето не са го вкарали. Та питането ми беше за някакъв "по-тарикатски начин" така че да не се налага да пренаписвам половината приложение или да сменям базата данни.
Освен за отделяне на колоната в друга таблица се сещам и за друго нещо(което е голяма простотия но е решение). В един английски шрифт да вкарам само допълнителните символи от турския(останалите ги разпознава добре). Така ще имам английски(турски) и български. Приложението ми не е комерсиално(тоест само за нуждите на 1 клиент се прави) тоест мога да си го позволя. Как ви се струва?

Отговор
в отговор на Vermax #5

Re: Интересен проблем с чарсетите ...

Ако Grid-a който използваш има "onDrawCell", то може там да използваш
"DrawText", "Canvas.TextOut" или "Canvas.TextRect", като според колоната задаваш съответния CharSet на "Canvas.Font" т.е. може да промянш всичко за шрифта.

Отговор
в отговор на Vermax #6

Re: Интересен проблем с чарсетите ...

Това, ако е вярно. излиза, че в Парадокс се записват букви и от двата езика.
Обаче в твоята програма не може да се показват едновременно.
Следователно трябва програмата да се направи да е unicode.

Отговор
в отговор на Йopдaн #7

Re: Интересен проблем с чарсетите ...

И аз си мислех това но няма нужда от толкова сложно.
В проблема беше в грида - сложих един ТДБЕдит и на него му промених чарсета и започна да пише коректно в базата данни.

Отговор