Pos benzeri uygulama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Abrak
Üye
Mesajlar: 189
Kayıt: 18 Kas 2004 05:30

Pos benzeri uygulama

Mesaj gönderen Abrak »

Kod: Tümünü seç

metin := 'Delphi 8 versionu Biliniyor';
pos('i',metin) //burda ilk i harfinin bulunduğu sayıyı veriyor
peki ben ikinci 'i' nin bulunduğu yeri almak istiyorum bunun pos('i',2nciolan,metin) gibi kullanımı veya buna benzer bir komutu varmı acaba delete copy kullanmadan
Teşekkürler
Misafir

Mesaj gönderen Misafir »

Kod: Tümünü seç

var 
s:string;
i,j:integer;

begin
s:='ismail';
i:=0;
j:=0;
repeat
i:=i+1;
if s[i] = 'i' then j:=j+1;
if j = 2 then application.messagebox('2. i yi buldum','Yehho',0+64); // artık kaçıncıyı arıyorsan
until i = length(s);
i:=i+1;
end;
Kullanıcı avatarı
Asri
Kıdemli Üye
Mesajlar: 767
Kayıt: 16 Eyl 2003 09:54
Konum: istanbul

Mesaj gönderen Asri »

Maksat çeşit olsun :)

Kod: Tümünü seç

function buluver(bul:char;metin:string;sira:integer):integer;
var
 i:integer;
begin
 i:=0;
 while pos(bul,metin)>0 do
 begin
    inc(i);if i=sira then break else metin[pos(bul,metin)]:=chr(254);
 end;
 result:=pos(bul,metin);
end;
Kullanımı

Kod: Tümünü seç

   kacinci_harf:=buluver('i','ismail',2)
Öğrenmek ve öğretmek, akıntıya karşı yüzmek gibidir ilerleyemediğiniz taktirde gerilersiniz.
bukentay
Üye
Mesajlar: 44
Kayıt: 16 Şub 2004 07:21

Mesaj gönderen bukentay »

StrUtils unitinin icinde PosEx var
isinizi daha kisaca cozebilir
Pos fonksiyonun aynisi, sadece aramaya hangi siradan basliyacagini belirtiyorsunuz.

PosEx('i',metin,Pos('i',metin)+1)
algorian
Üye
Mesajlar: 20
Kayıt: 24 Kas 2004 10:54

Mesaj gönderen algorian »

Kod: Tümünü seç

function getNthPos(ara : char ; s : string; n : integer; start : integer =1):integer;
var
  temp : integer;
begin
  temp := PosEx(ara,s,start);
  if n = 1 then
    result := temp;
  else if n>1 then
    result := getNthPos(ara,s,n-1,temp)
  else 
    result := 0;
end;
Kullanımı : getNthPos('i','Bir, bir, biribirilerine...',4); // 4. i'yi bulsun...

Not : 4. parametreyi vermene gerek yok.
Abrak
Üye
Mesajlar: 189
Kayıt: 18 Kas 2004 05:30

Mesaj gönderen Abrak »

Teşekkürler arkadaşlar faydalı örnekler oldu konu ile ilgili
Cevapla