ders ekle!
Profili Göster

Actionscrtipt 3.0 Türkçe A-Z a-z Sort

Aytekin Meral Tarih: 13/06/2011 Yorum: 2 adet

Okunma : 2189 Tutanlar: Bu yazıyı 1 kişi tuttu.

Selamlar, belki daha optimize edilebilir ama şimdilik böyle. daha iyi bir fikri olan paylaşırsa güncelleyebiliriz.

package com.aytekinmeral.utils 
{
    /**
     * ...
     * @author Aytekin Meral
     */
    public class TurkishSort 
    {


        public static function turkishSort(temp:Array):Array
        {

            var len:int = temp.length;

            for (var i:int = 0; i<len; i++)
            {
                switch(String(temp[i]).charAt(0))
                {
                    case "Ş":
                        temp[i] = "SZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "Ğ":
                        temp[i] = "GZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "Ç":
                        temp[i] = "CZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "İ":
                        temp[i] = "IZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "Ö":
                        temp[i] = "OZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "Ü":
                        temp[i] = "UZ|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ş":
                        temp[i] = "sz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ğ":
                        temp[i] = "gz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ç":
                        temp[i] = "cz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ı":
                        temp[i] = "hz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ö":
                        temp[i] = "oz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                    case "ü":
                        temp[i] = "uz|"+String(temp[i]).substring(1, String(temp[i]).length);
                    break;

                }
            }
            temp.sort(Array.CASEINSENSITIVE);

            for (i = 0; i<len; i++)
            {
                temp[i] = temp[i].split("SZ|").join("Ş");
                temp[i] = temp[i].split("GZ|").join("Ğ");
                temp[i] = temp[i].split("CZ|").join("Ç");
                temp[i] = temp[i].split("IZ|").join("İ");
                temp[i] = temp[i].split("OZ|").join("Ö");
                temp[i] = temp[i].split("UZ|").join("Ü");

                temp[i] = temp[i].split("sz|").join("ş");
                temp[i] = temp[i].split("gz|").join("ğ");
                temp[i] = temp[i].split("cz|").join("ç");
                temp[i] = temp[i].split("hz|").join("ı");
                temp[i] = temp[i].split("oz|").join("ö");
                temp[i] = temp[i].split("uz|").join("ü");
            }

            return  temp;

        }


        public static function turkishSortOn(temp:Array, value:String):Array
        {

            var len:int = temp.length;

            for (var i:int = 0; i<len; i++)
            {
                switch(String(temp[i][value]).charAt(0))
                {
                    case "Ş":
                        temp[i][value] = "SZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "Ğ":
                        temp[i][value] = "GZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "Ç":
                        temp[i][value] = "CZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "İ":
                        temp[i][value] = "IZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "Ö":
                        temp[i][value] = "OZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "Ü":
                        temp[i][value] = "UZ|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ş":
                        temp[i][value] = "sz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ğ":
                        temp[i][value] = "gz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ç":
                        temp[i][value] = "cz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ı":
                        temp[i][value] = "hz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ö":
                        temp[i][value] = "oz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                    case "ü":
                        temp[i][value] = "uz|"+String(temp[i][value]).substring(1, String(temp[i][value]).length);
                    break;

                }
            }

            temp.sortOn(value, Array.CASEINSENSITIVE);

            for (i = 0; i<len; i++)
            {
                temp[i][value] = temp[i][value].split("SZ|").join("Ş");
                temp[i][value] = temp[i][value].split("GZ|").join("Ğ");
                temp[i][value] = temp[i][value].split("CZ|").join("Ç");
                temp[i][value] = temp[i][value].split("IZ|").join("İ");
                temp[i][value] = temp[i][value].split("OZ|").join("Ö");
                temp[i][value] = temp[i][value].split("UZ|").join("Ü");

                temp[i][value] = temp[i][value].split("sz|").join("ş");
                temp[i][value] = temp[i][value].split("gz|").join("ğ");
                temp[i][value] = temp[i][value].split("cz|").join("ç");
                temp[i][value] = temp[i][value].split("hz|").join("ı");
                temp[i][value] = temp[i][value].split("oz|").join("ö");
                temp[i][value] = temp[i][value].split("uz|").join("ü");
            }

            return  temp;

        }


    }

}

.

aç-kapa İçeriğin rss beslemesi kullanımda değil Yorumlar

Profili Göster
emrah atılkan 18/06/2011

nasıl çalıştığını kısaca açıklaman güzel olurdu, hiç yorum satırı da eklenmemiş. mesela "sz" ile başlıyan bir kelime olsa burda hata vermez miydi?

Profili Göster
Aytekin Meral 19/06/2011

Emrah Atılgan, Haklısın biraz aceleyle koydum buraya, o yüzden kullanımını ekleyemedim. Kullanımı aşağıda mevcut. sz ile başlayan kelime olsa hata vermez, çünkü ben "sz|" arıyorum. belki daha kuvvetli olması için sz|-? gibi olanaksız stringler kullanılabilir. ama zaten bunlar genelde özel isimlerde kullanılan fonskiyonlar olduğu için, bu yeterli olacaktır.


//kullanım
import com.aytekinmeral.utils.TurkishSort;

var myArr:Array = [Şanlıurfa, Mersin, İstanbul, Çankırı, Üsküdar, Sivas, Çanakkale];
var arr:Array = TurkishSort.turkishSort(myArr);
trace(arr);


//object içeren arraylar için
var myArr:Array = [{name:Şanlıurfa, code:1}, {name:Samsun, code:2}];
var arr:Array = TurkishSort.turkishSortOn(myArr);
trace(arr[0].name, arr[1].name);

yeni üyelik | şifremi unuttum

üyeler Son Kahramanlar...

stats Kimler Burada? web stats

Son 1 dakika içinde MMIstanbul' da 53 (50 kayıtlı, 3 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:

...

Blog Bölümü Blogevi.com'a Taşınıyor

Selam arkadaşlar MMIstanbul'da , tasarımcı ve programcıların blog yazılarını "feedleyerek" MMIstanbul okurlarını MMIstanbul dışın ...

7.500'üncü üyemiz Cem Koç!

Neler Yapılabilir?

500 Hatası Hakkında!

Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)

coldfusion mysql ubuntu
 
sponsor adobe istanbul