Bir stringdeki belirtilen karakterler arasını alma

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
baypipox
Üye
Mesajlar: 122
Kayıt: 16 Eki 2006 04:23
İletişim:

Bir stringdeki belirtilen karakterler arasını alma

Mesaj gönderen baypipox »

Merhaba arkadaşlar kendi yaptığım bir fonksiyonu sizlerle paylaşmak istiyorum..
Ne işe yarar?
diyelimki aşağıdaki gibi bir string'iiz olsun.
metin:='OP||324324324|||||DELPHI^TURKIYE||'; gibi

foncsiyon ile delphi kısmını almak için;
karakterarsi(metin,'|','^',7,1); yaptığınızda size DELPHI çıktısını verecektir.

türkiye kısmını almak için;
karakterarsi(metin,'^','|',1,8); yaptığınızda size TURKIYE çıktısını verecektir.

stringdeki 324324324 sayıyı almak için;
karakterarsi(metin,'|','|',2,3); gibi

fonksiyondaki değişkenler şu şekilde;
metin= göndereceğimiz string.
k1= ilk karakter
k2= ikinci karakter
p1= ilk karakterin stringde sırası
p2= ikinci karakterin stringdeki sırası

Fonksiyonun belirli bir protokolde haberleşen programlarınızda mutlaka işinize yarıyacaktır..

Kod: Tümünü seç

function TForm1.karakterarasi(metin, k1, k2: String; p1: Integer; p2: integer): string;
var
  mtnuzlk:Integer;
  i,j:Integer;
  s1:String;
  liste1,liste2:TStringList;
  basla,bitir:Integer;
begin
     liste1:=TStringList.Create;
     liste2:=TStringList.Create;
     mtnuzlk:=(Length(metin));

     for i:=1 to mtnuzlk do
     begin
      if k1=Copy(metin,i,1) then
        begin
          liste1.Add(IntToStr(i));
        end;
     end;

     for j:=1 to mtnuzlk do
     begin
      if k2=Copy(metin,j,1) then
        begin
          liste2.Add(IntToStr(j));
        end;
     end;

     basla:=StrToInt(liste1[p1-1]);
     bitir:=StrToInt(liste2[p2-1]);
     s1:=Copy(metin,basla+1,bitir-basla-1);
     liste1.Free;
     liste2.Free;
     ShowMessage(s1);
end;
Cevapla