for m:=0 to n-1 do
begin
x:=tlist3.Strings[m];
x2:=tlist3.Strings[m+1];
if x<>x2 then tlist4.add(x) else tlist5.add(x);
end;
---
dongunun n-1 inci kez işlendiği sırada
"x2:=tlist3.Strings[m+1]" satırı hata vermez mi sence?!?
---
alıntıdır:
for m:=0 to n-1 do // ya da n-2 ye kadar ... (başka bir çözüm)
begin
if m < n-1 then // n-1 inci defayı yapmaya gerek yok çünkü karşılaştırılacak bir sonraki kayı yok
begin
x:=ListBox1.Items.Strings[m];
x2:=ListBox1.Items.Strings[m+1];
if x<>x2 then ListBox2.Items.add(x) else ListBox3.items.add(x);
end;
end
cevab:
sanırım önceki yazdığım kodu tam olarakinceleme fırsatınız olmadı diye düşünüyorum..
"dongunun n-1inci kez işlendiği sırada
[m+1] satırı neden hata versin ? bunu anlayamadım açıkçası"
n-1 inci kez işletiyorum ki böylece sondan birönceki veri ile en son veriyi de
kıyaslamış olabiliyorum. n'nin normal değeri zaten programda daha önce "n-1" olarak
atamıştım. dolayısıyla şimdi de senin yapmış olduğun gibi "n-1-1= n-2" ye kadar oluyor..
aşağıda yazmış olduğunuz satır programınızı yavaşlatacaktır..
ve gereksiz bir koşul..
bu yüzden n-1-1 daha n-2 yapıyor zaten. bi daha bi daha kontrol ettirmeye gerek yok..
bu kontroller milisaniye bazında da olsa biriktiklerinde 1-2 sn fark geçiktirirler..
"
if m < n-1 then // n-1 inci defayı yapmaya gerek yok çünkü karşılaştırılacak bir sonraki kayı yok
"
sanırım sen benim neden n-1 olarak kullandığımı göremedin ve bana tekrar aynı mantığı göstermeye anlatmaya çalışmışsın
ilgin için teşekkürler.
listbox1.items.add satırını da pek fazla kullanmamanı tavsiye ederim.. benim yazdığım
programlarda bu tür ibareler programın şişmesine ve takılmasına neden oluyor
( application.progressmessages kullanılsa dahi! )
bu yüzden sana tavsiyem bir listedeki verileri listbox'a "add" yapacak isen bunları
benim yaptığım gibi Tstringliste ataman ve daha sonra "assign" ile yerleştirmen
son derece hızlı ve esnek..
ayrıca bir ricam daha olacak, lütfen soru tekrarlarıyla burayı şişirmeyelim
sormak istediğiniz soruyu 2 kayıtta sormuşsunuz, tek kayıda da indirgeyebilirdiniz :)
zaten herhangi bir iddiaya filan girmişliğim yok, girmem de, ama benim yazdığım kodu
tekrar bana geri göndermen biraz tuhafıma gitti..
eh ne diyelim.. boynuz kulağı geçer, ama tecrübe hepsini geçer :]
(n-2 meselesi)
çalışmalarınızda kolay gelsin,
saygılarımla_
neoturk - [ xxnt03@lycos.co.uk ]