döngü içerisinde ilk şartı yi bulana kadar devam et

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

döngü içerisinde ilk şartı yi bulana kadar devam et

Mesaj gönderen delphist »

S.a. Arkadaşlar çok uğraştım ama beceremediğim bir olay var.

Kod: Tümünü seç

1	AY-10172            	0	.00000000	M
2	AY-10172-00001      	1	1.00000000	B
3	024-02009-12        	2	1.00000000	B
4	023-01011-11        	2	1.00000000	B
5	035-0300-01         	2	1.00000000	B
6	A01-0715-00001      	2	1.00000000	B
7	034-40040-01        	3	1.00000000	B
8	024-03022-13        	3	1.00000000	B
9	028-20240-03        	3	1.00000000	B
10	022-10420-02        	3	1.00000000	B
11	026-10150-01        	3	1.00000000	B
12	032-40030           	3	1.00000000	B
13	027-10300-03        	3	1.00000000	B
14	021-2030-05         	3	1.00000000	B
15	MF3024-0093-01      	3	1.00000000	B
16	OPR006              	4	1.00000000	O
17	OPR016              	4	1.00000000	O
18	OPR017              	4	1.00000000	O
19	MF3024-0093         	4	1.00000000	B
20	021-2030-04         	3	1.00000000	B
21	BA30-01039-01       	3	1.00000000	B
22	OPR005              	4	1.00000000	O
23	OPR007              	4	1.00000000	O
24	OPR006              	4	1.00000000	O
25	OPR004              	4	1.00000000	O
26	BA30-01039-01-003   	4	1.00000000	B
27	OPR003              	5	1.00000000	O
28	OPR002              	5	1.00000000	O
29	OPR001              	5	1.00000000	O
30	BA30-01039          	5	1.00000000	B
31	A21-0076-00001      	2	1.00000000	B
32	031-1225-0201       	3	1.00000000	B
33	034-40040-01        	3	1.00000000	B
34	024-03022-13        	3	1.00000000	B
35	028-20240-03        	3	1.00000000	B
36	022-10420-02        	3	1.00000000	B
37	026-10150-01        	3	1.00000000	B
38	032-40030           	3	1.00000000	B
39	027-10300-03        	3	1.00000000	B
40	021-2030-05         	3	1.00000000	B
41	MF3024-0093-01      	3	1.00000000	B
42	OPR006              	4	1.00000000	O
43	OPR016              	4	1.00000000	O
44	OPR017              	4	1.00000000	O
45	MF3024-0093         	4	1.00000000	B
46	021-2030-04         	3	1.00000000	B
47	YP99-0063           	3	1.00000000	B
48	OPR010              	4	1.00000000	O
49	OPR031              	4	1.00000000	O
50	OPR018              	4	1.00000000	O
51	OPR065              	4	1.00000000	O
52	BR30-09103-01       	4	1.00000000	B
53	OPR044              	5	1.00000000	O
54	OPR011              	5	1.00000000	O
55	HB1-030-0226-110    	5	.88100000	B
56	BA30-01039-06       	4	1.00000000	B
57	OPR015              	5	1.00000000	O
58	OPR013              	5	1.00000000	O
59	OPR004              	5	1.00000000	O
60	BA30-01039-01-003   	5	1.00000000	B
61	OPR003              	6	1.00000000	O
62	OPR002              	6	1.00000000	O
63	OPR001              	6	1.00000000	O
64	BA30-01039          	6	1.00000000	B
Kayıtlar Bu şekilde 63 id nolu kayıt aşağıdan gelirken ilk O tipindeki kayıt onun üstünde ilk B harfli olan kaydı bulmak istiyorum fakat bu olayı beceremedim yardımlarınızı bekliyorum. Teşekkürler. Yani Eğer O gelirse üstünde ilk B yi bulmam gerekiyor her seferinde...
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

bu listenin bi kopyasını daha oluştur ve iç içe iki döngü kullan.

birinci döngü listeyi baştan aşağı tarasın
içteki döngüde listede bulduğun O dan sonra ilk B yi bulana kadar geri gitsin.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
delphist
Üye
Mesajlar: 595
Kayıt: 05 Oca 2005 04:34

Mesaj gönderen delphist »

S.a. hocam ben o şartı veremedim düşünemedim zaten...Biraz balık tutmama olacak ama çok denedim...inanki olmadı
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Kayıtlar tabloda ise tabloyu tersten select * from tablo order by desc ile çekip iki değişken kullanacaksın;

Kod: Tümünü seç

Tablo1.First; // son kayıta gidiyor..
Onceki := False;
while not Tablo1.EOF do
begin
  if Onceki and (Tur = Aranan) then // Aranan := 'B'
    Break; // döngüden çık.
  Onceki := (Tur = OncekiTur); // 'O'
  Tablo1.Next;
end;
ShowMessage('Bulunan ID: ' + Tablo1ID.AsString);
gibi bir şey olacak..
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bunu SQL ile de alabilirsin. Ancak şartın ne olduğunu tam kavrayamadım.
Cevapla