Kako napraviti pretragu (FindFile)

1

Kako napraviti pretragu (FindFile)

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

Da li neko zna kako u delphiju da da napravim program pretrazuje txt fajlove?

Unapred hvala!

Dopuna: 27 Dec 2005 9:10

Za pretrazivanje txt fajlova u racunaru.


[mod by bobby] i opet kazem, pisi odgovarajuce naslove



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

function FindFiles(Directory: string; InclAttr, ExclAttr: Integer;   const SubDirs: Boolean; const Files: TStrings): Integer; var   SearchRec: TSearchRec; begin   Directory := IncludeTrailingPathDelimiter(Directory);   FillChar(SearchRec, SizeOf(SearchRec), 0);   if FindFirst(Directory + '*.*', faAnyFile, SearchRec) = 0 then   begin     try       repeat         if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then           if ((SearchRec.Attr and InclAttr > 0) or ((SearchRec.Attr = 0) and             (InclAttr <> faDirectory))) and             (SearchRec.Attr and ExclAttr = 0) then           begin             Files.Add(Directory + SearchRec.Name);             if SubDirs then               if SearchRec.Attr and faDirectory <> 0 then                 FindFiles(Directory + SearchRec.Name, InclAttr, ExclAttr,                   SubDirs, Files);           end;       until         FindNext(SearchRec) <> 0;     finally       FindClose(SearchRec);     end;   end;   Result := Files.Count; end;

Primer za koriscenje:procedure Trenamer_form.Button1Click(Sender: TObject); var   sl: TStringList;   include: integer;   exclude: integer;   subfolders: boolean;   rootfolder: string; begin   include := 0;   exclude := 0;   subfolders := false;   rootfolder := ShellTreeView1.path;   if checkbox1.Checked = true then   begin     Listbox1.Items.Add(rootfolder);     include := faDirectory;   end;   if checkbox2.Checked = true then     include := include or faAnyFile;   if checkbox3.Checked = true then     subfolders := true;   if checkbox3.Checked = false then     exclude := faDirectory;   sl := TStringList.Create;   begin     try       FindFiles(rootfolder, include, exclude, subfolders, sl);       Listbox1.Items.AddStrings(sl);     finally       sl.Free;     end;   end; end;
Gde je:
ListBox1 - ListBox na formi u kome ce nadjeni fajlovi da se pojave
CheckBox-ovi - CheckBox-ovi za opcije (da li da skenira i subfoldere itd...)
ShellTreeView - komponenta iz koje biramo u kom folderu ce biti uradjena pretraga



offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

Imam jednu dopunu na pitanje..
Folder sa fajlovima, u njemu dva subfoldera takodje sa fajlovima.
Treba uraditi sinhronizaciju sa serverom po <> velicini fajlova. Znaci pretraziti folder i sve fajlove poslati ukoliko se razlikuju. Znam kako da to uradim sa jednim folderom ali kako da mi program sam 'udje' u subfolder i da tamo odradi posao?

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

Da li i kako mogu da stavim txt fajlove u bazu podataka? Pa da pretrazujem txt fajlove u bazi.Na primer kada ukucam ime nekog txt fajla da ga otvori naprimer u RichEdit.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

@vujasoft
Gornja funkcija je rekurziona, tako da ako se parametar SubDirs postavi na true - ona pretrazuje i subdirektorijume.
Direktorijum se pojavljuje isto kao fajl kod FindFirst i FindNext funkcija, s tim sto ima atribut faDirectory.

@Licanin
Imas gore primer kako ces da liferujes spisak fajlova u ListBox, nista manje tesko nije da liferujes u bilo sta drugo.
Za ListBox mozes lako da uradis ucitavanje u RichEdit: Odradis onClick event, ispitas koja linija u ListBox-u je kliknuta, za tu liniju ispitas da li je fajl uz pomoc FileExists, pa ako jeste - onda ucitas fajl u RichEdit.

offline
  • Pridružio: 27 Jun 2005
  • Poruke: 36

probacu, tnx

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

Kako da napravim program koji pokazuje vreme i koji se na primer ugasi u 04:00:00 PM?

Dopuna: 09 Jan 2006 13:30

Kako da napravim da se naprimer u Label-u menajaju brojevi od 1 do 10 i kada kliknem na Button da se zaustavi na neki od tih brojeva?

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Mislim da bi ti stvarno pomogla delfi knjiga. Ovo bi znao da uradis posle trece lekcije

za pitanje 1:

stavis tajmer komponentu sa intervalom 1000 i na event-u on timer, napunis vreme u Lable i uradis jedan IF, pa ako je vreme = zeljeno vreme, uradis application.terminate ili sta vec hoces

za pitanje 2:
Ovo ti je sigurna putanja ka zaglavljivanju ako ne napravis kako treba... zato obrati paznju

while true do
begin

end;

ovo ce da vrti non-stop... unutar te petlje ces da uradis jedan FOR i:=1 to 10, da popunis label.caption sa IntToStr(i), i pozvaces funkciju Application.processMessages.
Bez ovoga ti se nece ispisati na ekranu jer petlja vrti umobolnom brzinom, pa ne stigne da se ekran osvezi, niti ce uspeti da ti uhvati event pritiska na dugme

moze i drugacije, ali ovo je cisto da naucis.
Postavlja se pitanje kako izleteti iz petlje "while true do"?

Mozes da kreiras jednu globalnu varijablu koju ces inicijalizovati na FALSE prilikom starta aplikacije (FormCreate)

Na event pritisak dugmeta, postavices tvoju varijablu na TRUE
i unutar while petlje proveris varijablu: IF varijabla THEN break;

To isto mozes da uradis ako stavis odmah uslov u while

WHILE NOT varijabla DO
....

offline
  • Pridružio: 19 Dec 2005
  • Poruke: 110
  • Gde živiš: S one strane Drine gde padaju mine!!!

Kako u delphi-ju da namestim da se umesto kilika na neki Button koristi neko slovo sa tastature?

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Izvini sto moram da opominjem, ali ukoliko imas nov problem koji se ne uklapa sa naslovom teme, zamolio bih te da otvoris novu temu.
Ovako kao sto sada radis je nepregledno za ostale korisnike, a narocito nezgodno za Pretragu foruma (Search).

Ko je trenutno na forumu
 

Ukupno su 1053 korisnika na forumu :: 37 registrovanih, 4 sakrivenih i 1012 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, A.R.Chafee.Jr., amaterSRB, avijacija, babaroga, Batinas, Battlehammer, Bobrock1, cavatina, Dannyboy, Denaya, DonRumataEstorski, Excalibur13, FOX, ILGromovnik, Jeremiah, Karla, kybonacci, Lieutenant, marsovac 2, Mercury, Mihajlo, milenko crazy north, Milija.00, milutin134, Oscar, pedja.st, robertino, Romibrat, SlaKoj, stalja, Trpe Grozni, vathra, Viktor Petrenko, wolverined4, zbazin, šumar bk2