Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

ÖNEMLİ AÇIKLAMA: MUTLAKA OKUYUNUZ!

Gönderen Konu: DELPHİ String Fonksiyonlar  (Okunma sayısı 7558 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
DELPHİ String Fonksiyonlar
« : 17 Şubat 2007 10:15:30 »
                                                      String Fonksiyonlar

AnsiCompareStr(Aranacak_Metin,İçinde_Aranacak);
Birinci parametre ile girilecek olan metni, ikinci parametrede aramak için kullanılan bir fonksiyondur. Şayet ilk parametre ikinci parametrenin içerisinde bulunuyorsa pozitif, bulunmuyorsa negatif, iki metin aynı ise sıfır değeri dönecektir.

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
   Metin, Sonuc : AnsiString;
   Sayi : Integer;
begin
    Metin := ‘Center’;
    Sonuc := ‘Prestige Education Center’;
    Sayi := AnsiCompareStr(Metin , Sonuc); // İçinde varmı
    If Sayi=0 Then Caption := ‘Aynı’ else
    If Sayi>0 Then Caption := ‘İçinde yok’ else
    If Sayi<0 Then Caption := ‘İçinde var’; // Burası işler
end;

Fonksiyonun kullanımında küçük büyük harf kullanımına dikkat etmelisiniz. Aksi takdirde farklı sonuçlar oluşturabilirsiniz.
 

AnsiCompareText(Aranacak_Metin,İçinde_Aranacak);
AnsiCompareStr fonksiyonu ile aynı işi yapar. Yalnız bu fonksiyonun kullanımı küçük-büyük harf duyarlılığına hassas değildir. Yani ali ile ALI nin aynı oldukları kabul edilecektir. (Fonksiyondan geriye sıfır değeri dönecektir)

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
   Metin, Sonuc : AnsiString;
   Sayi : Integer;
begin
    Metin := ‘Prestige’;
    Sonuc := ‘PRESTIGE’;
    Sayi := AnsiCompareText(Metin , Sonuc); // İçinde varmı
    If Sayi=0 Then Caption := ‘Aynı’ else  // Burası işler
    If Sayi>0 Then Caption := ‘İçinde yok’ else
    If Sayi<0 Then Caption := ‘İçinde var’;
end;


AnsiDequotedStr(Metin , Karakter);
İkinci Parametre ile belirtilen karakteri, birinci parametre ile belirtilen metnin ilk harfinde arar. Şayet bulursa ilk ve son karakteri atarak kalan değeri döndürür.

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige’;
    Sonuc := AnsiDequotedStr(Metin , ‘P’);
    Caption := Sonuc; // restig yazar
end;
Fonksiyonda kullanılan parametre değerlerinin küçük büyük harf duyarlılığının bulunduğunu hatırlatıp, diğer fonksiyonları incelemeye devam edeceğim.

 
AnsiLeftStr(Metin , Adet);
Bu fonksiyonu kullanabilmemiz için uses satırına StrUtils kütüphanesini eklememiz gerekir. Bu fonksiyonda birinci parametreyle belirtilen metnin sol tarafından, ikinci parametreyle belirtilen adet kadar karakter sökülüp alınabilir. Fonksiyondan geriye dönecek olan değer AnsiString tipli bir veri içereceği için her hangi bir kontrolde direk yazdırılabilir.

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige’;
    Sonuc := AnsiLeftStr(Metin , 4);
    Caption := Sonuc; // Pres yazar
end;


AnsiLowerCase(Metin);
Parametre değeri ile girilen metnin küçük harfe çevirmek için kullanılan bir fonksiyondur. Şayet parametre içerisinde küçük harflerden oluşan karakterlere rastlarsa onlara dokunmaz.

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘NIHAT DEMIRLI’;
    Sonuc := AnsiLowerCase(Metin); // Küçük harfe çevir
    Caption := Sonuc; // nihat demirli yazar
end;


AnsiMidStr(Metin , Başlangıç , KaçAdet);
Birinci parametre ile belirtilen metinden, ikinci parametredeki karakterden sonra, üçüncü parametre ile belirtilen sayı kadar karakteri söküp alır. Fonksiyondan geriye dönen değer AnsiString tipte bir veri olacağı için kolayca yazdırabilirsiniz. Uses’ e StrUtils eklemeyi unutmayınız.

Kod: [Seç]
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige Education Center’;
    Sonuc := AnsiMidStr(Metin , 2 , 3); // 2. Karakterden sonraki üç karakteri al
    Caption := Sonuc; // res yazar
end;


AnsiPos(Aranacak_Metin , İçinde_Aranan_Metin);
İkinci parametre içerisinde birinci parametreyle girilen değeri arar. Şayet bulursa ilk karakterin kaçıncı karakterde bulunduğunu, bulmazsa da sıfır değerini döndürür.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Aranan : AnsiString;
    Sonuc : Integer;
begin
    Metin := ‘Prestige Education Center’;
    Aranan := ‘Center’;
    Sonuc := AnsiPos(Aranan , Metin);
    If Sonuc<>0 Then Caption := IntToStr(Sonuc); // 20 yazar
end;
 
Şimdi bu fonksiyona güzel bir örnek verelim. Örneğimizde Edit kutusuna girilecek olan dosya adında (uzantısıyla beraber) ”.” karakteri aratılmakta, ardından dosya adı Edit2 ye, uzantısı da Edit3 e yazdırılmaktadır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Dosya, Ad, Uzantı : AnsiString;
    Sonuc : Integer;
begin
    Dosya := Edit1.Text;
    Sonuc := AnsiPos(‘.’ , Dosya); // “.” Kaçıncı karakter.
    Ad := AnsiLeftStr(Dosya , Sonuc-1); // Noktadan öncesi
    Uzantı := AnsiMidStr(Dosya , Sonuc+1 , Length(Dosya)+Sonuc);  // Noktadan sonrasını al
    Edit2.Text := Ad; // Dosya adını yaz
    Edit3.Text := Uzanti;  // Dosyanın uzantısını yaz
end;


AnsiReplaceStr(Metin , Değişecek_Metin , Yeni_Metin);
Birinci parametre ile girilen metin içerisindeki, ikinci parametre ile belirtilen bölümün yerine, üçüncü parametre ile belirtilen metni aktarabilen bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Ne Var’;
    Sonuc := AnsiReplaceStr(Metin , ‘Var’ , ‘Haber’);
    Caption := Sonuc; // Ne Haber yazar
end;


AnsiReplaceText(Metin , Değişecek_Metin , Yeni_Metin);
AnsiReplaceStr ile aynı işi yapar. Aralarında tek fark bu fonksiyonun harf duyarlılığının olmamalısır. Yeni aranan değerin var veya Var olması fonksiyon için fark etmeyecek, metni değiştirecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Ne Var’;
    Sonuc := AnsiReplaceText(Metin , ‘var’ , ‘Haber’);
    Caption := Sonuc; // Ne Haber yazar
end;


AnsiReverseString(Metin);
Parametre ile girilen metin değerini ters çevirere, yeni bir metin oluşturan fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Nihat’;
    Sonuc := AnsiReserveString(Metin);
    Caption := Sonuc; // tahiN yazar
end;

Fonksiyondan geriye dönen değer AnsiString tipte bir içeriğe sahip olduğu için başlıkta dönüştürme yaptırmadan yazdırabilmektir.


AnsiRightStr(Metin , Sağdan_Kaç_Karakter);
Birinci parametre ile girilen metnin sağ tarafından (sonundan), ikinci parametre ile belirtilen sayı kadar karakteri söküp alabilen bir fonksiyondur. Uses’ e StrUtils eklemeyi unutmayalım.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige’;
    Sonuc := AnsiRightStr(Metin , 4);  // Sağdan 4 karakteri al
    Caption := Sonuc; // tige yazar
end;


AnsiUpperCase(Metin);
Parametre ile girilen metni büyük harfle yazdırabilmek için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘nihat demirli’;
    Sonuc := AnsiUpperCase(Metin);  // Büyük harfe çevir
    Caption := Sonuc; // NIHAT DEMIRLI yazar
end;

 
CompareStr(Metin1 , Metin2);
Birinci ve ikinci parametre ile girilen metinlerin eşit olup olmadıklarını kontrol edebilen bir fonksiyondur. İkinci metnin içerisinde birinci metni arar, şayet bulursa negatif, bulmazsa pozitif, ikisi aynı ise sıfır değerini döndürür.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
    Sayi : Integer;
begin
    Metin := ‘Prestige’;
    Sonuc := ‘Prestige Education Center’;
    Sayi := CompareStr(Metin , Sonuc); // İçinde varmı
    If Sayi=0 Then Caption := ‘Aynı’ else
    If Sayi<0 Then Caption := ‘İçinde var’ else // Burası işler
    If Sayi>0 Then Caption := ‘İçinde Yok’;
end;

Fonksiyon büyük küçük harfe hassas bir şekilde çalışmaktadır. Yani ilk parametrenin (metnin) değerini prestige (hepsi küçük) olarak değiştirirseniz, içinde yok kısmı işleyecektir.
 

CompareText(Metin1 , Metin2);
CompareStr fonksiyonu ile aynı işi yapar. Aralarında ki tek fark bu fonksiyonun harf duyarlılığının olmamasıdır.
Fonksiyondan geriye döndürdüğü değer pozitif sayı, negatif sayı veya sıfırdır. Bu değeri basit bir dallanmaya tabii tutarak, ikinci metnin içerisinde birinci metnin (harf duyarlılığı olmadan) var olup olmadığını kolayca öğrenebilirsiniz. CompareStr fonksiyonu ile çalışma mantığı benzeştiği için burada örneklendirme yapmamayı uygun buldum. (Siz isterseniz aynı örneği çözebilirsiniz)
 

Contact(Metin1, Metin2, ……….);
Parametre ile belirtilen değişken değerlerini yan yana yazdırmak için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin1, Metin2, Sonuc : AnsiString;
begin
    Metin1 := ‘Nihat’;
    Metin2 := ‘Demirli’;
    Sonuc := Contact(Metin1 , Metin2); // Yan yana yaz
    Caption := Sonuc; // NihatDemirli yazar
end;

Şayet arada boşluk bırakılması istenirse, o zaman kodu aşağıdaki şekilde değiştirmelisiniz.
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin1, Metin2, Sonuc : AnsiString;
begin
    Metin1 := ‘Nihat’;
    Metin2 := ‘Demirli’;
    Sonuc := Contact(Metin1 , ‘ ’ , Metin2); // Yan yana yaz
    Caption := Sonuc; // NihatDemirli yazar
end;


Copy(Metin1 , İndex, Adet);
Birinci parametre ile girilen metnin içeriğinden, ikinci parametrede belirtilen karakterden sonra, üçüncü parametreyle belirtilen adet kadar karakteri söküp alabilen bir fonksiyondur. Fonksiyondan geriye dönen değer yine bir AnsiString veri olacağı için sonuç herhangi bir tip dönüştürme işlemine gerek kalmadan direk olarak yazdırılabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige Education Center’;
    Sonuc := Copy(Metin , 10 , 9); // 10. Karakterden sonraki 9 karakter
    Caption := Sonuc; // Education yazar
end;


Delete(Metin1 , İndex, Adet);
Birinci parametre ile girilen metnin değerinden, ikinci parametre ile girilen karakterden sonra, üçüncü parametreyle belirtilen sayı kadar karakteri söküp atan bir prosedürdür. Dikkat edeceğiniz husus, yapılan değişikliğin metin isimli parametrenin değerine yansıyacağıdır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
begin
    Metin := ‘Sibel Yanar’;
    Sonuc := Delete(Metin, 1, 5);  // 1. Karakterden sonra 5 karakteri at
    Caption := Sonuc; // Yanar yazar
end;


DupeString(Metin , Adet);
Birinci parametre ile girilen metni, ikinci parametre ile girilen adet kadar yan yana yazmak için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Yüksel İnan’;
    Sonuc := DupeString(Metin, 2); // 2 Kere yan yana yaz
    Caption := Sonuc; // Yüksel İnan Yüksel İnan yazar
end;
 

Insert(Eklenecek_Metin , Metin_Başlangıç_Karakteri);
Birinci parametre ile girilen metni, ikinci parametre ile girilen metre, üçüncü parametre de belirtilen karakterden sonra eklemek için kullanılan bir prosedürdür. Burada dikkat edilmesi gereken husus, yapılan değişikliğin ikinci parametre değerine yansıyacağıdır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin1, Metin2 : AnsiString;
begin
    Metin1 := ‘Prestige Center’;
    Metin2 := ‘Education’;
    Insert(Metin2 , Metin1 , 10); // 10. Karakterden sonra metin2 yi ekle sonucu metin 1 e gönder
    Caption := Metin1; // Prestige EducationCenter yazar
end;


LeftBStr(Metin , Adet);
Birinci parametre ile belirtilen metinden, ikinci parametre ile belirtilen adet kadar karakteri söküp alabilen bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige’;
    Sonuc := LeftBStr(Metin , 3); // İlk 3 karakteri al
    Caption := Sonuc; // Pre yazar
end;

Daha öncede aynı işlemi yapan fonksiyonu göstermiştim. Başında Ansi olan fonksiyon ve prosedürlerin kullanabileceği karakter daha fazladır. Ama tercih tamamen size kalmıştır. İstediğiniz fonksiyonu veya prosedürü kullanabilirsiniz.


Length(Metin);
Parametre ile belirtilen metnin kaç karakterden oluştuğunu hesaplayabilmek için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Uzunluk : Integer;
begin
    Metin := ‘Nihat Demirli’;
    Uzunluk := Length(Metin);
    Caption := IntToStr(Uzunluk); // 13 yazar
end;
 
Fonksiyondan geriye dönen değer tam sayı tipli olacağı için, form başlığına tip dönüştürme fonksiyonu sayesinde yazdırılabilmektedir.


LowerCase(Metin);
AnsiLowerCase (daha önce izah edildi) fonksiyonunun yaptığı işi yapar. (Ansi kütüphanesinin daha zengin olduğunu hatırlatalım) Parametre olarak girilen metni küçük harfe dönüştürmek için kullanılır.
 

MidStr(Metin, Başlangıç, Adet);
Birinci parametre ile belirtilen metinden, ikinci parametre ile girilen başlangıç başlangıç karakterinden başlayarak, üçüncü parametre ile girilen adet kadar karakteri parçalayıp almak için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Gazi Üniversitesi’;
    Sonuc := MidStr(Metin, 2, 6);  // 2. Karakterden sonraki 6 karakter
    Caption := Sonuc; // azi Ün yazar boşlukta bir karakterdir.
end;


Pos(Metin1, Metin2);
Birinci parametre ile girilen değer ile ikinci parametre ile girilen değeri karşılaştırmak için kullanılan bir fonksiyondur. Şayet iki parametre farklı değerler içeriyorsa (içinde bulunmuyor ise) 0 olacaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Sonuc : Integer;
begin
    Metin := ‘Merhaba’;
    Sonuc := Pos(‘Merhabalar’,Metin); // Girilen ile aynımı
    Caption := IntToStr(Sonuc); // 0 yazar
end;


RightStr(Metin, Sağdan_Kaç_Karakter);
Birinci parametre ile belirtilen metnin sonundan, ikinci parametre ile belirtilen adet kadar karakteri söküp almak için kullanılan fonksiyondur. (AnsiRightStr fonksiyonunun yaptığı işi yapar)

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Ayşe Yanar’;
    Sonuc := RightStr(Metin , 5); // Sağdan 5 karakteri al
    Caption := IntToStr(Sonuc); // Yanar yazar
end;


SetLength(Metin, Soldan_Kaç_Karakter);
Birinci parametre ile belirtilen metinden, ikinci parametre ile belirtilen adet kadar karakteri söküp alabilen bir prosedürdür.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
begin
    Metin := ‘Sibel’;
    SetLength(Metin , 4);  // İlk 4 karakteri al
    Caption := Metin; // Sibe yazar
end;


SetString(Metin, Katar, Soldan_Kaç_Karakter);
Birinci parametre ile belirtilen metne, ikinci parametre ile belirtilen katarın, üçüncü parametre ile belirtilen adet kadar karakterini (soldan) aktarabilen bir prosedürdür.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Yaz : PChar; // Katar değişkeni
begin
    Yaz := ‘Sibel’;
    SetString(Metin , Yaz , 2);  // İlk 2 karakteri aktar
    Caption := Metin; // Sibe yazar
end;

 
Str(Sayı , Metin);
Birinci parametre ile girilen sayıyı (ondalıklı veya tam sayı), ikinci parametre ile girilen metne aktarmak için kullanılan bir prosedürdür. İlk parametre parasal tipte bir değişkende olabilir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige’;
    Str(555 , Metin); // Metne aktar
    Caption := Metin; // 555 yazar
end;


StringOfChar(Karakter , Adet);
Birinci parametre ile belirtilen karakteri, ikinci parametre ile belirtilen adet kadar yan yana yazdırmak için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
begin
    Metin := StringOfChar(‘*’ , 10);
    Str(555 , Metin); // Metne aktar
    Caption := Metin; // ********** yazar
end;

Görsel diller çıkmadan önce çok kullanılan (hakikaten işe yarardı) bir fonksiyondu. (Pascal, C vs.) Bilhassa başlık ve paragraf altlarını çizdirmek için kullanılırdı.

Biliyorum hepiniz Edit kutusuna girilen karakteri yan yana yazdırmayı deneyeceksiniz, ama olmayacak. Unutmayınız ki Char tipli değişkenlerde AnsiString tipli veriler aynı değildir. Bu tip durumlarda izleyeceğiniz yol aşağıda ki gibi olmalıdır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Karakter : Array[0..1] Of Char;
begin
    StrCopy(Karakter, PChar(Edit1.Text)); // Editteki karakteri Char tip değişkene al
    Metin := StringOfChar(Karakter[0],10); // Yan yana yaz
    Caption := Metin; // ********** yazar
end;


StringReplace(Metin, Değişecek_Bölüm, Yeni_Bölüm, Seçenek);
Birinci parametre ile verilen metnin içerisinde, ikinci parametre ile verilen kısmı, üçüncü parametre ile verilen içerikle değiştirmek için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
    Secenek : TReplaceFlags;  // Unutmayın
begin
    Secenek := [RfIgnoreCase]; // Küçük büyük harf duyarlılığı yok
    Metin := ‘Senin Çok Paran Var’;
    Sonuc := StringReplace(Metin , ‘çok’ , ‘Az’ , Secenek);  // Çok ile Az ı değiştir
    Caption := Sonuc;  // Senin Az Paran Var yazar
end;

Aynı kodu aşağıdaki şekilde yazarsanız bu durumda küçük büyük harf duyarlılığı gösterecek dolayısı ile sonuçta farklı olacaktır.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
    Secenek : TReplaceFlags;  // Unutmayın
begin
    Secenek := [RfReplaceAll]; // Küçük büyük harf duyarlılığı var
    Metin := ‘Senin Çok Paran Var’;
    Sonuc := StringReplace(Metin , ‘çok’ , ‘Az’ , Secenek);  // Çok ile Az ı değiştir
    Caption := Sonuc;  // Senin Çok Paran Var yazar
end;

Burada kullanılan TReplaceFlags nesnesi küme tipte Delphi tarafından tanımlanmış bir nesnedir. Dilerseniz gösterimini aşağıdaki şekilde de kullanabilirsiniz.

Sonuc := StringReplace(Metin, ‘çok’ , ‘Az’ , [RfReplaceAll]);

Her iki durumda da sonuç aynı olacaktır. [] işareti içerisinde kullanmayı sakın unutmayın.


StuffString(Metin, Başlangıç, Uzunluk, Yeni_Metin);
StringReplace fonksiyonuna benzer iş görmektedir. Aralarında ki fark, değiştirilecek olan kısmın burada karakter sayısı ile belirlenmesidir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Senin Çok Paran Var’;
    Sonuc := StuffString(Metin , 7 , 3 , ‘Az’);  // 7. Karakterden sonra ki üç karakterin yerine Az yaz
    Caption := Sonuc;  // Senin Az Paran Var yazar
end;


Trim(Metin);
Parametre ile girilen metnin sol ve sağındaki tüm boşlukları atmak için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘    Prestige   ‘;
    Sonuc := Trim(Metin);
    Caption := Sonuc;  // Prestige yazar
end;

Bilhassa yanlışlık ile space tuşuna basılması durumunda oluşabilecek olan hataları engellemek amacıyla kullanılan bir fonksiyondur. Bu fonksiyondan dolayı kelimeler arasında bulunan boşluklar hiçbir değişikliğe uğramazlar.
 

TrimLeft(Metin);
Parametre ile girilen metnin sol tarafında bulunan boşlukları atmak için kullanılan bir fonksiyondur. Sağ kısımda bulunan boşluklara dokunmaz.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘    Prestige   ‘;
    Sonuc := TrimLeft(Metin);  // Sol boşlukları at
    Caption := Sonuc;  // Prestige    yazar
end;


TrimRight(Metin);
Parametre ile girilen metnin sağ tarafında bulunan boşlukları atmak için kullanılan bir fonksiyondur. Sol kısımda bulunan boşluklara dokunmaz.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘    Prestige   ‘;
    Sonuc := TrimRight(Metin);  // Sağ boşlukları at
    Caption := Sonuc;  //     Prestige yazar
end;


UpperCase(Metin);
Parametre ile girilen metindeki karakterlerin tamamını büyük harfe çevirmek için kullanılan fonksiyondur. Şayet metnin içerisinde büyük harfe rastlarsa onlara dokunmayacaktır. Daha önce örneklendirildiği için tekrar değinilmeyecektir.
 

WrapText(Metin, İşlem, Alta_İndirilecek_Karakterler, Max_Karakter);
Birinci parametrede belirleyeceğiniz metni, üçüncü parametrede belirleyeceğiniz karakterlerden herhangi bir tanesine rastlaması durumunda alt satıra indirmek için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin, Sonuc : AnsiString;
begin
    Metin := ‘Prestige Education Center‘;
    Sonuc := WrapText(Metin , #13#10, [‘.’ , ‘’ , #9 , ‘-’] , 10);
    Caption := Sonuc;
end;

Komutta da görüldüğü üzere space rastladığında alt satıra kalan karakterleri devam etmektedir.


Chr(Sayi);
Parametre ile girilen ASCII (0-255 arası) değerinin karakter karşılığını bulmak için kullanılan bir fonksiyondur.
Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
begin
    Metin := Chr(65);
    Caption := Metin; // A yazar
end;


Ord(Karakter);
Parametre ile girilen karakterin ASCII değerini hesaplayan bir fonksiyondur. Fonksiyondan tam sayı tipli bir değer döneceği için yazdırmak için IntToStr tip dönüştürme fonksiyonunu kullanmalısınız.

Procedure TForm1.Button1Click(Sender; Object);
begin
    Caption := IntToStr(Ord(Key));
end;


Val(Metin , Değişken , Hata);
Birinci parametreyle girilen içeriğin soldan matematiksel anlamı olan kısmını ikinci parametreye aktarır. Prosedür sayesinde ikinci parametrenin değeri değişecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Deger, Hata : Integer;
begin
    Val(Edit1.Text , Deger , Hata);
    Caption := IntToStr(Deger); // A yazar
end;


StrToInt(Metin);
String içerikli değerleri tam sayıya çevirmek için kullanılan bir fonksiyondur. Sayısal içeriğe çevrilemeyen bir karaktere rastlarsa hata üretecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Deger : Integer;
begin
    Metin : ‘555’;
    Deger := StrToInt(Metin);
    Caption := IntToStr(Deger*2);  // 1110 Yazar
end;


StrToIntDef(Metin);
StrToInt fonksiyonu ile aynı işi yapar. Aralarındaki tek fark şayet sayıya dönüştürülemeyecek bir değer gönderilirse, bu durumda fonksiyon hata üretmemekte, ikinci parametre ile belirtilen değeri işleme sokmaktadır. Farkı anlamanız için aşağıdaki iki örneği dikkatlice inceleyiniz.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Deger : Integer;
begin
    Metin : ‘555A’;
    Deger := StrToIntDef(Metin,0); // Tam sayıya çevir, çevrilemiyor ise değeri 0 yap
    Caption := IntToStr(Deger*2);  // 0 Yazar
end;

Üstteki kodlamada metin değişkeninin içeriğinde A karakteri (sayıya çevrilemez) bulunduğu için, değer isimli değişkenin içeriği ikinci parametre ile girilen 0 değerine eşit olacaktır. Bu aktarmayı StrToInt fonksiyonu ile yaparsanız programınız size hata mesajı vericektir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Deger : Integer;
begin
    Metin : ‘555’;
    Deger := StrToIntDef(Metin,0); // Tam sayıya çevir, çevrilemiyor ise değeri 0 yap
    Caption := IntToStr(Deger*2);  // 1110 Yazar
end;


StrToFloat(Metin);
Parametre ile girilen metni ondalıklı sayıya çevirmek için kullanılan bir fonksiyondur. Ondalıklı sayıya çevrilemeyecek bir karaktere rastlarsa programınız hata mesajı verecektir.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Deger : Real;
begin
    Metin : ‘555,111’;
    Deger := StrToFloat(Metin); // Ondalıklı sayıya çevir
    Caption := FloatToStr(Deger);  // 555.111 Yazar
end;
 

StrToFloatDef(Metin);
Ondalıklı sayıya çevrilemeyen bir karaktere rastlanılması durumunda StrToFloat fonksiyonu hata mesajı veriyordu. Bu fonksiyonla hata mesajını engelleyip varsayılan değerin kullanılmasını sağlayabilirsiniz.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Deger : Real;
begin
    Metin : ‘555A,111’;
    Deger := StrToFloatDef(Metin,0); // Ondalıklı sayıya çevir
    Caption := FloatToStr(Deger*2);  // 0 Yazar
end;

Metin değişkeni içerisinde ondalıklı sayıya çevrilemeyecek karaktere rastladığı için değer isimli değişkenin içeriğini varsayılan (yani 0) kabul ederek işleme devam edecektir.


IntToStr(Sayı);
Parametre olarak girilen tam sayıyı stringe çavirmek için kullanılan fonksiyondur. Bilhassa kullanıcının görmesini istediğiniz içerilikleri stringe çevirmek zorunda kalacaksınız.


FloatToStr(Ondalıklı_Sayı);
Parametre olarak girilen ondalıklı sayıyı string içeriğe çevirmek için kullanılan fonksiyondur. Diğer fonksiyonlarda yeterince uygulama yapıldığı için tekrar örnek verilmeyecektir.


FloatToStrF(Ondalıklı_Sayı, Format, Uzunluk, Ondalıklı_Uzunluk);
Birinci parametre ile girilen ondalıklı sayıyı ikinci parametrede belirtilen formatlı hale dönüştürmek için kullanılan bir fonksiyondur.

Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
    Sayi : Extended;
begin
    Sayi := StrToFloat(Edit1.Text);
    Metin := FloatToStrF(Sayi, ffCurrency, Length(Edit1.Text), 2);
    Edit1.Text := Metin;
end;

Fornksiyonda kullanılan birinci parametre, formatlanacak olan sayıyı, üçüncü parametre toplam karakteri sayısı, dördüncü parametrede ondalıklı kısımda gözükecek olan karakter sayısını belirlemek için kullanılmaktadır. İkinci parametre ise uygulanacak olan formatı belirleyecek olan bölümdür. Alabileceği seçenekler aşağıda verilmiştir.

ffCurrency          Parasal format için kullanılır.

ffNumber           Binlik ayıraç uygulanmış halde gösterilir.

ffFixed               Ondalıklı formatta gösterilir.

ffExponent        Sayı üstel olarak gösterilir.

ffGeneral           Üstel veya normal gösterim.

Parasal formatın nasıl olacağı (TL-$) Windows unuzun bölgesel ayarlar kısmından otomatik olarak alınmaktadır. Eğer bölgesel ayarlar kısmından Türkiye seçilmiş ise, paranızın sonuna Delphi tarafından TL otomatik olarak konulacaktır. Şayet USA seçilmiş ise o zamanda $ karakteri paranızın sonunda otomatik olarak eklenecektir.


FormatFloat(Format_Tipi, Sayı);
İkinci parametre ile girilen ondalıklı sayıya, birinci parametre ile belirlenen formatı uygulayan fonksiyondur. Birinci parametre için belirleyebileceğiniz format tipleri aiağıda verilmiştir.

#,##0.00          1,234.00

#.##                 1234

0.00                  1234.00


Procedure TForm1.Button1Click(Sender; Object);
var
    Metin : AnsiString;
begin
    Metin := FormatFloat(‘#,’ , StrToFloat(Edit3.Text));
    Caption := Metin;
end;



« Son Düzenleme: 17 Şubat 2007 12:05:43 by Fatih »
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Emre

  • Global Moderatör
  • *****
  • İleti: 74
  • Rep: +6/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #1 : 17 Şubat 2007 10:18:02 »
Teşekkür ederiz. Çok faydalı bir kaynak olmuş. Ellerine sağlık.

Çevrimdışı hayati

  • Administrator
  • *****
  • İleti: 860
  • Rep: +19/-3
  • Cinsiyet: Bay
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #2 : 17 Şubat 2007 10:23:38 »
Rica ederim, elimden geldiğince bildiklerimi ve kaynaklarımı paylaşmaya çalıyorum.
Olsa dahi tenimin kıl biten her yeri bir dil, güçsüzüm şükretmeye,şükrüm binde bir bile değil (İ.R.)

Çevrimdışı Memik_

  • Yeni Üye
  • *
  • İleti: 13
  • Rep: +0/-4
  • Cinsiyet: Bay
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #3 : 24 Şubat 2007 12:54:47 »
Arkadaşlar merhaba. Burada yayınlanan String fonksiyonlarla ilgili yazıyı daha önce Ender Aslantürk'ün kişisel sitesinde görmüştüm. Yazının asıl kaynağı beyinleri zirvede namlı saygıdeğer yazarların Delphi 7 kitabıdır. Savunma hazırladığım günlerde ister istemez Zirvedeki beyinler namlı yazarların kitaplarını yakından inceliyordum. Bu günlerde aşağıda verdiğim metni hazırlayıp sitemde yayınlamıştım. Sizinle paylaşmak istedim.

Bugüne kadar kitaplarımda kullanmak üzere yazdığım bütün kodların doğruluğunu mutlaka test etmişimdir. Ancak bazen dalgınlık eseri okura hatalı kodlar verdiğim mutlaka olmuştur. Örneğin kitap metni içine aldıktan sonra örneğin hatalı olduğunu fark ettiğimde, kodları hemen düzeltmişimdir. Ancak tam bu sırada kodun düzeltilmiş halini kitaba tekrar aktarmayı unutuğum olmuştur. Bazende bir sınıfın metodundan özellik veya Class'tan nesne diye söz ettiğim olmuştur. Anlayacağınız 1000 sayfalık bir kitapta üç beş hatanın olması kisişel görüşüme göre son derece normaldir.

Bazen de başka bir kaynakta hatalı koda veya yanlış anlamalara neden olacak açıklamalara rastladığım olur. Amacım başkalarının hatalarını yakalamak olmasa bile bazen kitap, dergi ve sitelerde rastladığım hatalardan burada söz edeceğim. İlk olarak Delphi 7 konulu bir kitaptaki yanlış anlamaya neden olacak basit bir örnekten söz edeceğim. Bu örneğe ilk olarak ima ettiğim kitaptan olduğu gibi alıntı yapılan bir programcının kişisel Web sitesinde rastladım. Örneğin azıcık değiştirilmiş halini aşağıda verdim.

Kod: [Seç]
procedure TForm1.Button1Click(Sender: TObject);
Var
   Metin, Sonuc : AnsiString;
   Sayi : Integer;
begin
  Metin := 'Center';
  Sonuc := 'Education Center';
  Sayi := AnsiCompareStr(Metin, Sonuc);
  If Sayi = 0 Then Self.Caption := 'Aynı' Else
  If Sayi > 0 Then Self.Caption := 'İçinde Yok' Else
  If Sayi < 0 Then Self.Caption := 'İçinde Var';
end;

Burada sözü edilen AnsiCompareStr() fonksiyonu 2 string parametreye sahiptir. İlk parametre olarak verilen string bilgi 2. parametre ile karşılaştırılmaktadır. Bu fonksiyon kendisine parametre olarak verilen her iki String bilgi birbirine eşitse geriye 0 göndermektedir. Eğer ilk bilgi ikinciden büyükse bu kez geriye pozitif, değilse negatif bilgi göndermektedir. Şimdi bu bilgilerin ışığında bu örneği yorumlayalım. 1. parametre olarak verilen "Center" kelimesi ikinci parametre olarak kullanılan string bilgiden küçük olduğu için geriye 0'dan küçük bir değer gönderilir.

Bu örmekte de geriye eksi(-) değer gönderilmekle birlikte bunun nedeni "Center" kelimesinin "Education" kelimesinden küçük olmasından dolayıdır. Yoksa 2. parametrenin "Center" kelimesini içermesinden dolayı değildir. Bu nedenle bu örnek aşağıdaki gibi düzelense bile AnsiCompareStr() fonksiyonu geriye eksi değer gönderir.

Kod: [Seç]
procedure TForm1.Button1Click(Sender: TObject);
Var
   Metin, Sonuc : AnsiString;
   Sayi : Integer;
begin
   Metin := 'Center';
   Sonuc := 'Eğitim Merkezi';
   Sayi := AnsiCompareStr(Metin, Sonuc);
   If Sayi = 0 Then Self.Caption := 'Aynı' Else
   If Sayi > 0 Then Self.Caption := 'İçinde Yok' Else
   If Sayi < 0 Then Self.Caption := 'İçinde Var';
end;
« Son Düzenleme: 24 Şubat 2007 13:01:39 by Fatih »
Memik YANIK - www.memikyanik.com

Çevrimdışı tred8

  • Yeni Üye
  • *
  • İleti: 6
  • Rep: +0/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #4 : 18 Mart 2007 18:25:23 »
selam yazınız gayet güzel olmuş tebrikler

3 tane alanım var seri1+seri2=fisno (A+001=A001)şimdi ben buradaki 'A' harfnin olduğu alan varya orası fisno 'A999' olunca  'B' olacak ve bu şekilde gidecek yani 'B999' olunca 'C' ye 'D' ye............. nasıl yaparız.


teşekkür ederim

Çevrimdışı void_main

  • Üye
  • ***
  • İleti: 34
  • Rep: +0/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #5 : 06 Mart 2010 15:34:10 »
süper bir kaynak, mükemmel anlatım..Bilgi paylaştıkça artar derler hep, 3 sene sonra bile; paylaştığınız makale için teşekkür ederim...

Çevrimdışı erdemkn

  • Yeni Üye
  • *
  • İleti: 5
  • Rep: +0/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #6 : 13 Mayıs 2011 14:09:16 »
Paylaşım için Teşekkürler
« Son Düzenleme: 13 Mayıs 2011 14:32:39 by erdemkn »

Çevrimdışı aligel54

  • Kıdemli Üye
  • *****
  • İleti: 478
  • Rep: +1/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #7 : 07 Haziran 2011 09:50:57 »
Alıntı
Kod: [Seç]
procedure TForm1.Button1Click(Sender: TObject);
Var
   Metin, Sonuc : AnsiString;
   Sayi : Integer;
begin
   Metin := 'Center';
   Sonuc := 'Eğitim Merkezi';
   Sayi := AnsiCompareStr(Metin, Sonuc);
   If Sayi = 0 Then Self.Caption := 'Aynı' Else
   If Sayi > 0 Then Self.Caption := 'İçinde Yok' Else
   If Sayi < 0 Then Self.Caption := 'İçinde Var';
end;

Yalnız bu koddaki son if ne işe yarar anlayamadım.
Zaten o şart oluşmasa bu if'e kadar gelmez ki?

Kod: [Seç]
   If Sayi = 0 Then Self.Caption := 'Aynı' Else
     If Sayi > 0 Then Self.Caption := 'İçinde Yok'
         Else Self.Caption := 'İçinde Var';
Şeklinde yapsak daha doğru olacaktır...

Çevrimdışı everestint

  • Yeni Üye
  • *
  • İleti: 6
  • Rep: +0/-0
Ynt: DELPHİ String Fonksiyonlar
« Yanıtla #8 : 04 Aralık 2011 09:30:33 »
hayati üstadım verdiğiniz bilgiler için canı gönülden teşekkür ederim.