Richeditteki Stringleri karakter sayısına göre sıralama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

Richeditteki Stringleri karakter sayısına göre sıralama

Mesaj gönderen BLuE_ALoNE »

merhaba aarkadaşlar dün bir arkadaşın vasıtasıyla bilgisayar programcılığında okuyan iki öğrenci yanıma geldi. delphi den okul bitirme projesi almışlar. ben basit bir stok veya cari takip istenmiştir diye düşünmüştüm ama hoca çok farklı birşey istemiş. bunu yapıp götüremezler ise bir dönem daha okulları uzayacak pazartesi teslim etmeleri gerekiyormuş. yani hayata bir yıl geriden başlayacaklar...
lütfen yardımcı olun konuyu aşağıya yazıyorum.

1- richedite text bir dosya çağrılacak mesala burada şehir isimleri olsun.
Ankara, Adıyaman, Manisa, Kahramanmaraş... buradaki satırları A dan Z ye değilde her stringin daha doğru her satırdaki stringin uzunluğuna göre küçükten büyüğe sıralasın yani sıralama Ankara,Manisa,Adıyaman,Kahramanmaraş gibi olacak,
delphinin threads demosunda QuickSort var onu inceledim ama kendim için uyarlayamadım. hoca çok hızlı bir sıralama yapmasını istemiş. yani bu satırdaki stringlerin uzunluklarını ve satır numaraları bir dizi değişkene atıp sonra uzunluğa göre richedit1.lines.ExChnage(satirno,uzunluk) gibi bir sıralama yapmak gerekiyor. ama hızlı bir şekilde olacak. QuickSort u bu şekilde uyarlamak lazım bu birisine verilen proje diğeri ise

2- bir 16 bitlik color paleti olacak şu paintin renk paleti gibi (öğrenci 12 bitlik dedi ama bilmiyorum varmı öyle birşey) fare ile üzerine tıklayınca yandaki bir kare de o rengi gösterecek aynen paintin özel renk tanımlama paleti gibi bir şey

şimdiden çok çok teşekkür ediyorum. allah razı olsun hepinizden...
En son BLuE_ALoNE tarafından 10 Haz 2007 02:18 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Lütfen başlığınızı açıklayıcı bir konu mesajı ile değiştirin. Forum kurallarını da lütfen okuyun. Değiştirmemeniz halinde mesajınızı kilitlemek zorunda kalacağım.
palandoken
Üye
Mesajlar: 151
Kayıt: 16 Eki 2006 10:43
Konum: ERZURUM

Mesaj gönderen palandoken »

Merhaba,
Ben 1. soruna cevap vereyim.
Form üzerine 1 tane buton ve 1 tane RichEdit koy ve Butonun OnClick'ine şu kodu yaz.

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
Var
  i,say,no,deger :integer ;
// string tipli dinamik dizi:
   Kayitlar: array of string;
begin
   say := RichEdit1.Lines.Count ;
   SetLength(Kayitlar, Say);
   repeat
      deger := Length(RichEdit1.Lines.Strings[0]) ;
      for i := 0 to RichEdit1.Lines.Count-1 do
         begin
            no := Length(RichEdit1.Lines.Strings[i+1]) ;
            if deger < no then
               deger := no ;
         end ;

      for i := 0 to RichEdit1.Lines.Count-1 do
         begin
            if Length(RichEdit1.Lines.Strings[i]) = Deger then
               begin
                  Kayitlar[say-RichEdit1.Lines.Count] := RichEdit1.Lines.Strings[i] ;
                  RichEdit1.Lines.Delete(i);
                  Break ;
               end ;
         end ;
   until RichEdit1.Lines.Count = 0 ;
   RichEdit1.Lines.Clear ;
   for i := say-1 downto 0 do
      RichEdit1.Lines.Add(Kayitlar[i]) ;
end;
Sonra RichEdit'in içine birkaç satır yazıp butonu tıkla.

Yukarıdaki kod küçükten büyüğe sıralar.Büyükten küçüğe sıralamak için en sondaki

Kod: Tümünü seç

   for i := say-1 downto 0 do
      RichEdit1.Lines.Add(Kayitlar[i]) ;
kodunu

Kod: Tümünü seç

   for i := 0 to say-1 do
      RichEdit1.Lines.Add(Kayitlar[i]) ;
olarak değiştir.

Kolay gelsin...
akıllanma , aklını başına toplama , toparlanma , kendisini derleme bu dünyaya ait bir vazife.
ahirette nasıl olsa aklın başına gelecek.
BLuE_ALoNE
Üye
Mesajlar: 47
Kayıt: 26 Eki 2006 08:30

teşekkür ederim

Mesaj gönderen BLuE_ALoNE »

palandoken nickli arkadaşım yardımın için teşekkür ederim yardımlarından dolayı...
Cevapla