???.txt
ide.ne.irj at freemail.hu
ide.ne.irj at freemail.hu
Tue May 24 22:52:57 CEST 2005
Thus spake Andras Tantos:
> Az egyszeru UTF16 tamogatas (surrogate karakterek nelkul) 32-bites
> processzoron nem igenyel lenyeges tobblet CPU eroforrast. A string-ek persze
> dupla akkora helyet fogalalnak, es ezert kicsit tobb lesz a cache-miss, de
> ezek a procik egyebkent se nagyon szeretnek 32-bitesnel kisebb adatokkal
> dolgozni.
A feldolgozasnal majdnem tokmindegy, mert a 32 bites proci beolvassa a
8 bites adatot, utana mar azzal is 32 biteskent dolgozik.
A kisebb procik termeszetesen szivnak.
Viszont a tarolashoz, kommunikaciohoz mindenkeppen jobb a 8 bit.
Egyfajta tomoritesnek is felfoghato, hogy a majdnem mindig konstans
bajtot csak akkor visszuk at, amikor szukseges.
> Azutan ird meg a 'backspace' rutint - tudod, vissza torolni egy karaktert.
> Azutan ird meg az index operatort, amelyik az 'i'-edik karaktert (es nem
> byte-ot) adja vissza. Ha ez is megvan, ird meg a 'compare' fuggvenyt,
> amelyik ket string-et hasonlit ossze egyezoseg szempontjabol (figyelembe
Megirom! Akar ugy, hogy eloszor kikodolom valami unicode szeru formatumba,
es ugy vegzem el a kavarasokat. Semmi problema.
De lassuk be, nem egy eletszeru problema...
Gondolod hogy a vilagon mindenki wordot szeretne irni?
Pl a kavefozobe, vagy egy POS terminalba konstans sztringeket, es %d-t
kell kiirni. Mi a rakert lenne benne unicode, ha akarhany nyelven is tud??
> nem byte) hosszusagu string-et. Ha mindezzel kesz vagy, ird meg azt a
> rutint, amelyik tetszoleges karakterrol egy string-ben (azaz megadott index
> alapjan) megmondja, hogy milyen kodlap tartozik hozza. Vegezetul gondolkodj
:)) Hulyesegek. De mondok egy jobbat!
Nekem a konstans sztringjeimben vannak mindenfele formazokarakterek.
Image beillesztes, uj ablakpozicio beallitasa, cr, lf, home, newxy, kozben
lehet 2 fele betumeretet valasztani.
Szerinted nekem van fuggvenyem, ami egy sztringrol megmondja, hogy ha a
kurzor az (x,y) pozicioban all, az ablak koordinatai x1,y1,x2,y2, akkor a
harmadik karaktere hova fog kerulni a kijelzon? Nincs, minek?
Ugyanaz a problema. Nem tudom, nem is erdekel!
Nincs egyetlen nyelvben, egyetlen megoldasban sem, es ha unicodet
hasznalnek, akkor sem tudnam megmondani. Csak ugy, hogy a sztring elejerol
szepen elkezdem egyenkent vizsgalni a karaktereket, ugyanugy, mint ha ki
is akarnam irni oket, es amikor eljutok a kerdeses karakterhez, akkor
nezem meg hogy hol is vagyunk. Mashogy nem is lehet.
Ez pedig ugyanannyi, vagy kevesebb (!) overheaddel megy, mint az
unicode eseten.
Tudom, most az unicode becsulete a tet, de azert ilyen hulyesegekkel
nem kene probalkozni...
> el ket string osszefuzesen, string-ek szetvagasan (kodlaphelyesen,
> termeszetesen, tehat a masodik string elejere be kell esetleg szurni egy
> escape szekvenciat), egy string kozepebe valo beszurason, vagy mondjuk a
> sub-string keresesen (megintcsak kodlap helyesen termeszetesen).
Nekem 3 sztringmuveletem van:
RawDoFmt: kb mint a sprintf, de mindig ugyanabbol a bufferbol veszi az
adatokat, es a formazott szoveg is egy fix bufferbe kerul
zprint: Z pointer altal cimzett flash teruletrol ir ki formazas nelkul a
kijelzore, de a vezerlokaraktereket kezeli
bprint: a formazo bufferbol ir ki
Mi egyeb kell egy tobbnyelvu GUI-val kommunikalo eszkozhoz?
A beszuro, kereso, stb.. fuggvenyek nem tudom mihez kellenek, ehhez pont
nem. Mondjuk ha forditoprogramot irnek, vagy ilyesmi, akkor talan...
Szoval probalkozz egy eletszerubb peldaval!!
> Miutan ezzel is kesz vagy, forditsd a figyelmed a fentebb emlegetett
> allokalo rutinra: leven itt kenytelen vagy worst-case szamolni (hiszen meg
> nem tudod, hogy a user mit fog beirni, akar minden karakter utan kodlapot
> kellhet valtanod) ezert a foglalt memoria tobb mint ketszer akkora lesz,
> mint egy sima ASCII string-hez kellene.
Miert irna be az user barmit is??????
Miert engednem meg, hogy minden karakter utan kodlapot valthasson???
Talan tobbfajta nyelven van a neve, vagy mi?
Tudod, kavefozo, jegykiado automata, munkaido nyilvantarto, riaszto,
mikrosuto, POS, stb... Vagy EKG, vagy barmi egyeb.
Tovabba: nem ketszer akkora lehet, hanem akar 4x. ESC, kodlap valtas,
kodlap, karakter. Na es? Worst case jo sok helyet foglal, altalaban
viszont fele annyit mint az unicode.
> Osszefoglalva, sem CPU eroforrasban, sem memoriafoglalasban nem nyertel,
> legfelejebb a forraskodban beegetett statikus string-eknel.
:) :) :) :)
Ez attol fugg, hogy mi a feladat. Ha jol elbujtatok valami sztringet,
utana azt keresgeltetem, beszurom meg ilyesmi, akkor igen.
Nekem meg soha egyetlen egyszer sem kellett meghivni ezeket a fuggvenyeket,
minek? Tudnal mondani egy eletszeru peldat ra?
> Pedig megigertem, hogy nem szolok bele tobbet... :(
Ertelmes dolgot nyugodtan, de ez a leveled kifejezetten csalodast okozott.
> Tantos Andras
--
Valenta Ferenc <vf at elte.hu> Visit me at http://ludens.elte.h u/~vf/
"A vallas olyan lenne a Satan nelkul, mint a Dallas Jockey nelkul"
More information about the Elektro
mailing list