merhaba arkadaşlar ben bil.böl öğrenciyim ve final ödevim için sizden yardım isteyecektim.delphide bilgisayarın herhangi bir yerinde bulunan resim belgelerini bulan bir program yapmam lazım ama daha önde bu programı kullanmadığım için nasıl yapılacağını bilmiyorum.bana yardımcı olursanız sevinirim.şimdiden saolun.
yardım
Delphi Türk KodBank 3.1 de olması lazım bir gözat olmayabilirde
birden çok mesajda gönderme
Aşağıda verdiğim metni yakında piyasaya çıkacak Turbo Delphi kitabımdan aynen aldım. Umarım size fikir verir.
Programcılar genel alışkanlık ile üzerinde işlem yapmak istedikleri dosyanın mevcut olup olmadığını kontrol etmeden dosya üzerinde işlem yapmaya başlamazlar. Delphi’de ilgilendiğiniz dosyanın varlığını kontrol etmek istiyorsanız FileExists() metodunu kullanabilirsiniz. Bu metot kendisine parametre olarak verilen dosya işaret edilen klasörde varsa geriye True bilgisini göndermektedir.
If not FileExists('C:\Athena.bmp') Then
ShowMessage('Dosya bulunamadı');
Herhangi bir sürücü veya klasörde dosya aramak istiyorsanız FindFirst(), FindNext() ve FindClose() metotlarını kullanabilirsiniz. Bu metotlar ile dosya aranırken Delphi’nin TSearchRec tipinden yararlanılmaktadır. Toplam 7 elemana sahip bu tipin yapısı aşağıda verildi.
TSearchRec = record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end;
Dosya araması yaparken Delphi’in bu tipini kullanmak yerine benzer özellikte elemanlara sahip kendi tipinizi tanımlayıp kullanabilirsiniz. “\Windows” klasöründeki ilk EXE dosyanın adını öğrenmek üzere FindFirst() metunu aşağıdaki gibi kullandım. Bu kodu dikkatlice incelerseniz FindFirst() metodu 3 parametreye sahiptir.
İlk parametrede aranmak dosya veya dosyalar işaret edilmektedir. 2. parametrede ise aranmak istenen dosya tipi belirtilmektedir. Örneğin arama gizli dosyalar arasında yapılmak isteniyorsa 2. parametre olarak “aHidden” seçeneği kullanılmalıdır.
Var
Dosya : TSearchRec;
Begin
FindFirst(‘C:\Windows\*.exe, faAnyFile, Dosya);
ShowMessage(Dosya.Name);
End;
Bu kod işletildiğinde işaret edilen klasördeki ilk EXE dosyanın adı ekrana getirilir. Belirtilen şartları sağlayan herhangi bir dosya yoksa TSearchRec yapısının Name elemana boşluk aktarılır. Aranıp bulunan dosyanın diğer özellikleri görebilmek için projenin formunu 3 ListBox ve 1 Edit yerleştirdim.
Kullanıcı aramanın yapılacağı yolu ve dosya arama kriterini Edit’e yazıp “İlk Dosya” başlıklığını verdiğim düğmeyi tıkladığı zaman bulunacak ilk dosyanın adının ilk ListBox’a, tarih ve saat bilgisinin 2. ListBox’a yazılmasını sağlamak aşağıda verdiğim kodu yazdım. Bu kod sayesinde ilk dosyanın adı, tarih-saati ve büyüklüğü ListBox’lara aktarılır.
procedure TForm1.ilk_dosyaClick(Sender: TObject);
Var
Dosya : TSearchRec;
Begin
FindFirst(Edit1.Text, faAnyFile, Dosya);
ListBox1.Items.Add(Dosya.Name);
ListBox2.Items.Add(DateTimeToStr(FileDateToDateTime(Dosya.Time)));
ListBox3.Items.Add(IntToStr(Dosya.Size));
end;
FindFirst() metoduna 1. parametre olarak verilen klasör ve şartlara uygun birden fazla dosya varsa bir sonraki dosya hakkında bilgi edinmek için FindNext() metodu kullanılabilir. FindNext() metodu araka arkaya birden fazla kez kullanılarak ilgili klasördeki bütün dosyalar bulunabilir. C: sürücüsünün \Windows klasöründeki bütün EXE dosyaları ListBox’lara aktarmak için aşağıda verdiğim kodu hazırladım.
Var
Dosya : TSearchRec;
begin
FindFirst('C:\Windows\*.EXE', faAnyFile, Dosya);
Repeat
ListBox1.Items.Add(Dosya.Name);
ListBox2.Items.Add(DateTimeToStr(FileDateToDateTime(Dosya.Time)));
ListBox3.Items.Add(IntToStr(Dosya.Size));
Until FindNext(Dosya) <> 0;
FindClose(Dosya);
end;