veri parçalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

veri parçalama

Mesaj gönderen ALUCARD »

arkadaşlar forumda bu konu konuşulmuş ama ben işime yarayacak bir örnek bulamadım.

formatım şu şekilde

1234_ADI_SOYADI_20150703090512.PDF

Kalın yazılan alan tarihi tutuyor.

bende bu tarihe gore arama yapmam gerekiyor. ama cihaz bazen 1234_ADI_SOYADI_20150703.PDF şeklinde de isim atayabiliyır.

şöyle bir şey yapmam lazım en son (_) işaretinden sonraki altı karaktei 4 2 2 şejklinde al demem lazım. yol gösterecek birisi olursa sevinirim.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
kamuran48
Üye
Mesajlar: 284
Kayıt: 29 Eyl 2003 09:27
Konum: muğla

Re: veri parçalama

Mesaj gönderen kamuran48 »

s.a.
parçalanacak kelimenin uzunluğunu alıp bu işlemi copy ile çözmeniz lazım.
uzunluk:=length(parçalanacak kelime)
diyelimki 28
çıkartacağımız yer uzunluğu 12
28-12=16+1 yıl için başlangıç
16+5 ay için başlangıç
16+7 ay için başlangıç

copy(1234_ADI_SOYADI_20150703.PDF,17,4) yıl
copy(1234_ADI_SOYADI_20150703.PDF,21,2) ay
copy(1234_ADI_SOYADI_20150703.PDF,23,2) gün

şeklinde yapabilirsiniz.
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1269
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Re: veri parçalama

Mesaj gönderen ALUCARD »

ama hocam adı ve soyadı uzunlu çok değişken hatta iki isimli olanlar olursa (_) sayısıda atrıyor.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: veri parçalama

Mesaj gönderen mrmarman »

Tespih çeker gibi ilerleyecek, (_) olanları eleyeceksiniz. Bu sizi hedefe ulaştırır.

Kod: Tümünü seç

strDegisken :='1234_ADI_SOYADI_20150703090512';

olsun

Kod: Tümünü seç

while pos('_', strDegisken) >0 do delete(strDegisken, 1,pos('_', strDegisken))
Dediğinizde geriye kalan sizin hedef olacaktır.

Telefon üzerinden yazıyorum, tipografik hatalar için şimdiden özür.
Resim
Resim ....Resim
Kullanıcı avatarı
adelphiforumz
Üye
Mesajlar: 602
Kayıt: 01 Nis 2008 05:38
Konum: İstanbul

Re: veri parçalama

Mesaj gönderen adelphiforumz »

Sanırım aşağıdaki kod işini görür

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
// uses kısmına StrUtils unitini koymayı unutmayın
var
 v, r, s : String;
 yil, ay, gun : Integer;
begin
  v := '1234_ADI_SOYADI_20150703.PDF';
  r:= ReverseString(v);
  s:= copy(r, (Pos('.', r) + 1), ((Pos('_', r) - (Pos('.', r)))-1));
  s:= ReverseString(s);
  yil:= Copy(s, 1, 4);
  ay:= Copy(s, 5, 2);
  gun:= Copy(s, 7, 2);
  ShowMessage(s);
end;
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Cevapla