

9. String İşlemleri (String Manipülasyonu ve Formatlama)
Delphi programlama dilinde, metin verileriyle çalışmak, birçok uygulamanın temelini oluşturur. Kullanıcı arayüzlerinden veri tabanlarına, dosya işlemlerinden ağ iletişimine kadar her alanda stringlerle etkileşim halindeyiz. Delphi, string manipulasyonu ve formatlama için zengin bir araç seti sunar. Bu makalede, Delphi’de stringlerle nasıl etkili bir şekilde çalışabileceğinizi, farklı string fonksiyonlarını ve formatlama tekniklerini detaylı bir şekilde inceleyeceğiz.
String Tanımlama ve Kullanımı
Delphi’de stringler, String
veri tipiyle tanımlanır. Delphi’nin modern versiyonlarında (Delphi 2009 ve sonrası), UnicodeString
kullanılır; bu da çok çeşitli karakter setlerini destekleyerek global uygulamalar geliştirmeyi kolaylaştırır. Temel string tanımlama ve kullanma örneklerine bakalım:
var
isim: String;
soyisim: String;
tamAd: String;
begin
isim := 'Ahmet';
soyisim := 'Yılmaz';
tamAd := isim + ' ' + soyisim; // String birleştirme
ShowMessage(tamAd);
end;
Bu örnekte, iki string değişkeni tanımlayıp, değerlerini atadık ve ardından bu iki stringi birleştirerek yeni bir string oluşturduk. +
operatörü, Delphi’de string birleştirme için kullanılır.
Temel String Fonksiyonları
Delphi, stringlerle çalışmayı kolaylaştıran birçok yerleşik fonksiyon sunar. İşte en sık kullanılanlardan bazıları:
- Length(String): Bir stringin uzunluğunu (karakter sayısını) döndürür.
- Copy(String, Başlangıç, Adet): Bir stringin belirli bir bölümünü kopyalar.
- Pos(AltString, String): Bir alt stringin, bir string içindeki ilk konumunu bulur. Eğer alt string bulunamazsa, 0 döndürür.
- Delete(String, Başlangıç, Adet): Bir stringden belirli sayıda karakteri siler.
- Insert(AltString, String, Pozisyon): Bir stringin içine başka bir stringi ekler.
- UpperCase(String): Bir stringi tamamen büyük harfe çevirir.
- LowerCase(String): Bir stringi tamamen küçük harfe çevirir.
- Trim(String): Bir stringin başındaki ve sonundaki boşlukları temizler.
- TrimLeft(String): Bir stringin solundaki boşlukları temizler.
- TrimRight(String): Bir stringin sağındaki boşlukları temizler.
Örnek Kullanımlar
Bu fonksiyonların nasıl kullanıldığına dair bazı örnekler görelim:
var
metin: String;
uzunluk: Integer;
altMetin: String;
pozisyon: Integer;
begin
metin := ' Merhaba Dünya! ';
uzunluk := Length(metin); // Uzunluk: 17 (boşluklarla birlikte)
ShowMessage('Metnin uzunluğu: ' + IntToStr(uzunluk));
altMetin := Copy(metin, 3, 7); // AltMetin: 'Merhaba'
ShowMessage('Alt metin: ' + altMetin);
pozisyon := Pos('Dünya', metin); // Pozisyon: 12
ShowMessage('Dünya kelimesinin pozisyonu: ' + IntToStr(pozisyon));
Delete(metin, 1, 2); // Metin: 'Merhaba Dünya! ' (baştaki boşluklar silindi)
ShowMessage('Silinmiş metin: ' + metin);
Insert('Yeni ', metin, 9); // Metin: 'Merhaba Yeni Dünya! '
ShowMessage('Eklenmiş metin: ' + metin);
metin := Trim(metin); // Metin: 'Merhaba Yeni Dünya!' (baştaki ve sondaki boşluklar silindi)
ShowMessage('Trimlenmiş metin: ' + metin);
end;
String Formatlama
String formatlama, değişken değerlerini belirli bir düzende bir stringe yerleştirmek için kullanılır. Delphi, bu işlem için Format
fonksiyonunu ve FormatFloat
fonksiyonunu sunar.
Format Fonksiyonu
Format
fonksiyonu, genel amaçlı formatlama için kullanılır. Biçimlendirme stringi ve bir dizi parametre alır.
var
ad: String;
yas: Integer;
mesaj: String;
begin
ad := 'Ayşe';
yas := 25;
mesaj := Format('Merhaba, %s! Yaşınız: %d', [ad, yas]);
ShowMessage(mesaj); // Çıktı: Merhaba, Ayşe! Yaşınız: 25
end;
Bu örnekte, %s
stringleri, %d
ise integer değerleri temsil eder. Format
fonksiyonuna geçirilen dizi, bu yer tutucuların yerine konacak değerleri içerir.
FormatFloat Fonksiyonu
FormatFloat
fonksiyonu, ondalıklı sayıları belirli bir biçimde formatlamak için kullanılır. Özellikle para birimi veya hassas ölçümlerle çalışırken kullanışlıdır.
var
fiyat: Double;
formatliFiyat: String;
begin
fiyat := 1234.567;
formatliFiyat := FormatFloat('0.00', fiyat); // İki ondalık basamaklı format
ShowMessage('Fiyat: ' + formatliFiyat); // Çıktı: Fiyat: 1234.57 (yuvarlama yapılır)
formatliFiyat := FormatFloat('#,##0.00', fiyat); // Binlik ayraçlı format
ShowMessage('Fiyat: ' + formatliFiyat); // Çıktı: Fiyat: 1,234.57
end;
Bu örnekte, '0.00'
format stringi, sayının iki ondalık basamakla gösterilmesini sağlar. '#,##0.00'
ise binlik ayraçlarını ekler.
String Builder Kullanımı
Büyük string manipulasyonları yaparken, özellikle döngüler içinde string birleştirmeleri yaparken, performans sorunları yaşanabilir. Bu durumda StringBuilder
sınıfını kullanmak daha verimli olabilir. StringBuilder
, stringleri bellekte sürekli yeniden oluşturmak yerine, bir arabellek kullanarak stringleri bir araya getirir ve sonunda tek bir string olarak döndürür.
uses
System.SysUtils, System.Classes;
var
i: Integer;
sb: TStringBuilder;
sonuc: String;
begin
sb := TStringBuilder.Create;
try
for i := 1 to 1000 do
begin
sb.Append('Satır ' + IntToStr(i) + #13#10); // #13#10: Yeni satır karakteri
end;
sonuc := sb.ToString;
// ShowMessage(sonuc); // Çok uzun olduğu için göstermiyoruz
finally
sb.Free;
end;
end;
Bu örnekte, TStringBuilder
nesnesi oluşturulur, döngü içinde stringler bu nesneye eklenir ve sonunda ToString
metodu ile tek bir string elde edilir. try...finally
bloğu, StringBuilder
nesnesinin her durumda serbest bırakılmasını sağlar.
Sonuç
Delphi’de string işlemleri, uygulama geliştirmenin ayrılmaz bir parçasıdır. Bu makalede, temel string fonksiyonlarını, formatlama tekniklerini ve StringBuilder
sınıfını kullanarak daha verimli string manipulasyonları yapmayı öğrendik. Bu bilgiler, Delphi projelerinizde metin verileriyle daha etkili bir şekilde çalışmanıza yardımcı olacaktır. String manipulasyonu ve formatlama konusundaki bu bilgilerle, uygulamalarınızı daha kullanıcı dostu ve işlevsel hale getirebilirsiniz.
Bir yanıt bırakın