Delphi segítség

Nem egy ismerős helyzet? Biztosítani kell, hogy a program keressen egy fájlt. Rendben, ha van egy különleges összetevője ehhez (az úton, amely nem szerepel a szabványkészletben). És ha nem? Itt van szükség fájlkeresési algoritmus írására.

A Delphi-ben két funkció van a fájlok kereséséhez. Ez -

függvény FindFirst (const Pálya: string; Attr: Integer; var F: TSearchRec): Integer;
function FindNext (var F: TSearchRec): Integer;

Meg fogjuk érteni, mit jelentenek ezek a funkciók. Először tegye meg az elsőt - FindFirst. Először a változókkal foglalkozunk.

A Path egy változó, amint azt a név is sugallja, és megjeleníti azt a könyvtárat, amelybe a fájlt keresik. Ezenkívül ez a változó tartalmazza a talált fájl (ok) nevét is. És a fájlnévben használhatja ezeket a szimbólumokat: * (csillag) és. (kérdőjel). Ezeknek a szimbólumoknak az értékei standardok: a kérdőjel minden érvényes karakter, a csillag az érvényes karakterek kombinációja. Engedélyezett karakterek esetén megértem azokat az karaktereket, amelyeket az operációs rendszerben használhatsz fájlnevek kijelöléséhez.

Példa a Path változó használatára:

Figyelj! A * és a. a könyvtár nevében. Ezek a karakterek csak a fájlnévben használhatók.

Attr - ez a változó meghatározza a talált fájlok típusát. A változó típusa Integer. Annak érdekében, hogy ne szenvedjen a számok memorizálásától, javaslom, hogy ne felejtsd el a következő szavakat:

faReadOnly - olyan fájlok, amelyek "csak olvasható" attribútummal rendelkeznek.
faHidden - a "Rejtett" attribútum készleteket tartalmazó fájlok.
faSysFile - a "Rendszer" attribútum beállításait tartalmazó fájlok.
faArchive - olyan fájlok, amelyek rendelkeznek az "Archive" attribútummal.
fa könyvtár - könyvtár. Ez azt jelenti, hogy alkönyvtárakat keres a könyvtárban.
faAnyFile - bármilyen fájl (beleértve az faDirectory és a faVolumeID) fájlt.

Most ezeket a szavakat számokként lehet kezelni - hozzáadni őket, és kivonni. Például:

Vegyük azonban figyelembe, hogy a kivonás során az eredmény kiderülhet, hogy kissé váratlan, ezért jobb, ha nem használják vissza.

Most lássuk, mi a funkció. A függvény 0 értéket ad vissza, ha sikeres volt, vagy egyébként a hibakódot. Ezenkívül, ha a függvény egy olyan fájlt talál, amely kielégíti mind a Path változó feltételeit, mind az Attr változó feltételeit, akkor az eredményt az F változóra (a TSearchRec-típusra) írja, amelyet természetesen a Var parancsnak kell nyilvánítania.

A TSearchRec típus a következőképpen ábrázolható:

írja be a TSearchRec = Rekordot
Idő: egész;
Méret: egész;
Attr: Integer;
Név: TFileName;
ExcludeAttr: Integer;
FindHandle: THandle;
FindData: TWin32FindData;
végén;

Most nézzük meg, hogy mi a FindNext függvény.

Ha a FindFirst parancs megtalált egy fájlt, akkor talán, ha a fájl neve * és / vagy szimbólumokkal van megadva. van egy vagy több fájl, amely megfelel a keresési feltételnek. Ebben az esetben a FindNext parancsot használják. A funkció akkor is 0 értéket ad vissza, ha sikeres volt, vagy egyébként a hibakódot. És azt is írja az adatokat az F. változóra

Most, ismerve a két parancsot, akkor is összeállíthat egy algoritmust a megadott fájl megtalálására.

Vegye figyelembe a FindClose eljárást. Megszabadítja a FindFirst és a FindNext függvények memóriáját.

Kapcsolódó cikkek