Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 2.286 pregleda

Najnovija ↓

Problem sa printanjem karaktera 21.01.2011. u 13:42 · pre 192 meseca #1
Moja aplikacija treba da štampa latinicna slova na jednom uredjaju. U pitanju je POS sistem.

Imam veliki problem sa Šš i Žž slovima. Ostala slova sam riješio tako da parsiram tekst za stampu sa sljedecim vrijednostima:

è-č
æ-ć
ð-đ
È-Č
Æ-Ć

Na dosta mjesta na internetu se spominje da saljem Žž i Šš i trebalo bi da se stampaju bez problema. Ali u mom slucaju ne radi.

Koristim dll koji komunicira sa uredjajem. Nazalost nemam dokumentaciju dll-a.


Da li postoji neki char koji saljem umjesto Šš i Žž?


Hvala
Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: Problem sa printanjem karaktera 21.01.2011. u 14:27 · pre 192 meseca #2
ŠšŽž su na istim kodovima i u 1250 i u 1252, zato su ti i rekli da to radi (i radi). Mozda ti je neki problem u konverziji stringova, mada bi i iz unicode-a u bilo kom encodingu morali da se mapiraju na ove kodove.

Probaj da posaljes karaktere kao kodove 0x8A, 0x9A, 0x8E, 0x9E?




Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Re: Problem sa printanjem karaktera 22.01.2011. u 14:23 · pre 192 meseca #3
Znači ti njemu pošalješ "è" a on odštampa "č"? Ako sam te dobro razumeo onda napravi rainbow i vidi šta dobiješ:

for i = 14 to 254
print( i + ": " + ansichar(i))

trebalo bi da dobijes nešto kao:
...
65: A
66: B
...

Potraži onda samo kod za Š i Ž


Potpis
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
Re: Problem sa printanjem karaktera 24.01.2011. u 10:22 · pre 191 mesec #4
Borise to je bila odlicna ideja. Tako sam i uradio i dobio sam brojni ekvivalent nasih karaktera.

Evo koda



"Rainbow za karaktere od 80 --300"
Code:
 
for (char c = (char)80; c <= (char)300; ++c)
            {
                 
                textBox24.Text += Convert.ToInt32( c) + "-->" + Convert.ToString(c) + " \r\n";

                //ZA SVAKI KARAKTER ISPISI I BROJNI EKVIVALENT DAKLE:
                //  180 --> KARAKTER OVDJE
                //  181 --> KARAKTER OVDJE
                //  182 --> KARAKTER OVDJE
            }







Ovaj kod ispisuje karakter koji ja zadam. Ukucam broj i on ispise karakter.
Code:


            string stosekrijes = "";
            int vrijednost = Convert.ToInt32(textBox26.Text);  //unos broja karaktera preko textboxa
            textBox_Parser.Text = Convert.ToString((char)vrijednost); // stavi taj karakter u textbox
            stosekrijes = Convert.ToString((char)vrijednost); // stavi karakter u string



Sad sam naletio na nevidljive karaktere.

Kad otkucam 138, uredjaj stampa Š.

Ako zelim da vidim koja je graficka reprezentacija char(138) ne polazi mi za rukom.

U aplikaciji mi stoji ako nadjes č, zamijeni ga sa è... i tako dalje. Mislio sam da isto uradim i za ŠŠ i Žž. Ali nikako ne mogu da "ufatim" koji je karakter u pitanju... zasto?

Problem sam rijesio tako da direktno prosljedjujem char(138) u aplikaciju. Ali opet me zanima kako da su ti karakteri nevidljivi? Na koji god nacin da probam da nadjem sta je to uvijek je prazno (BP na string, BP na char...) nema sta nisam radio.


Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: Problem sa printanjem karaktera 24.01.2011. u 10:49 · pre 191 mesec #5
Pa .Net radi sa unicode (UTF-16 i interno UTF-8 ), ovaj tvoj API za stampac ocigledno prima ANSI.

"Š", odnosno decimalno 138 je 0x8A u ANSI 1250 i 1252, baš kao što ti je mmix napisao, ja sam ti samo dao predlog kako da ih nadješ ako uredjaj koristi negu egzotičnu OEM tabelu na kakve sam naletao. ;)

Edit: Ubuduce je najbolje da koristis Encoding klasu i i sa njom iskonvertujes Unicode tekst u stagod (ANSI1252 u tvom slucaju), zatim rezultat (byte[]) direktno saljes na stampac
Potpis
if it walks like a duck and quacks like a duck, it could be a dragon doing a duck
impersonation.
Re: Problem sa printanjem karaktera 24.01.2011. u 10:51 · pre 191 mesec #6
Gde pokusavas da viis graficku reprezentiacju? Konzola? KOnzola prikazuje samo ascii.

138 je 8A, 8A je Š i u easter europe i u western, dakle mora da ti stampa Š kao Š. AKo ne stampa onda imas neki problem u konverziji stringa iz .net unicode-a u ansi, da ne konvertujes u single byte string koristeci neki treci encoding?
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme