dosya ismini ayırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

dosya ismini ayırma

Mesaj gönderen dcpromo »

merhaba arkadaşlar ben dosya isimlerini klasörden alıp database yazıyorum.Ama ben bunu bölüp database aktarma istiyorum yardımcı olursanız sevinirim.

procedure TForm1.Button2Click(Sender: TObject);

var
SR : TSearchRec;
xPath : String;
begin
xPath := 'C:\katalog\';
if FindFirst(xPath + '*.bmp', faAnyFile, SR) = 0 then
begin
repeat
if FileExists(xPath + SR.Name) = True then
begin
adotable1.Active:=true;
adoTable1.Insert;
adoTable1bmpname.Value := SR.Name;
adoTable1.Post;
end;
until FindNext(SR) <> 0;
end
else
ShowMessage('Hiç Dosya Bulunamadı');
FindClose(SR);
end;


Kodlarım bunlar

dosya ismi örnek..

bmp12765yyy.bmp

ben ilk bmp yazan kısmı ve .bmp dosya uzantısını aktarmak istemiyorum.

12765yyy db ye aktarmak bunuda 12 koleksyon field ' na 765 isim field nıda ....




yardımlarınız çok teşekkür ederim...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Sanırım istediğiniz şöyle bir şey.

Kod: Tümünü seç


 delete(SR.Name,1,3);
  delete(SR.Name,length(SR.Name)-3,4);

 adoTable1bmpname.Value := SR.Name;

Diğer kısmı da Copy ile yapabilirsiniz.

Kod: Tümünü seç

   showmessage(copy(sr.name,1,2));
showmessage(copy(sr.name,3,3));

gibi.

Kolay gelsin.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

veya StringReplace ile bunları '' ile değiştirip silin.
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

Mesaj gönderen dcpromo »

coderlord kardeş dediğinizi anlamadım biraz açıklarmısınız..
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba, coderlord arkadaşımızdan öğrendiğimizi biz açıklayalım.

Kod: Tümünü seç

sr.name:= stringreplace(sr.name,'bmp','',[rfReplaceAll]);
sr.name:= stringreplace(sr.name,'.','',[rfReplaceAll]);


şeklinde yaparsan o da işini görür demek istiyor.

Coderlord hocam teşekkürler sayende bir komutu da kullanmayı öğrendik.


Kolay gelsin.
Kullanıcı avatarı
ender_arslanturk
Kıdemli Üye
Mesajlar: 709
Kayıt: 18 Şub 2005 03:38
Konum: İstanbul

Mesaj gönderen ender_arslanturk »

Kod: Tümünü seç

Uses StrUtils;

var
   metin,sonuc:AnsiString;
begin
   Metin  := 'bmp12765yyy.bmp';
   Sonuc := Copy(metin,4,8);//4. Karakterden sonraki 8 karakter...
   Label1.Caption:=Sonuc; //12765yyy yazar..
end;
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

slm

Mesaj gönderen dcpromo »

Merhaba arkadaşlar yardımlarınız ile database yazdım ama bir sorunum var aynı isimli olanı db yazmak istemiyorum ne hata msj versin ne bir şey sadece yeni olanları kaydetsin...

Her şey için saolun...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Ya yeni bir adoquery yapıp bu dosya ismini oradan kontrol ettirirsiniz. Yada bu alanı uniqe olarak tanımlarsınız.

Kolay gelsin.
dcpromo
Üye
Mesajlar: 38
Kayıt: 12 May 2005 12:27

slm

Mesaj gönderen dcpromo »

ofenx kardeş kodlarda nasıl yapabilirim yardımcı olabilirsen sevinirim.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select kno from personel where kno=:dosyadan_gelen');
adoquery1.Parameters.ParamByName('dosyadan_gelen').Value:=54543;
adoquery1.Open;

    if adoquery1.Eof and adoquery1.Bof then
      showmessage ('bu kayıt yok ')
       else showmessage('boyle bir kayıt var. ');

end;

Kontrol için aşağıdaki kodu da yazabilirsin.

Kod: Tümünü seç

 if adoquery1.RecordCount=0 then
   showmessage ('bu kayıt yok ')
       else showmessage('boyle bir kayıt var. ');
sana kalmış bir şey ikisi de iş görüyor. Umarım işini görür.
Cevapla