Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
String Fonksiyonları [Çözüldü]
#1
Merhabalar, string olarak tuttuğum bir alanda gelen kaydın son 4 hanesini nasıl alabilirim?

s: = 'Istanbul';
s:= RightStr(s,4);

Sehir.Text := s;

Şeklinde kullandığım zaman S bilgisini boş döndürüyor. Copy ile ilk karakterini alabiliyorum ama son karakterini alabilir miyim bulamadım başka hangi yöntemler var acaba yardımcı olabilir misiniz?

Copy(s, S.Length-4, s.Length) fesih beyin ikinci yöntemi çok yardımcı oldu ^^
Don't fear the try!
Cevapla
#2
Uses kısmına Strutils ekeyerek ardından AnsiRightStr(s,4) denermisin.
Cevapla
#3
test edilmiştir.
gelen alan sonunda boşluk olabilir.

edit2.text := AnsiRightStr(trim(edit1.Text), 4)

şeklinde  kullanablirsiniz 

var
 Form1: TForm1;

implementation

{$R *.dfm}
uses strutils  ;
procedure TForm1.FormCreate(Sender: TObject);
begin
[ars=delphi]edit2.text := AnsiRightStr(edit1.Text, 4)
end;

end.
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#4
Merhaba,
RightStr fonksiyonu ile de yapabilmeniz gerekiyordu. Kullandığınız yöntem doğrudur.
Farklı iki yöntem daha sunayım fakat her iki yöntem de iki medodun çalıştığını unutmayın. 
RightStr yönteminde tek metod çalışıyorken, Copy ve SubString yönteminde iki ayrı metod kullanılıyor.
I.Yöntem:
s.Substring(s.Length - 4)
II.Yöntem:
Copy(s, s.Length - 3, s.Length)
Cevapla
#5
(04-03-2019, Saat: 10:55)CesuR Adlı Kullanıcıdan Alıntı: Uses kısmına Strutils ekeyerek ardından AnsiRightStr(s,4) denermisin.

Merhaba, Uses kısma Strutils belirttim, ve AnsiRightStr ile de denedim, ama boş döndürdü yine de :/
Don't fear the try!
Cevapla
#6
Buton tıkladığınız Procedure içini tamamen buraya yazar mısınız?

variable tanımını nerede yaptınız, takip eden satırda yine s'yi başka bir şeye eşitleyip yine SEHIR Editine veya başka bir şeyi SEHIR Editine 'ye eşlemiş olabilir misiniz?

Ayrıca SEHIR Edit'nin onchange gibi eventinde sayı yoksa yazma vs gibisinden bir denemeniz olabilir mi

ya da ya da ya da diye uzayacak

Bırakın SEHIR Edit'i önce bir ShowMessage ile S' yi aracısız sonucu görün ondan sonra soruna odaklanın isterseniz
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#7
(04-03-2019, Saat: 11:46)mrmarman Adlı Kullanıcıdan Alıntı: Buton tıkladığınız Procedure içini tamamen buraya yazar mısınız?

variable tanımını nerede yaptınız, takip eden satırda yine s'yi başka bir şeye eşitleyip yine SEHIR Editine veya başka bir şeyi SEHIR Editine 'ye eşlemiş olabilir misiniz?

Ayrıca SEHIR Edit'nin onchange gibi eventinde sayı yoksa yazma vs gibisinden bir denemeniz olabilir mi

ya da ya da ya da diye uzayacak

Bırakın SEHIR Edit'i önce bir ShowMessage ile S' yi aracısız sonucu görün ondan sonra soruna odaklanın isterseniz


Merhaba,
Konu ile alakası yok ama kısa bir ara olsun. Smile
Siz tüm olabilecek mantıksal hata veya mantıksal önerileri sununca aklıma IDE ne zaman bu seviyeye gelebilir diye düşündüm.
Yapay zekanın IDE'ye uyarlanmış halini görebilecek miyiz acaba? Blush
Cevapla
#8
Fesih bey çıkarsa google da yarar. Yükünü hafifletmiş olur. Hep ona soruyoruz hiç onu dinleyen yok Smile)))

Mericx, arkadaşım şöyle yaparsan komutun çalıştığını senin başka biryerde hata yaptığını göreceksin. Acaba sen sonucu alıp edite yazdırdıktan sonra Sehir.text dediğin editi ,   Sehir.text=' ' diyerek acaba sıfırlıyor olabilir misin. Onu kontrol et.


var

s:string;

begin
s:='deneme';
showmessage(ansirightstr(s,2));
end;
Cevapla
#9
(04-03-2019, Saat: 12:55)CesuR Adlı Kullanıcıdan Alıntı: Fesih bey çıkarsa google da yarar. Yükünü hafifletmiş olur. Hep ona soruyoruz hiç onu dinleyen yok Smile)))

Mericx, arkadaşım şöyle yaparsan komutun çalıştığını senin başka biryerde hata yaptığını göreceksin. Acaba sen sonucu alıp edite yazdırdıktan sonra Sehir.text dediğin editi ,   Sehir.text=' ' diyerek acaba sıfırlıyor olabilir misin. Onu kontrol et.


var

s:string;

begin
s:='deneme';
showmessage(ansirightstr(s,2));
end;

Aslında hayır ='' diyerek boş yapmadım içini ama neden boş döndüğünü anlamadım. Fesih beyin önerdiği Yöntem iki ile düzgün çalıştı ama şuan. Sebebini anlayamadım cidden ama bakıyorum şuan kodlara tekrar...

(04-03-2019, Saat: 11:01)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Merhaba,
RightStr fonksiyonu ile de yapabilmeniz gerekiyordu. Kullandığınız yöntem doğrudur.
Farklı iki yöntem daha sunayım fakat her iki yöntem de iki medodun çalıştığını unutmayın. 
RightStr yönteminde tek metod çalışıyorken, Copy ve SubString yönteminde iki ayrı metod kullanılıyor.
I.Yöntem:
s.Substring(s.Length - 4)
II.Yöntem:
Copy(s, s.Length - 3, s.Length)

Yardımınız için çok teşekkür ederim 2.yöntem ile gayet güzel çalıştı Smile

Yazdığım kodda düzgün gözüküyor ama içini sıfırlamadığım halde boş değer geliyordu.Bir yerde hata mı yaptım onu inceliyorum şuan.
Don't fear the try!
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 178 19-04-2024, Saat: 08:25
Son Yorum: cinarbil
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 175 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 247 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.368 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 532 02-02-2024, Saat: 09:54
Son Yorum: shooterman



Konuyu Okuyanlar: 1 Ziyaretçi