Multijęzyczność programu....

dział ogólny

Multijęzyczność programu....

Nowy postprzez Frani0 » poniedziaÅ‚ek, 31 sierpnia 2009, 00:35

Witam

chcę aby program był multi języczny przy użyciu Turbo C++ i plików *.CSV na czym polega problem? otóż znaki diakrytyczne polskie mieszczą się do 256 czyli tyle co może mieć maksymalnie znak char a co w wypadku znaków chińskich, arabskich, czeskich czy ktoś miał już ten problem jak je zapisać i jak potem odczytać? gdyż char mieści maksymalne 256 a String to przecież łańcuch charów.

Jeszcze jedno pytanie dlaczego jak wkleję znak z systemowej tablicy znaków do richedita to on się swobodnie wyświetla a jak chce go tam wpisać programowo to po prostu nie wiem jak go wywołać dlaczego w takim razie jak go wkleję to jest i się swobodnie przesuwa itd..

kompletnie nie wiem jak to ugryźć :(
Avatar użytkownika
Frani0
Bladawiec
Bladawiec
 
Posty: 48
Dołączył(a): poniedziałek, 25 sierpnia 2008, 18:23
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Cyfrowy Baron » wtorek, 1 wrzeÅ›nia 2009, 09:23

Musisz skorzystać ze zmiennej typu WideString.
Podobny temat związany między innymi z konwersja AnsiString do WideString i na odwrót był już poruszany na tym forum - poszukaj...

Najprościej jednak byłoby się przestawić na środowisko C++ Builder 2009, gdyż tama domyślnie używany jest typ WideString.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Frani0 » czwartek, 3 wrzeÅ›nia 2009, 13:54

Wiem Baronie z tym, że Turbo C++ będę mógł wykorzystywać legalnie komercyjnie a C++ Builder 2009 no cóż 3000 zł co do tego WideString'a czy da się potem wypisać w Label->Caption(który w TC++ ma String) np. chińskie znaki z WideString'a ? czy nie pojawią się kwadraty?

na forum znalazłem tylko 2 tematy z WideString'iem ten i jeszcze jeden o socketach ;) może usunąłeś lub na innym twoim forum ;)
Avatar użytkownika
Frani0
Bladawiec
Bladawiec
 
Posty: 48
Dołączył(a): poniedziałek, 25 sierpnia 2008, 18:23
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Cyfrowy Baron » czwartek, 3 wrzeÅ›nia 2009, 16:45

Właściwość Caption obiektu Label jest typu AnsiString, więc nie pomieści zmiennej typu WideString.
Trzeba stworzyć od podstaw własne obiekty bazujące na WideString lub skorzystać z gotowych komponentów TMS Unicode, np. TUniHTMLLabel gdzie właściwość HTMLText jest typu WIdeString.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Frani0 » czwartek, 3 wrzeÅ›nia 2009, 19:51

Cyfrowy to by było dość dziwne ;) podejrzewam że C++ Builder jest także w chinach i firma CodeGear nie zrobiłaby dla tak wielkiego kraju komponentów? przed wersją 2009?

do tego Font ma atrybut CHARSET i można go ustawić na: CHINESEBIG5_CHARSET a o ile znam tablice Unicode to znaki chińskie są około numer 20 000 czyli już dawno poza ANSI ;)

najlepiej bym zrobił znajdując jakiś windows chiński + builder chiński i wtedy sprawdzić pozostaje tylko problem jak się w tym połapać :)

no nic poszukam jeszcze na innych forach informacji ;) dziękuje za pomoc ;)
Avatar użytkownika
Frani0
Bladawiec
Bladawiec
 
Posty: 48
Dołączył(a): poniedziałek, 25 sierpnia 2008, 18:23
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Cyfrowy Baron » czwartek, 3 wrzeÅ›nia 2009, 22:45

Mam u siebie czcionki które posiadają CHARSET Windows: Japoński. Ustawiłem sobie tą czcionkę w Notatniku wybrałem skrypt Japoński i wstawiłem znaki jakońske, przy próbie zapisu do pliku z kodowaniem ANSI otrzymałem komunikat, że tekst zawiera znaki Unicode i zostaną utracone przy zapisie do ANSI.

do tego Font ma atrybut CHARSET i można go ustawić na: CHINESEBIG5_CHARSET a o ile znam tablice Unicode to znaki chińskie są około numer 20 000 czyli już dawno poza ANSI


Przecież o tym pisałem AnsiSting przechowuje tylko zestaw znaków ANSI, do przechowywania Unicode, czyli zestawu znaków spoza ANSI potrzebna jest zmienna typu AnsiString.

Cyfrowy to by było dość dziwne ;) podejrzewam że C++ Builder jest także w chinach i firma CodeGear nie zrobiłaby dla tak wielkiego kraju komponentów? przed wersją 2009?


Za mocna ugrzązłeś w komponentach. C++ Builder jest tworzony w języku angielskim. Do obsługi unicode dodano do C++ Builder zmienną typu WideString. Gdy czegoś nie ma w środowisku trzeba to sobie stworzyć lub znaleźć gotowe biblioteki, które ktoś inny stworzył do takich celów, a z całą pewnością istnieją takowe biblioteki (np. TMS Unicode) do obsługi znaków Unicode.

A tak wygląda w użyciu komponent TUniHTMLLabel:
tunihtmllabel.jpg
Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Frani0 » czwartek, 3 wrzeÅ›nia 2009, 23:46

Masz w tym dużo racji ;) trzeba specjalnych komponentów ale...

RichEdit1->Text = "{\\rtf1 \\u8240}";
Form1->Caption = RichEdit1->Text;

wklej to i zobacz czy Ci nie wyświetli znaku Unicode nawet w Caption formatki ;) napisz co o tym sądzisz ;) bo wiem że jesteś dobry z programowania a to wyświetla znaki unicode ;)
Avatar użytkownika
Frani0
Bladawiec
Bladawiec
 
Posty: 48
Dołączył(a): poniedziałek, 25 sierpnia 2008, 18:23
PodziÄ™kowaÅ‚ : 0
OtrzymaÅ‚ podziÄ™kowaÅ„: 0
    NieznanyNieznana

Re: Multijęzyczność programu....

Nowy postprzez Cyfrowy Baron » piÄ…tek, 4 wrzeÅ›nia 2009, 13:21

Ta kwestia była już poruszana w poście: http://programowanie.cal.pl/forum/viewtopic.php?f=2&t=129&hilit=WideString
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
PodziÄ™kowaÅ‚ : 12
OtrzymaÅ‚ podziÄ™kowaÅ„: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    NieznanyNieznana


Powrót do Ogólne problemy z programowaniem

Kto przeglÄ…da forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 7 gości