memo da sayı ve tarihleri ayırmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
maqro
Üye
Mesajlar: 132
Kayıt: 11 Eki 2005 10:59

memo da sayı ve tarihleri ayırmak

Mesaj gönderen maqro »

s.a

diyelim bir memoda [delphi10.10.2005türkiye02.03.2004] yazıyo burdaki
10.10.2005 ve 02.03.2004 tarihlerini memodan ayıklayarak başka memolara nasıl yazdırabiliriz?
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

Daha önce de aynı mantıkla yapılacak bir soru sormuştunuz, orada verilen cevabı anlayarak irdeleyin, yine olmazsa forumda Pos diye aratın :wink:

viewtopic.php?t=11752
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
maqro
Üye
Mesajlar: 132
Kayıt: 11 Eki 2005 10:59

Mesaj gönderen maqro »

evet buna benzer bişe sormuştum ama bu daha farklı bişey zaten sorduğum sorular kolay sewiyede bilsem , başkalarıba bakarak yapabilsem sormazdım. neyse ben dediğinizi yapayım... saygılarımla
Kullanıcı avatarı
tuanna
Üye
Mesajlar: 582
Kayıt: 06 Ara 2004 05:01
Konum: Ankara
İletişim:

Mesaj gönderen tuanna »

sanırım söle bir mantık yapacaksın gibi...
harfleri tanımla sayıları tanımla rakamları al sadece ...
mesala sölekine...senin dizin 1,2,3,4,5,6,7 şeklinde takamları tanımladın bu dizinin içine nokta felanda koy...
bir döngü ile memodaki...karakterleri teker teker kontrol ettir...senin dizindeki herhangi bir karaktere benziyorsa alırsın...

gelelim bunları aldık ama
atıyorum delphi10.10.2005türkiye02.03.2004

bu ibare söle olacaktır...
10.10.200502.03.2004
bu noktada bunları nasıl ayırırım diyeceksin sen ....
işte burada da sunu yaparsın bir tarih 10 tane karakterden oluşuyor aldığın veriyi 10 arlı parçalarsın sen bir code yazmaya çalış ...buraya çalışmanız yaz...biz de sana daha açıklayıcı bir seyler yazarız bu mantıktı hadi code et bakalım...
Siz hayal edin...Biz yapalım TuannaSoft...
Kullanıcı avatarı
mucar
Kıdemli Üye
Mesajlar: 247
Kayıt: 17 May 2005 01:14

Mesaj gönderen mucar »

maqro kardeş, anlayarak yapmanın sana daha faydalı olacağını düşündüğüm için böyle söyledim. klasik olacak ama bir kişiye balık tutmayı öğretmek, ona balık vermekten iyidir. maksadım buydu. neyse madem uğraştınız olmadı, bi de aşağıdaki şekilde deneyebilir misin?

gerçi tuanna hocam açıklamış. ama başka bir bakış açısı olsun;

forma bir edit, bir buton ve bir memo koyduktan sonra, butona basıldığında şu kodlar çalışsın;

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
begin
 s:=edit1.text;
 while pos('.',s)>0 do
 begin
 memo1.Lines.Add(copy(s,pos('.',s)-2,10));
 Delete(s,pos('.',s)-2,10);
 end;
end;
Çalıştırdığınızda edite istediğiniz ifadeyi girin tarihle karışık olarak ve butona basın. Buradaki mantık ise; (tarihleri "." ayıracı kullanarak ayırdığınızı kabul ederek) string içerisindeki noktanın pozisyonunu bulduruyoruz, bu pozisyondan 2 çıkarıyoruz (çünkü ilk noktadan önce tarih 2 karakter öncesinde başlıyor) ve bir tarih 10 haneli olduğundan 10 tane karakteri kopyalayıp memo'ya atıyoruz ve bu tarihi siliyoruz. While döngüsü de nokta kalmayıncaya kadar işliyor.
"Evine bakmaktan aciz olan; ilerici, üç kıtaya hükmeden ecdadın mı gerici?"
Cevapla