[ CYber LinK @ 16.04.2005. 08:44 ] @
Evo imam jedan specifičan problem, naime radi seo preuzimanju podataka iz određenog foldera. Napravio sam malu mail aplikaciju koja bi trebala uzetu neke *.dbf datoteke iz foldera zipati ju i poslati na određeni mail. Ali kako da napravim da uzima određene filove koje ja kažem tj. u određenom vremenskom periodu. Npr. od 4-6.04.2005. a file-ovi počinju s D00504.*.dbf ?
[ sasas @ 16.04.2005. 08:52 ] @
Mogu ti pomoći FindFirst i FindNext funkcije. U helpu su super objašnjene...
Nešto što tebi treba (ako sam te dobro razumeo) bi izgledalo otprilike ovako:

Code:

procedure FindMyFiles;
var
  f: TSearchRec;
begin
  if FindFirst('c:\temp\D00504.*.dbf', faAnyFile, f) then
  begin
    repeat
      if (f.Time > NekiMinDatum) and (f.Time < NekiMaxDatum) then
      begin
        //whatever you want to do
      end;
    until FindNext(f) <> 0;
    FindClose(f);
  end;
end;


ss.
[ CYber LinK @ 16.04.2005. 09:26 ] @
Dobro to bi mi pomoglo ali kako bi to napravio uz pomoć "Date time picker" tj. da pomoću njih odaberem period i onda sam kliknem i on ih zipa. i šaljem ih negdje.



[ sasas @ 16.04.2005. 09:51 ] @
Code:

if (f.Time > NekiMinDatum) and (f.Time < NekiMaxDatum) then


u ovoj liniji zameniš 'NekiMinDatum' sa 'DateTimePicker1.Date', 'NekiMaxDatum' sa 'DateTimePicker2.Date' i to bi bilo to.

ss.
[ _v!rus_ @ 16.04.2005. 09:56 ] @
Pa stavi na formu dva dtPicker-a, i nazovi ih DtOd i DtDo. Zartik koristi sasin kod, samo prepravi NekiMinDatum u DtOd.Date i NekiMaxDatum u DtDo.Date. Ili mu pre celog bloka daj da je NekiMinDatum := DtOd.Date... . Moze i proveru dal li je DtOd < DtDo i kolika je razlika u danima (DtDo - DtOd), da ti korisnickom greskom ne napravi fajl > 20Mb. Sto se slanja tice zavisi sta ti treba: Moze sa Indy komponentama da saljes na ftp, ili da uspostavis TCP/IP konekciju direktno izmedju klijenta i servera, naravno, ukoliko su oba kompa istovremeno na nekoj mrezi (LAN, Internet...). Imas po netu, proguglaj malo, i gomilu biblioteka za arhiviranje, ne bi bilo lose zbog manjeg protoka i bolje provere gresaka pri transportu (sve arhive imaju CRC check), za svaki slucaj, da ga ne radis rucno.

A ustvari, ni ne treba ti nikakva biblioteka, uz pkzip i pkunzip.exe: Napravis bat fajl sa necim kao:
Code:

c:
cd MojProgram\Db
pkzip - a %1.zip %2.dbf

Pokrenes ga sa WinExec ili cime vec(pakuj.bat arhiva0103 dbxyz).
[ CYber LinK @ 16.04.2005. 13:55 ] @
Ne radi mi to, ne znam zašto....


?
[ Nemanja Avramović @ 16.04.2005. 13:57 ] @
malo nevezano za temu, ali opet ima veze ;)

@CYber LinK: kako saljes bilo sta na mail (naravno, direktno, ne koristeci Outlook ili sta vec)?

A za zipovanje ja koristim (Delphi6) VCL komponentu zvanu ZIPForge, i perfektno radi. Samo sto se tesko nalazi za download (ja sam je svojevremeno jedva nasao)...