Ĺadny brzuch
Jak sprawdzić rozmiar folderu (wraz z plikami) i ilośc plików znajdujących się w tym folderze??
Jak sprawdzić rozmiar folderu (wraz z plikami) i ilośc plików znajdujących się w tym folderze?? Co za problem: wyszukujesz wszystkie pliki z katalogu i jego podkatalogów i dodajesz ich rozmiary :) Szukanie plików było wiele razy, poszukaj!
Więc chce wyszukać te pliki. Pod słowem Type wklejam kod:
TSearchRec = record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData;
przy kompilacji wyskakuje mi błąd:
"expected ':' but '=' found" - o co biega? :blink:
{$R *.dfm} var TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end;
albo
type TForm1 = class(TForm) private { Private declarations } public TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; end;
albo
[code] type TForm1 = class(TForm) private TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; public end;
Użytkownik Private edytował ten post 05 sierpień 2006, 12:27
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
mozna zadeklarowac zmienna jako rekord, np:
var bleeh: record s: string; i: integer; end; begin bleeh.s := ''; bleeh.i := 0;
Ale rozkminki :Pvar rozmiar:int64; function RozmiarKat(dir:string):cardinal; var w:win32_find_data; f:integer; begin f:=FindFirstFile(pchar(dir+'\*.*'),w); if f>0 then while FindNextFile(f,w) do begin if (w.cFileName[0]='.')and(w.cFileName='..') then continue; if w.dwFileAttributes and faDirectory>0 then RozmiarKat(dir+'\'+w.cFileName); inc(rozmiar,w.nFileSizeLow); end; end; procedure TForm1.Button1Click(Sender: TObject); begin rozmiar:=0; rozmiarkat('c:\katalog'); caption:=inttostr(rozmiar); end;
Użytkownik Cyrkiel edytował ten post 05 sierpień 2006, 14:25
[...]
Dobra, ale w kodzie Private'a przed deklaracja bylo type- w tym przpadku nalezy uzyc = ;)
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
To spróbuj postawić zobaczymy co kompilator powie, bo mnie usilnie próbował wmówić ze oczekuje : a nie =
Chyba ze chodzi Ci o wstawianie bezpośrednio po type wtedy tak
Użytkownik Private edytował ten post 05 sierpień 2006, 15:05
To spróbuj postawić zobaczymy co kompilator powie, bo mnie usilnie próbował wmówić ze oczekuje : a nie =
Chyba ze chodzi Ci o wstawianie bezpośrednio po type wtedy tak
Nie musi byc bezposrednio po type, miedzy type, a wlasciwa deklaracja moga byc deklaracje innych klas lub rekordow. A dlaczego kazal ci wstawic dwukropek to nie wiem, pewnie cos robisz nie tak- pokaz kod to zabaczymy.
To jest dobrze, bo w sekcjach private i public nie może byc : po recordzie
type TForm1 = class(TForm) private { Private declarations } public TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; end;
To tez jest dobrze bo poza sekcjami private i public, a po type po recordzie ma byc =
type TSearchRec = record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; TForm1 = class(TForm) private { Private declarations } public { Private declarations } end;
Użytkownik Private edytował ten post 05 sierpień 2006, 15:50
Bo w deklaracji klasy deklaracja rekorda jest traktowana jako zmienna, to tak jak bys wstawil po var ;) (patrz: post migajka)
aha rozumiem (czyt: staram się) ^_^
dzieki za info
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Jak sprawdzić rozmiar folderu (wraz z plikami) i ilośc plików znajdujących się w tym folderze?? Co za problem: wyszukujesz wszystkie pliki z katalogu i jego podkatalogów i dodajesz ich rozmiary :) Szukanie plików było wiele razy, poszukaj!
Więc chce wyszukać te pliki. Pod słowem Type wklejam kod:
TSearchRec = record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData;
przy kompilacji wyskakuje mi błąd:
"expected ':' but '=' found" - o co biega? :blink:
{$R *.dfm} var TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end;
albo
type TForm1 = class(TForm) private { Private declarations } public TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; end;
albo
[code] type TForm1 = class(TForm) private TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; public end;
Użytkownik Private edytował ten post 05 sierpień 2006, 12:27
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
mozna zadeklarowac zmienna jako rekord, np:
var bleeh: record s: string; i: integer; end; begin bleeh.s := ''; bleeh.i := 0;
Ale rozkminki :Pvar rozmiar:int64; function RozmiarKat(dir:string):cardinal; var w:win32_find_data; f:integer; begin f:=FindFirstFile(pchar(dir+'\*.*'),w); if f>0 then while FindNextFile(f,w) do begin if (w.cFileName[0]='.')and(w.cFileName='..') then continue; if w.dwFileAttributes and faDirectory>0 then RozmiarKat(dir+'\'+w.cFileName); inc(rozmiar,w.nFileSizeLow); end; end; procedure TForm1.Button1Click(Sender: TObject); begin rozmiar:=0; rozmiarkat('c:\katalog'); caption:=inttostr(rozmiar); end;
Użytkownik Cyrkiel edytował ten post 05 sierpień 2006, 14:25
[...]
Dobra, ale w kodzie Private'a przed deklaracja bylo type- w tym przpadku nalezy uzyc = ;)
Private: przed record stawia sie = a nie : <_<
Zapomniales enda na koncu ;p Tak w ogole to nie wydaje mi sie, aby byla ta deklaracja potrzeba.
To spróbuj postawić zobaczymy co kompilator powie, bo mnie usilnie próbował wmówić ze oczekuje : a nie =
Chyba ze chodzi Ci o wstawianie bezpośrednio po type wtedy tak
Użytkownik Private edytował ten post 05 sierpień 2006, 15:05
To spróbuj postawić zobaczymy co kompilator powie, bo mnie usilnie próbował wmówić ze oczekuje : a nie =
Chyba ze chodzi Ci o wstawianie bezpośrednio po type wtedy tak
Nie musi byc bezposrednio po type, miedzy type, a wlasciwa deklaracja moga byc deklaracje innych klas lub rekordow. A dlaczego kazal ci wstawic dwukropek to nie wiem, pewnie cos robisz nie tak- pokaz kod to zabaczymy.
To jest dobrze, bo w sekcjach private i public nie może byc : po recordzie
type TForm1 = class(TForm) private { Private declarations } public TSearchRec : record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; end;
To tez jest dobrze bo poza sekcjami private i public, a po type po recordzie ma byc =
type TSearchRec = record Time: Integer; Size: Integer; Attr: Integer; Name: TFileName; ExcludeAttr: Integer; FindHandle: THandle; FindData: TWin32FindData; end; TForm1 = class(TForm) private { Private declarations } public { Private declarations } end;
Użytkownik Private edytował ten post 05 sierpień 2006, 15:50
Bo w deklaracji klasy deklaracja rekorda jest traktowana jako zmienna, to tak jak bys wstawil po var ;) (patrz: post migajka)
aha rozumiem (czyt: staram się) ^_^
dzieki za info