15 karekterli bir string kelimenin...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

15 karekterli bir string kelimenin...

Mesaj gönderen sertkayasalih »

Herkese Merhaba,

Delphi de yeni sayılırım.

15 karekterli bir string kelimeyi sorgulayıp sonundaki 4 karekteri bulup veren bir fonksiyon nasıl yapabilirim? yada kılavuz olabilecek bilgiye nasıl ulaşabilirim?

Yardımcı olan herkese şimdiden teşekkürler :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

length ve copy fonksiyonlarını kullanarak yapabilirsin.
Abrak
Üye
Mesajlar: 189
Kayıt: 18 Kas 2004 05:30

Mesaj gönderen Abrak »

Arkadaş yeni olduğu için biraz daha açmak istedim;
:arrow: length(string) Uzunluğunu verir.
:arrow: Copy(string,başlayacağı karakter sayısı,alınacak karakter sayısı)
Örnek: s:= 'delphi turkiye';
copy(s,8,7); //çıkacak sonuç turkiye
copy(s,8,length(s)); //8 nci karekterden sonraki tüm
harfler
Başkasına Olan Saygımız.. Kendimize Olan saygıdır..
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba naile, Abrak, Programci,

Yanıtlarınız için çok teşekkür ederim :)
tam olarak niçin sorgulayacaksın. yazarsan daha iyi bir cevap alabilirsin.
Tam olarak yapmak istediğim:
- Programımda DirectX sürümünü sorgulamasını DXInfo.DirectXVer; procedure ile string cinsinden 4.09.00.0900 olarak alıyorum.
Program açılırken AnaFormun OnCreate event ında, string değerin son 3 karekterini (900) integer e çevirip,

Kod: Tümünü seç

[....]
var
  s1, s2  : string;
  fdirX   : integer;
begin
  s1 := DXInfo.DirectXVer; // DirectX sürümü - örnek s1 := 4.09.00.0900
  s2 := Copy(s1,10,length(s1);// Önerdiğiniz komutla değeri '900' olarak alabilirim.
  fdirX := StrToInt(s2);
  if fdirX < 900 then 
  begin
     ShowMessage('Program DirectX 9 dan aşağı sürümlerde çalışmaz!'
                 +#13+'Lütfen DirectX 9 veya üst sürümü yükleyiniz');
     Application.Terminate;
  end;
end;  
şeklinde bir sorgulama yaparak fdirX değeri 900 dan küçük olursa programın çalışmadan kapanmasını sağlamak.

- Sorgulama içinde programın kapanması için Application.Terminate kullanmak doğru mu?

- Kodu test etmeden yazdım. Hatalı veya eksik olan bir şeyler varsa lütfen yardımcı olun.

İnşallah sizlerden aldığım yönlendirici yardımınızla başarabilirim.

Bu sorgulama işleminin daha kısa, veya başka bir yolu var mı :?: bilemiyorum.

Yardımlarınız için tekrar teşekkür ederim.
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

Mesaj gönderen Fatih! »

Kod: Tümünü seç

var 
  s1, s2  : string; 
  fdirX   : integer;
a:byte; 
begin 
  s1 := DXInfo.DirectXVer; // DirectX sürümü - örnek s1 := 4.09.00.0900 
for a:=3 downto 0 do
s2:=s2+s1[length(s1)-a];
 fdirX := StrToInt(s2); 
  if fdirX < 900 then 
  begin 
     ShowMessage('Program DirectX 9 dan aşağı sürümlerde çalışmaz!' 
                 +#13+'Lütfen DirectX 9 veya üst sürümü yükleyiniz'); 
     Application.Terminate; 
  end; 
end;  
Kullanıcı avatarı
sertkayasalih
Üye
Mesajlar: 178
Kayıt: 12 Haz 2003 12:47
Konum: Antalya
İletişim:

Mesaj gönderen sertkayasalih »

Merhaba FaoSoft,

Yanıtınız ve düzeltmeniz için çok teşekkür ederim :)
Bilgi; iki tarafı keskin kılıca benzer.
İyi kullanılmazsa, ya karşıyı, ya da sahibini
keser.
Cevapla