A program megkeresi azokat a fájlokat a Delphi (forrás) - szoftverek
Ebben a leírásban, akkor megnézzük az alapelveket a program szervezését keresési fájlokat. Kezdeni, hogy meghatározza, miért kell, hogy legyen. Például, ha szüksége van, amikor a program elindul, hogy egy adott könyvtárat, hogy átvizsgálja a jelenléte DOC fájlokat, és ha megnyitni őket szerkesztés vagy nyomtatás. És hogyan ez az ötlet: a háttér keresés a neten EXE fájlt, ha azt észleli, egy új változat, az automatikus frissítéseket.
Sokan ismerik a programot, ahol lehet keresni a fájlokat, fájlkereső szabályokat. A fájlok kereshetők fájlként parancsnokok (Norton, farkasok dos navigátor, fényszórók), így bármilyen operációs rendszert. A Windows operációs rendszer neve a fájl keresés párbeszéd „Start” - „Keresés” - „Minden fájl és mappa”. A megnyitott ablakban beállíthatja a feltétele a fájlt (a név a maszk), és a kezdeti keresési útvonal (könyvtár). Másrészt lapjaira párbeszédablak, akkor bontsa ki a keresés lehetőségét módosítás dátuma szerint tartalmazza a szöveg méretét.
Emlékezzünk a szabályokat megállapító fájlokat. Megadhatod a fájl nevét és a maszkot, ha a név ismeretlen vagy meg kell találni egy pár. Ie egy speciális keresési mintát, akkor szervezni mintavételi körülmények talált fájlokat. Azonnal mondom, ez a megállapítás is alkalmazható fájlokat és könyvtárakat. Nevezzük őket a fájlrendszer elemekkel. A maszk minta a kívánt elemek lehetnek:
- A betűk és számok a neve és kiterjesztése.
- * (Csillag, előjellel „többszörösen”), amely helyettesíti akárhány különböző betűk és számok a nevét vagy kiterjesztését.
- Symbol. (Kérdőjel), amely felváltja egy betű vagy szám a címben vagy a kívánt táguló elem.
Például, ha keres bármilyen szöveget kiterjesztésű fájlokat TXT. A fájl nevét meg kell beírni „* .txt” (írásbeli idézőjelek nélkül), és a rendszer megtalálja ezeket a fájlokat a megadott meghajtó vagy könyvtár. Ha meg kell találni az összes fájl nevével sperma, majd a fájl keresési mezőbe írjuk be „sperma. *”. Ha meg kell találni tárgyakat a harmadik levél k és t az első levél a kiterjesztés, akkor írja be az „?? k * .T *”. Itt a kérdőjel azt jelzi, bármilyen jellegű, a harmadik karakter a rendelés a k betű, a továbbiakban: fájlnév (könyvtár) állhat tetszőleges számú betűk és számok azt jelzik, hogy a csillag. A kiterjesztése az első betű t, majd ezt követően bármely meghosszabbítását.
Megjegyzés: A fájlok és könyvtárak Windows operációs rendszert keresett érzéketlen, azaz a kis- és nagybetűk nem különböztetünk meg.
Most úgy vélik a program megkeresi a fájlokat Object Pascal programozási nyelv.
Az egész szervezet keresési ciklus, azaz ez egy ciklus keresés folytatása, csökken:
- Beállítás keresési feltételeket. Ez a könyvtár, és a maszkot a kívánt elem vagy elemek, attribútumok az elem (ek). Ha megad keresési feltételek egyszerre van egy kereső az első megfelelő állapotban. Ez a funkció FindFirst.
- Folytatás kutatást a következő elem az első bekezdésben meghatározza azokat a feltételeket. Ez FindNext funkciót, és ennek oka lehet bármennyi alkalommal, amíg az összes fájlokat és könyvtárakat, amelyek megfelelnek a feltétel nem lesz megtalálható.
- Zárás a keresési és kiadása lefoglalt memória a rendszer keresést. FindClose csapat.
funkció FindFirst
ahol: Katalógus megtalálni és egy maszkot a kívánt elem - a húr érték string típusú lehet, például tartalmazza a „c :. \ *” - minden elemét a C meghajtó gyökérkönyvtárába Megjegyezzük, hogy a teljes elérési utat keresni.
Tulajdonságai a kívánt elem felhasználó vagy a rendszer attribútumokat, amely egy fájl (könyvtár lemez címke). Itt van egy lista róluk:
- faReadOnly - "read-only" fájlokat. Ez az attribútum be van állítva a fájlokat, hogy nem ajánlott módosítani, törölni. Ez az attribútum olyan fájlok, például rögzített CD-k.
- faHidden - rejtett fájlokat. Normális böngésző beállításait és utasító ezeket a láthatatlan fájlokat.
- faSysFile - Rendszer fájlokat.
- faVolumeID - Fájl lemez címke. Ez a neve elemnek lemezcím (maximum 11 karakter).
- faDirectory - könyvtár tulajdonság tulajdonság.
- faArchive - Rendszeres fájlt. Az alapértelmezett beállítás, hogy újra létre a fájlokat.
- faAnyFile - Ha be van állítva, mint egy attribútum a kívánt elemek, akkor a keresés az összes fenti tulajdonságokat.
Ha meg kell keresni csak elemek attribútum „könyvtár” és „rejtett”, akkor lehet alkalmazni a matematikai jele túl például faDirectory + faHidden.
Keresés típusú változó TSearchRec. Ebben, a sikeres keresés eredményeként, az összes szükséges adatot a megtalált fájl bejegyzés fog szerepelni.
Mivel FindFirst függvénye, meg kell vissza értéket is. Ez az érték Integer és az eredmény egy fájl kereső (Search hibakód). Ha a fájl, akkor nulla lesz.
funkció FindNext
Ez a funkció tovább folytatja a keresést meghatározott FindNext funkciót. Értékét adja vissza a találati (nulla esetén a sikeres keresés).
FindClose eljárás
Bezárja megtalálja és kiszabadítsa a memória mennyiségét a kereső rendszer.
Most tekintsünk egy példát. Tegyük fel, hogy meg kell találni a fájlok és könyvtárak a DELPHI könyvtár a C meghajtón a jövőben, akkor a saját, változó a maszk, változtassa meg a keresési feltételeket. Ahhoz, hogy egy része a ListBox1 és Button1 OnClick reakció a gombot:
A fenti példa kód, elvileg az alapja a szervezet mélyebb keresés, keresés a fájlok létrehozásáról, a szót tartalmazó. Ha ezt a programot egy, majd nyomja meg a gombot Button1 látni fogja a listán az első és a második sor elemek. „” és "..". Ezek olyan elemek, amelyek „könyvtár” attribútumot. Az első tartalmazza a linket a gyökér könyvtárat a merevlemez, akkor egy második kapcsolatot a legfelső szintű könyvtárába. A második megfelel a kör alakú kagyló, mint a Norton, ha úgy dönt, a könyvtár „..”, és nyomja meg az »ENTER« gombot. Így kap a könyvtár egy magasabb szintre. Természetesen a mi kereső program az ilyen elemek nem szükségesek ahhoz, hogy a listán, így figyelmen kívül hagyjuk a jelenlétét. Rögzítse a gombbal eljárást Button1 gomb:
Ebben az esetben, ha a könyvtár „” nevű vagy a neve „..”, a program továbbra is feldolgozza a keresési ciklus anélkül, hogy a nevét, a talált tárgy a komponens ListBox1.
Most tekintsük a típus TSearchRec. Ez számos hasznos funkcióval:
- Név - a név a megtalált könyvtár (file);
- Méret - A fájl mérete bájtban;
- Attr - az attribútumok a könyvtár (file);
- Time - időérték csomagolják, és könyvtár létrehozás dátuma (fájl).
Az összes fenti tulajdonságok már tekinteni, vagy pedig azonnal megértette, kivéve az ingatlanok Time. Azt a egész típusú, és tartalmaz egy értéket csomagolt fájl dátumát és idejét a teremtés. Kicsomagolás útján teszik FileDateToDateTime függvény, amely visszaadja eredményeként a dátum és idő értékét.
Most adjuk hozzá a mi formában DateTimePicher1 alkatrész (Win32 oldal), és én hozzá néhány sort.
Ahogy talán már észre, akkor válassza ki a fájlok és mappák dátum, kezdve a megadott komponens DateTimePicker1.
Most megpróbálunk megszervezni a keresést a fájlok minden alkönyvtárban. Ez nem olyan egyszerű, mint amilyennek látszik első pillantásra. Majd manuálisan kell szervezni a teljes input-output ciklus a katalógus, keresés fájlokat. Kicsit bonyolult dolog, de talán azoknak, akik már dolgoztak egy programozási nyelv pascal vagy mások ismerik többféle technológia és mnogovlozhennosti ugyanezt a kódot használja. Röviden ismertesse az algoritmus egy ilyen program.
- Beállítása az elsődleges keresési kifejezések, a keresés az első tételt.
- Ha a fájl, akkor nyomtassa ki és kezelje ennek megfelelően (a listában megjelenő, nyitott, törlés, stb.)
- Ha a könyvtár is található, akkor kezdődik egy új keresési eljárás. De a kód ugyanaz marad. Mi csak újra hívást, és lépnek ugyanarra a keresési eljárást.
- Kezeljék azonos módon, az összes befektetett ebbe a könyvtárba a fájlokat és könyvtárakat (Új keresés elindításához az észlelt könyvtárban).
- Ha az elemek egy alkönyvtárban már nem, a feldolgozási eljárások keresés a folyamat befejeződött, és kap belőle. Ugyanakkor találjuk magunkat ugyanazon a helyen, ahol és felhívta az eljárást. De ez volt az úgynevezett ugyanazon eljárást. Ezért a program fut tovább tovább visszatérés után.
Így, mivel a program fordul tekerjük, úgynevezett labdát, így megfordul, és mutasson. A program fut a teljesítményt minden alkönyvtára fa elvégzésével azonos darab kód! És míg az adatok keresési feltételek nem akadályozzák, és tárolja azokat az egyes egyedi folyamat.
Vegyünk egy példát. Hozzon létre egy új projektet. Ahhoz, hogy hozzon létre egy külön keresési eljárást, meg kell, hogy állapítsa meg a megfelelő szakaszban (manuálisan létrehozni, így és állapítsa meg magad).
Nyilvános sorban írják:
A részben a programkód a „vége”. helyezzen be egy üres váz eljárás
Az alakja betét alkatrész ListBox1 listában Button1, Edit1. Mert Edit1 komponens Text tulajdonság beállítása "c: \ delphi". Ügyeljen arra, hogy az utolsó karakter, a jel „”, amelynek jelenlétében a kezdeti keresési útvonal van szükség. További eljárás a OnClick Button1 gombot a következő:
Azért hoztuk létre manuálisan keresni az eljárást:
Ha Edit1 komponenst az eredeti file keresési kifejezés egy root mappát, mint például a „C:”, akkor kapsz egy teljes listát az összes fájlt a lemezen. Ügyeljen arra, hogy a fájlok keresési sebesség és a sebesség a programot.