dosya boyutu kontrolu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

dosya boyutu kontrolu

Mesaj gönderen sr1111 »

merhaba
asagidaki gibi bir kod yazdim. firma.dll bulunamsazsa program kapatilacak diye.

if FileExists('firma.dll')=false then begin
ShowMessage(Dosyasi bulunamadı!');
close;


1-istiyorum ki firma.dll boyutu 71.340 bytan farkli ise gene kapatilsin. bunun icin nasil bir komut verebilirim.
2-close ile tam olarak kapatilmiyor.
3-windir\system32\firma.dll gosteremedim. windir directory i nasil gosteririm.
Kullanıcı avatarı
hi_selamlar
Üye
Mesajlar: 523
Kayıt: 05 May 2005 03:24
Konum: DelphiTürkiye.COM

Re: dosya boyutu kontrolu

Mesaj gönderen hi_selamlar »

S.A.

Boyu tespiti.

Kod: Tümünü seç

Function FileSize(FileName : String) : Int64;
var
  SearchRec : TSearchRec;
begin
  if FindFirst(FileName, faAnyFile, SearchRec ) = 0 then                  // dosya mevcut ise
     Result := Int64(SearchRec.FindData.nFileSizeHigh) shl Int64(32) +    // boyutu hesapla
               Int64(SearchREc.FindData.nFileSizeLow)
  else
     Result := 0;
  FindClose(SearchRec);                                                   // arama sonu
end;

system dizin tesbiti

Kod: Tümünü seç

function GetSystemDir: TFileName;
var
  SysDir: array [0..MAX_PATH-1] of char;
begin
  SetString(Result, SysDir, GetSystemDirectory(SysDir, MAX_PATH));
  if Result = '' then
    raise Exception.Create(SysErrorMessage(GetLastError));
end;
:ara

kolay gelsin.
Herkes cahildir, bazi konularda.
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: dosya boyutu kontrolu

Mesaj gönderen sr1111 »

a.s
tesekkur ederim.
hocam bir de bu fonksiyonu nasil kullancagim bir ornek verirsen seivinirim.
dosya ismi ve boyutu belirterek.
eger firma.dll 7.345 kb den buyuk ve kucuk ise gibi


bir de sistemdir klasorune kopya etmek icin bir ornek kullanim icin

tekara tesekkur ederim.
Kullanıcı avatarı
CiTiZEN
Üye
Mesajlar: 1163
Kayıt: 06 Oca 2008 04:15

Re: dosya boyutu kontrolu

Mesaj gönderen CiTiZEN »

Bilmiyorum ama açıklayıcı olur umarım dosya boyutunu bir label e yazdırıp ordan şu şekilde kullanabilirsin

Kod: Tümünü seç

 if label1.caption<=380 byte then
 application.terminate 
UWESIS CORPORATION
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: dosya boyutu kontrolu

Mesaj gönderen khanco »

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);

 var
srFileSR: TSearchRec;
sFileName, sFileSize ,kfs: string;
kbfs: integer ;
kb: Currency;
begin
if OpenDialog1.Execute then
begin
sFileName := OpenDialog1.FileName;  // veya dosyanın yolu
FindFirst(sFileName,faAnyFile,srFileSR);
sFileSize := IntToStr(srFileSR.Size);
kbfs := (srFileSR.Size);
kb:=kbfs/1024;
kb:=RoundTo(kb,0);
kfs:=  FloatToStr(kb);
Showmessage('bayt olarak dosya boyu='+sFileSize+'  kb olarak dosya boyu=' + kfs);
if kb<> 7345 then  // burada  byte olarak bak kb de tutmayabilir.
//Application.Terminate;   // burayı aktif hale getirince kendini kapatır dosya boyu tutmazsa
ShowMessage('uygulama kapatılıyor');
 end
end;
buradaki örnek open dialogdaki dosya adının boyunu byte ve kb olarak veriyor tutmazsa uygulamayı kapatabilir mesaj yerine komutu çalıştırısan
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: dosya boyutu kontrolu

Mesaj gönderen sr1111 »

yardimlarin icin tesekkur ederim.

asagidaki satir hata verdi bende bu satiri iptal ettim. fakat byte ve kb olarak mesajda gosterilen her iki degeri girmeme ragmen programi kapatiyor. deger dogru ise kapatmamasi lazim. acaba bu satiri iptal ettigimden dolayi mi bir problem oluyor.

kb:=RoundTo(kb,0);
[Error] Unit3.pas(1190): Undeclared identifier: 'RoundTo'
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: dosya boyutu kontrolu

Mesaj gönderen khanco »

math unitine ihtiyaç duymuş olabilirmi.
sr1111
Üye
Mesajlar: 220
Kayıt: 06 Mar 2008 01:59

Re: dosya boyutu kontrolu

Mesaj gönderen sr1111 »

farkli bir yoldan hallettim tesekkur ederim yardimlariniz icin.
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: dosya boyutu kontrolu

Mesaj gönderen khanco »

sr1111 yazdı:farkli bir yoldan hallettim tesekkur ederim yardimlariniz icin.

nasıl çözdüğünü yazarsan daha iyi paylaşım olur daha sonra bakanlara ilave fikir verebilir.
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 183
Kayıt: 01 Oca 2008 05:34

Re: dosya boyutu kontrolu

Mesaj gönderen Commandx »

iki button 1 label ekleyip
kodları gerekli yerlere monte edin, dialoga gerek kalmaz

Kod: Tümünü seç

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if FileExists('firma.dll')=false then begin
ShowMessage('Dosyasi bulunamadı!');
end;
end;






procedure TForm1.Button2Click(Sender: TObject);
 var
srFileSR: TSearchRec;
sFileName, sFileSize ,kfs: string;
kbfs: integer ;
kb: Currency;
//begin
//if OpenDialog1.Execute then
begin
sFileName := pchar('firma.dll') ;//OpenDialog1.FileName;  // veya dosyanın yolu
FindFirst(sFileName,faAnyFile,srFileSR);
sFileSize := IntToStr(srFileSR.Size);
kbfs := (srFileSR.Size);
kb:=kbfs/1024;
//kb:=RoundTo(kb,0);
kfs:=  FloatToStr(kb);
label1.Caption:=sFileSize;
//Showmessage('bayt olarak dosya boyu='+sFileSize+'  kb olarak dosya boyu=' + kfs);
if kb<> 7345 then  // burada  byte olarak bak kb de tutmayabilir.
//Application.Terminate;   // burayı aktif hale getirince kendini kapatır dosya boyu tutmazsa
//ShowMessage('uygulama kapatılıyor');
//end
end;

end.
En son Commandx tarafından 27 Mar 2008 07:34 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: dosya boyutu kontrolu

Mesaj gönderen khanco »

merhaba
asagidaki gibi bir kod yazdim. firma.dll bulunamsazsa program kapatilacak diye


1 programın kapanması için Application.Terminate; satırı açık olmalı ben örnekte kapatmayı engelledim mesaj verdirdim.
2 open dialog bende dediğin isimde dosya olmadığından her hangi br uzantıya sahip tüm dosyalarda çalışıp çalışmadığını kontrol etmek için fazladan konulmuştu işlem için projede buna gerek yok.
3 yazdığın örnektede button1 de mesaj verdikten sonra Application.Terminate;satırı kullanmalısın .
4 projede bunlar butonla değil başlangıçta yapılmalı.

iyi çalışmalar.
Cevapla