Dosya isimlerini gride aktarma ve çalıştırma hakkında 2 soru

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Dosya isimlerini gride aktarma ve çalıştırma hakkında 2 soru

Mesaj gönderen kafkasyali »

Delphi konusunda acemiyim. Bir yedekleme uygulaması yaptım. Yedekleri günün tarihine göre zipliyor. Günde bir kaç defa yedek alınabiliyor. Dolayısı ile zip dosyalarının isimleri belli bir standartta değil. 01.01.2008_0.zip, 01.01.2008_1.zip gibi.

Kullanacağım uygulamanın yanında "yedek" isimli bir klasör bulunuyor. Yedek isimli klasörde bir çok zip uzantılı dosya var. Uygulamadaki DBGridde tek bir colums bulunuyor. aşağıdaki resimdeki gibi yedek klasöründeki dosyaların isimlerini itemlere nasıl aktarabilirim?

Resim

2. sorum bu itemlere tıkladığımda bu zip dosyalarını nasıl çalıştırabilirim? zipli dosyalar pkzip destekli yani winzip winrar gibi programlar bu zipleri açabiliyor. Winexec, Shellexecute gibi komutları biliyorum. Fakat daha önce dosya ismini grid itemlerinden hiç çağırmadım.
visualbasic.stupid:=true;
Kullanıcı avatarı
White Rose
Üye
Mesajlar: 726
Kayıt: 06 Tem 2005 09:41
Konum: Güneyden
İletişim:

Re: Dosya isimlerini gride aktarma ve çalıştırma hakkında 2 soru

Mesaj gönderen White Rose »

bunun için FileListBox,DirectoryListBox,DriveComboBox ve FilterComboBox nesnelerini birbirine bağlayarak kullanabilirsiniz yada StringGrid, Listbox işinizi görecektir.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: Dosya isimlerini gride aktarma ve çalıştırma hakkında 2 soru

Mesaj gönderen ikutluay »

kafkasyali yazdı:Delphi konusunda acemiyim. Bir yedekleme uygulaması yaptım. Yedekleri günün tarihine göre zipliyor. Günde bir kaç defa yedek alınabiliyor. Dolayısı ile zip dosyalarının isimleri belli bir standartta değil. 01.01.2008_0.zip, 01.01.2008_1.zip gibi.

Kullanacağım uygulamanın yanında "yedek" isimli bir klasör bulunuyor. Yedek isimli klasörde bir çok zip uzantılı dosya var. Uygulamadaki DBGridde tek bir colums bulunuyor. aşağıdaki resimdeki gibi yedek klasöründeki dosyaların isimlerini itemlere nasıl aktarabilirim?



2. sorum bu itemlere tıkladığımda bu zip dosyalarını nasıl çalıştırabilirim? zipli dosyalar pkzip destekli yani winzip winrar gibi programlar bu zipleri açabiliyor. Winexec, Shellexecute gibi komutları biliyorum. Fakat daha önce dosya ismini grid itemlerinden hiç çağırmadım.
ya aşağıdaki componentler yada findfirst find next ile yapmalısın. önerim ay gun yıl degilde yil ay gun kullan böylece isimler doğru sıraya girecektir. bu kullanım seni rahatlatır
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
kafkasyali
Üye
Mesajlar: 75
Kayıt: 04 Nis 2008 01:03

Re: Dosya isimlerini gride aktarma ve çalıştırma hakkında 2 soru

Mesaj gönderen kafkasyali »

ilginiz ve alakanız için teşekkür ederim. programcı değerli bir abimden yardım aldım. kodlar belki birilerinin işine yarar.

Kod: Tümünü seç

procedure FindFiles(StartDir, FileMask: string);

Kod: Tümünü seç

procedure TForm1.FindFiles(StartDir, FileMask: string);
var
   SR: TSearchRec;
   DirList: TStringList;
   IsFound, IsFound1: Boolean;
   dosya: string;
   i: integer;
begin

   if StartDir[length(StartDir)] <> '\' then
      StartDir := StartDir + '\';


   IsFound :=
      FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;
   while IsFound do begin
         dosya := copy(SR.Name, pos('.', SR.Name) + 1, Length(SR.Name) - pos('.', SR.Name) + 1);

         ClientDataSet1.Append;
         ClientDataSet1database.Value := (SR.Name);
         ClientDataSet1.Edit;
         ClientDataSet1.Post;
         ClientDataSet1.SaveToFile('bbb.cds');

         IsFound := FindNext(SR) = 0;
      end;
   FindClose(SR);

   DirList := TStringList.Create;
   IsFound := FindFirst(StartDir + '*.*', faAnyFile, SR) = 0;
   while IsFound do begin
         if ((SR.Attr and faDirectory) <> 0) and
            (SR.Name[1] <> '.') then
            begin
               DirList.Add(StartDir + SR.Name);
            end;
         IsFound := FindNext(SR) = 0;
      end;
   FindClose(SR);

   for i := 0 to DirList.Count - 1 do
      FindFiles(DirList[i], FileMask);
   DirList.Free;
end;
visualbasic.stupid:=true;
Cevapla