26 March 2008

Cloítear an claochlú ciotach!

Thug Michal léacht thar a bheith suimiúil don Roth ag tús na míosa ar Ionchódú Téacs ar Ríomhairí.

Camchuairt ar na córais éagsúla chun litreacha a chuir in oiriúint do ríomhairí a bhí ann. Is le huimhreacha a bhíonn ríomhairí ag plé dar ndó, agus tá gá le gnás chun uimhir a cheangail le litir airithe.

Léirmheas chuimsitheach a bhí ann ó ré dorcha ASCII na seacht ngiotáin, nuair a b'éigean do Ghaeil slaisíní a úsáid in áit an fada.

Thug sé cuir síos thar a bheith maith ar Unicode, an córas uileghabhálach atá i réim anois. Tá gnéithe ar leith ag baint le Unicode, agus an uaillmhian sa chóras go mbeidh gach carachtar aibítre, agus go deimhin gach glif, sé sin gach cruth faoi leith a thagann ar charachtar, intuairisce sa chóras.

Is de bharr débhrí sna córais reatha a bhíonn ciolar ciot déanta de théacs ar líne go minic. Tuigeann muidne, a bhfuil teanga againn nach leor an aibítir chúng Bhéarla lena scríobh, go maith na deacrachtaí.



Bhí ceist amháin agam nach raibh ar chumas Michal í a fhreagairt ar an bpointe - b'shin conas go díreach a chuirtear litreacha le luach Unicode níos airde ná 255 in iúl san gnás aonbhirt UTF-8.

Ní thógaim air é. Is le réimse teibí ríomhaireachta - bunachair sonraí agus a mhacasamhail a bhíonn Michal ag plé. Ach is rúpálaí giotáin mise. Is maith liom dul síos go leibhéal na n-uimhreacha dénártha san ríomhaire.

Roinnt cúlra. Is le uimhreacha dénártha 1 nó 0, ann nó as, lasc dúnta nó oscailte a phléann ríomhaire.

Giotán an t-aonad is lú.

Ach oibríonn ríomhaire le grúpaí giotáin. Beart an t-aonad is lú atá inseolta de ghnáth. 8 giotáin, ar féidir na luachanna idir 0 agus 28 - 1 a chuir in iúl leis. Baintear feidhm as leathfhocal (16 giotán) agus focal (32 giotáin) agus 64 giotáin chomh maith. Bíonn lucht ceol ag plé le focal 24 giotáin, ach sin scéal do lá eile.

Bhuel, pé scéal é, córas 7 giotáin ab ea ASCII, atá linn fós i bhfolach i Unicode. Tá na carachtar is gá don Sacsbhéarla ionchódaithe sna seacht giotáin úd, sé sin sna huimhreacha idir 0 agus 127 (27 - 1).

Ciallaíonn sin nach mbeadh luach 1 ar an gcéad giotán más "gnáth" carachtar atá i gceist.

Tá tairbhe le baint as an méid is lú giotáin is féidir a úsáid chun sruth téacs a chuir in iúl. Mar sin, baineann UTF-8 feidhm as seo.

Más na litreacha a-z nó A-Z atá i gceist, is leor beart.

Chun litir le luach os cionn 127 a chuir in iúl, caithfear níos mó na beart amháin a úsáid. Ní mór linn na birt san carachtar a chuir in iúl don ríomhaire.

Déantar sin trí an oiread giotáin agus atá birt sa charachtar a chur ar luach a haon, agus ansin náid a chur ag tús an beart birt.

Bíonn brat ar gach beart leantach ansin chun cuir in iúl gur cuid de charachtar "leathan" atá ann - bíonn luach 10 ar an gcéad dá giotáin.

Ríomhtar luach an litir ansin de réir na ngiotáin eile.

mar shampla:
Tá luach 0x101B = 4123 ag c buailte san córas Unicode (Ċ).

Sin 0b0001_0000_0001_1011 san córas dénártha.

Is gá níos mó na beart.

Bheadh an cód seo leanas ann i UTF-8 (is dóigh liom!)

0b1110_0001_10_00_0000_10_01_1011.

Tá na giotáin dearga ann chun an ionchódú a láimhseáil, agus siad na cinn dubha an uimhir fhéin.

i. 0b1110 -> trí bheart san cnuas.
0b10 -> tús birt.

Nach cliste an cleas é?

6 comments:

Anonymous said...

A hAonguis, a chara,

Alt an-shuimiíil ar fad agat ansin. Chaith mé chuid dem' shaol ag plé le huimhreacha dénártha agus an nodaireacht hexadeachúil. Bhí mé im' chláiritheoir ríomhaire le fada. Ach, ní he sin an fáth go bhfuilim ag scríobh anseo. 'Sé mo mhian an cheist seo a chur ort:

Cén fáth a mbaineann tú úsáid as an focal 'cuir' in áiteanna a ba chóir, dar liomsa, an focal 'c(h)ur' a úsáid? Nár chóir an t-ainm briathar a úsáid in áit na briathra in: 'litreacha a chur...', 'Thug sé cur síos...', '... ar féidir na luachanna idir 0 agus 28 - 1 a chur in iúl.', 'chun sruth téacs a chur in iúl.', '...luach os cionn 127 a chur in iúl' agus mar sin de. Ní saineolaí na Gaeilge mé ar chor ar bith, ach, cuireann meancóga beaga mar sin isteach orm agus mé á léamh alt suimiúil,léargasach mar atá agat anseo. Is cáineadh bog é seo ar choir bheag.

Le meas mór,

Proinsias

aonghus said...

Drochnós atá deacair fáil reidh leis, sin an méid. Ním a mhacasamhail i mBéarla freisin - affect in áit effect, abair.

'Sé an chaoi go ním níos mó meancóga má bhím ag iarraidh smaoineamh ar iad a sheachaint.

Kevin Scannell said...

Alt an-deas, a Aonghuis.

Sin é go díreach an leagan ceart UTF-8 ar 0x101B, ach nach bhfuil 0x010A an códphointe atá uait (ar "c-buailte")?

aonghus said...

De réir Open Office (a raibh lámh agatsa ann!) tá U + 0x010A ar ceannlitir C buailte, agus U + 0x101B ar an litir bheag. Chuir mé trína chéile an dá rud áit éigin fán bealach, is léir.

Seans go leasóidh mé é..

Kevin Scannell said...

0x010B atá uait, in ionad 0x101B. Thug mé an botún faoi deara toisc nach bhfuil ach dhá bheart sa leagan UTF-8 de 0x010B agus trí bheart ar 0x101B. Is litir sa bhloc Maenmairise (0x1000-0x109F) é seo.

aonghus said...

Feicim an botún anois.

Breis fianaise do fiúntas Fagan....

Is fearr liom an leagan trí bhirt a fhágáil ann - léiríonn trí bheart an pointe níos túisce ná dhá bheart.

Beidh orm smaoineamh air.