text filtre

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
serkan887
Üye
Mesajlar: 4
Kayıt: 26 Eki 2005 03:46

text filtre

Mesaj gönderen serkan887 »

S.A. arkadaşlar. Forumda arama yaptım ancak aradığımı bulamadım. benim sorum şu elimde listbox var. Buna item ları load yapıyorum. load ettiğim txt nin formatı şu şekilde

asd|fgh||0|||1||||Second|||||Third

şeklinde. ben listbox ta item olarak sadece asd nin görünmesini istiyorum. geri kalan karakterleri başka yerde kullanıyorum.
biraz mantık kurmaya çalıştım ama sanırım yanlış kuruyorum. yardımcı olursanız sevinirim.

denediğim yapı şu şekilde

for i=0 to listbox.itemsayısı

edit1.text := listbox.items.value filtrelip "|" karakterinden sonrasını trim ile kesip başka bir listbox içine item item yazdırmak. tabi kod çalışmadı :D yardımlarınızı bekliyorum. teşekkürler.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
döngünün içindkeki kod şöyle bişey olmalı.

Kod: Tümünü seç

s:=listbox.items[i];
s:=delete(s,pos('|',s),length(s)-s,pos('|',s)));
listbox.items[i]:=s;
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Selam

@aslangeri'nin kodlarını biraz modifiye edelim...ListBox1'de birleşik kodların olduğunu varsayalım. Bunların ilk kesimi aynı yerde bırakılır, ilk '|' ifadesinden itibaren ListBox2 adındaki diğer liste kutusuna aktarılır..

- Uzunluk olarak göreceğin sembolik 99999 rakamını önemseme, daima bundan daha azı var olacağından delphi mevcudun sadece olan kadarını dikkate alır.

Kod: Tümünü seç

Var
  i : Integer;
begin
  ListBox2.Clear;
  For i := 0 to ListBox1.Items.Count-1 do begin
    ListBox2.Items.Add( Copy(ListBox1.Items[i], Pos('|', ListBox1.Items[i])+1, 99999 ) );
    ListBox1.Items[i] := Copy( ListBox1.Items[i], 1, Pos('|', ListBox1.Items[i])-1 );
  end;
end;
Resim
Resim ....Resim
serkan887
Üye
Mesajlar: 4
Kayıt: 26 Eki 2005 03:46

Mesaj gönderen serkan887 »

Çok teşekkür ederim. bende benzer bir kod ile şu şekilde çözmüştüm

procedure TForm1.Button1Click(Sender: TObject);
var
s:string;
i:integer;
begin
i:=KelimeKutusu.Items.Count;
for i:=0 to i-1 do
begin
s:=KelimeKutusu.Items.Strings;
Edit1.Text:=copy (s , 0 ,ansipos('|',s)-1);
ListBox1.Items.Add(edit1.Text);
end;
end;

Yardımlarınız için teşekkürler.
Cevapla