« 新宿鮫 Xがネットで | トップページ | Automatorでの条件分岐 その2 邪道編 »

2010年8月22日 (日)

キリル文字を使う言語の単語をソートするには

どうすれば良いの?という全く未知の領域の質問を知り合いの知り合いのまたその知り合い(いい加減にしろって?)にされました。ということで久々のスクリプトネタです

無知なわたしはPerlはUTF-8がわかるから、それでやったらどう?と言ったのですが、それではダメなんだそうです。これから行くから一緒に見てほしいだなんて。明日からまた旅行だし、折角の週末をゆっくりしようと思っていたのに だいたい日曜の朝8時に電話をかけるなんて非常識だ!なんてお世話になっている人の知り合いに言えるはずもなくしかたなく引き受けました。で、一人で来るのかと思ったら4人も!でもね、かわいいロシア人の娘をつれて来たから喜んで引き受けましょうと先きほどまでの不機嫌はどこかへ消えたデブネコでした。まさかこれが狙いだった?そうだとしたらS匠に入れ知恵されたね。

で、見せてもらったんですが、これ何ということばですか?なにかうどの大木のような名前でした。うどはいいんですけど、きみ、なんで偉そうに新しいMacBook Proをもっているの?思いっきりペタペタと触って手垢つけてあげるからね

で、やっと本題。フムフム。確かにPerlのソートでは彼らの辞書らしきものと同じアルファベット順にはなりませんね。しかしわたしの知識もISO-8859-1とUTF-8に限られているんですが。だって北欧では他に必要ないもんね。実は日本語のことだってよく知らないのに。で、とっさに閃いたのがMS Wordの使用。Wordファイルにテキストをコピーしてソートしたらバッチリ!やったーと思ったのもつかの間。そんなのは前から知っていると言われてしまいました。お見それしました 大量に処理するし、後で色々なファイルに変換するからWordでは不便なんだそうです。

かわいい娘を前にして無知を曝け出しネット検索を始めるわけにもいかず、ない頭で必死に考えましたよん。10分ほどですが で、ない頭の割にはあっさり解決方法が浮かびました〜!キリル文字というから難しく思ってしまいましたが、よ〜くよく考えてみれば彼らが望む順番で文字に番号を割り当ててソートすればいいだけではないですか〜。ソートし終わったら番号を文字に戻せばいいんだし。文字は大小合わせて76文字なんですね(キリル文字って点付きやら点なしやら色々あるんですねえ。知らんかった。勉強になります〜。明日にはもう覚えてないでしょうけど

で、結果はうまくいきました。手順をもう一回まとめますと、まずはキリル文字を全てs/а/01/g 〜 s/я/76/gみたいにソートしたい順番に番号を振り当てて置換します。はあとで数字が混ざらないようにするための適当な区切り文字ですが、Perlのメタ文字と勝ち合わなければなんでもいいです。で、この後ソートして、その後に数字をs/76/я/gみたいにして文字に戻すだけです。もちろんPerlでなくともどのスクリプト言語でもできますが、痴漢は速いにこしたことがありませんからね。あとPerlや他のスクリプト言語でやってもおもしろいんですが、AutomatorでWordを使えば処理は重たくなるけど手順的にはもっとスマートにできそうな気がしますな。そのうち実験してみますか。

と、いうことで慌ただしい朝になってしまいましたが、少しは良いことも。昼食をごちそうしてくれるそうです と、待ち合わせの時間までの暇を持て余すデブネコでした〜♪

« 新宿鮫 Xがネットで | トップページ | Automatorでの条件分岐 その2 邪道編 »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: キリル文字を使う言語の単語をソートするには:

« 新宿鮫 Xがネットで | トップページ | Automatorでの条件分岐 その2 邪道編 »

2019年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

最近のトラックバック