Интересен проблем с чарсетите ...
6 отговора
243 прегледа
Интересен проблем с чарсетите ...
Имам приложение което записва и чете в база данни на Парадокс 7.0.
В един прозорец имам грид, който има няколко колони. 2 от тях са текстови(с дължина 100 символа). Като пиша в грида записва директно в базата данни (ползвам Едит, Пост и ТТабле компонент). До тук всичко е перфектно. Програмката си работи добре.
Обаче в един прекрасен момент искам в едната текстова колона да пиша на Турски а в другата на Български и от тук почват проблемите. Турския излиза на маймуни а българсия добре. В регионалните настройки (Advanced->Language for non-unicode programs)бях указал Български, смених го на турски и нещата се обърнаха, почнах да виждам турския шрифт добре а българския стана на въпросителни. Пробвах варианти на самата форма да и указвам от Фон->чарсет различен чарсет (доста варианти врътнах) ама без резултат.
Някои имал ли е подобен проблем?!?! (че вече откачам)
В един прозорец имам грид, който има няколко колони. 2 от тях са текстови(с дължина 100 символа). Като пиша в грида записва директно в базата данни (ползвам Едит, Пост и ТТабле компонент). До тук всичко е перфектно. Програмката си работи добре.
Обаче в един прекрасен момент искам в едната текстова колона да пиша на Турски а в другата на Български и от тук почват проблемите. Турския излиза на маймуни а българсия добре. В регионалните настройки (Advanced->Language for non-unicode programs)бях указал Български, смених го на турски и нещата се обърнаха, почнах да виждам турския шрифт добре а българския стана на въпросителни. Пробвах варианти на самата форма да и указвам от Фон->чарсет различен чарсет (доста варианти врътнах) ама без резултат.
Някои имал ли е подобен проблем?!?! (че вече откачам)
Re: Интересен проблем с чарсетите ...
Ами да не те разочаровам, но Парадокс-а може да поддържа само една кодова таблица. От Control panel -> BDE Administrator -> tab Configuration -> избираш Drivers -> native drivers -> Paradox ->Langdriver.
Като леко дърварски вариант - 2 таблици само за стринговете с бг и турски. Май няма кодова таблица обща и за двата езика.
Като леко дърварски вариант - 2 таблици само за стринговете с бг и турски. Май няма кодова таблица обща и за двата езика.
Re: Интересен проблем с чарсетите ...
non-unicode е като черно-бял (-зелен, -червен) монитор. Възможни са само два езика в един и същ момент, от които единия е английски.
За многоезикови приложения спасението ти е само unicode.
За многоезикови приложения спасението ти е само unicode.
Re: Интересен проблем с чарсетите ...
Мда. знам, но приятелите от Борланд навремето не са го вкарали. Та питането ми беше за някакъв "по-тарикатски начин" така че да не се налага да пренаписвам половината приложение или да сменям базата данни.
Освен за отделяне на колоната в друга таблица се сещам и за друго нещо(което е голяма простотия но е решение). В един английски шрифт да вкарам само допълнителните символи от турския(останалите ги разпознава добре). Така ще имам английски(турски) и български. Приложението ми не е комерсиално(тоест само за нуждите на 1 клиент се прави) тоест мога да си го позволя. Как ви се струва?
Освен за отделяне на колоната в друга таблица се сещам и за друго нещо(което е голяма простотия но е решение). В един английски шрифт да вкарам само допълнителните символи от турския(останалите ги разпознава добре). Така ще имам английски(турски) и български. Приложението ми не е комерсиално(тоест само за нуждите на 1 клиент се прави) тоест мога да си го позволя. Как ви се струва?
Re: Интересен проблем с чарсетите ...
Ако Grid-a който използваш има "onDrawCell", то може там да използваш
"DrawText", "Canvas.TextOut" или "Canvas.TextRect", като според колоната задаваш съответния CharSet на "Canvas.Font" т.е. може да промянш всичко за шрифта.
"DrawText", "Canvas.TextOut" или "Canvas.TextRect", като според колоната задаваш съответния CharSet на "Canvas.Font" т.е. може да промянш всичко за шрифта.
Re: Интересен проблем с чарсетите ...
Това, ако е вярно. излиза, че в Парадокс се записват букви и от двата езика.
Обаче в твоята програма не може да се показват едновременно.
Следователно трябва програмата да се направи да е unicode.
Обаче в твоята програма не може да се показват едновременно.
Следователно трябва програмата да се направи да е unicode.
Re: Интересен проблем с чарсетите ...
И аз си мислех това но няма нужда от толкова сложно.
В проблема беше в грида - сложих един ТДБЕдит и на него му промених чарсета и започна да пише коректно в базата данни.
В проблема беше в грида - сложих един ТДБЕдит и на него му промених чарсета и започна да пише коректно в базата данни.