sort - serazeni textu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Únor 24 15:50:21 CET 2013


On Fri, 22 Feb 2013, Petr Simek wrote:

> Neni mi ale jasne jak muze ceske trideni zpusobit ze da mezi dvojtecky
> nulu a jednicku .

V českém locale je třídění několikaprůchodové a dvojtečky a mezery (a
další znaky, které nejsou alfanumerické) jsou v prvním průchodu
ignorovány. Tj.

   dvoraj28:   dvorak na cacaca.cz
   dvorak:   0000dvorak na m425.duj.cz
   dvorak00:   karara na dadada.cz
   dvorak17:   dertgd na gafga.com
   dvorak:   dvorak na cc.duj.cz
   dvorakp:   dvorakp na brov.duj.cz

je v prvním průchodu posuzováno, jako by tam byly následující texty:

   dvoraj28dvorakcacacacz
   dvorak0000dvorakm425dujcz
   dvorak00kararadadadacz
   dvorak17dertgdgafgacom
   dvorakdvorakccdujcz
   dvorakpdvorakpbrovdujcz

Akorát že je to špatně, protože to porušuje pravidlo, že základní 
jednotkou třídění je slovo.

Nejste první, kdo na to narazil:
<http://www.linux.cz/pipermail/linux/2010-April/267724.html>

Možná, že se tím někdo snažil obejít problém s tím, že by se víc mezer za
sebou mělo řadit stejně jako jediná mezera, ale připadá mi, že by asi
vznikl menší zmatek, kdyby se mezery (a jiné bílé znaky a interpunkce) 
braly do úvahy už v prvním průchodu, ale výsledky se lišily podle počtu
znaků.

Jinak není bez zajímavosti, že drtivou většinu zdrojáku locale cs_CZ 
v Glibc zabírá třídění a celý zdroják je patří mezi nejoobjemnější
mezi všemi, které v Glibc jsou.

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /



Další informace o konferenci Linux