1c bemutatója

Fájl = sozdatObekt ( "XBASE"); // létre egy hivatkozást a TXT fájl
Fayl.OtkrytFayl ( "catalog.dbf"); // nyissa meg a fájlt a lemezen
Fayl.KodovayaStranitsa (1); // a kódolás: 0 - ablakok, 1 - DOS

Ha Fayl.Otkryta () = 0, akkor // ellenőrizzük, hogy nyitni a fájlt nem sikerült
. Jelentés ( „Nem sikerült megnyitni a fájlt!”);
ENDIF;

Fayl.Pervaya (); // pozícionálja az első rekord
Míg Fayl.VKontse () = 0 // Hurok, amíg elérték a végén csavar ciklus
. NomerZapisi Fayl.NomerZapisi = (); // kap az aktuális rekord számát
. = Some_file.name A NazvTovara; // A mező értéke
. Ár = Fayl.PoluchitZnacheniePolya ( "ár"); // így Ön is, de egy kicsit lassabb
. Fayl.Sleduyuschaya (); // léphet a következő rekord
KonetsTsikla;

Fayl.Poslednyaya (); // pozícionálja az első rekord
Míg Fayl.VNachale () = 0 // Hurok, amíg elérték a kezdő twist ciklus
. = Some_file.name A NazvTovara;
. Ár = Fayl.PRICE;
. Fájlt. Előző (); // léphet az előző bejegyzés
KonetsTsikla;

Az n = 1 By Fayl.KolichestvoZapisey () // ciklus mind világos, véleményem
. Fayl.Pereyti (n); // helymeghatározás egy adott rekord
. = Some_file.name A NazvTovara;
. Ár = Fayl.PRICE;
KonetsTsikla;

Fayl.ZakrytFayl (); // ne felejtsük el,

Fájl = sozdatObekt ( "XBASE"); // létre egy hivatkozást a TXT fájl

// meghatározni a fájl szerkezetét
// szintaxist: DobavitPole (<Название>,<Тип>,<Длина>,<Точность>)

Fayl.DobavitPole ( "NAME", "S", 50,0);
Fayl.DobavitPole ( "Ár", "N", 10,2);

Fayl.SozdatFayl ( "catalog.dbf"); // Létrehozunk egy fájlt fizikailag

SprTovary.VybratElementy ();
Míg SprTovary.PoluchitElement () = 1 ciklus
. Fayl.Dobavit ();
. = Some_file.name A SprTovary.Naimenovanie;
. Fayl.UstanovitZnacheniePolya ( "Ár", SprTovary.Tsena) // is így, lehet;
. Fayl.Zapisat ();
KonetsTsikla;

Fayl.ZakrytFayl (); // ne felejtsük el,

Bízza DBF fájl szerkezetét

Például hozzon létre egy fájlt, amely azonos a szerkezete, hogy az eredeti.
// Ha ezt a módszert alkalmazzák OpisaniePolya amely visszaadja a terület jellemzői a megadott szám
// szintaxist OpisaniePolya (<НомерПоля>,<НазваниеПоля>,<Тип>,<Длина>,<Точность>)

File1 = SozdatObekt ( "XBASE");
File2 = SozdatObekt ( "XBASE");

Az n = 1 By Fayl1.KolichestvoPoley () Ciklus
. NazvPolya = "";
. Type = "";
. Hosszúság = 0;
. Acc = 0;
. Fayl1.OpisaniePolya (N, nazvPolya, típus, hossz, Acc);
. Fayl2.DobavitPole (nazvPolya, típus, hossz, ACC);
KonetsTsikla;

Együttműködik DBF fájlokat ismeretlen szerkezetű alábbi módszerek gyakran:
PoluchitZnacheniePolya (<ИмяПоля>);
UstanovitZnacheniePolya (<ИмяПоля>,<значение>);

Távoli számlák
DBF fájlok vannak elhelyezve oly módon, hogy az eltávolítása a felvétel nem fizikailag el kell távolítani a rekordokat a fájlból. A felvétel csak jelölve törlésre és figyelmen kívül hagyja a ciklussal. Így a fájl mérete ugyanaz marad. Annak érdekében, hogy fizikailag törli az összes bejegyzést törlésre megjelölt szükséges alkalmazni a tömörítési eljárások. beépített nyelvi eszközök lehetővé teszik, hogy működjön együtt az ilyen feljegyzések, hogy megérintse őket, sőt, hogy megszünteti a védjegy törlését.

Fayl.PokazyvatUdalennye (1);
Fayl.Pervaya ();
Míg Fayl.VKontse () = 0 Ciklus
. Ha Fayl.ZapisUdalena () = 1, akkor
. Fayl.Vosstanovit ();
. ENDIF;
. Fayl.Sleduyuschaya ();
KonetsTsikla;

Fayl.Pervaya ();
Míg Fayl.VKontse () = 0 Ciklus
. Ha Fayl.PRICE <1000 Тогда
. Fayl.Udalit ();
. ENDIF;
. Fayl.Sleduyuschaya ();
KonetsTsikla;

Fayl.Szhat (); // fizikailag törlésére

Törölheti az összes bejegyzést egy mozdulattal. Ugyanakkor azok fizikailag el kell hagyni, és nem lehet behajtani.
Fayl.OchistitVse ();

Érdemes megjegyezni a módszer törlése (), hogy törli az összes mezőt az aktuális rekordot. Attribútumok megfelelő mezőkbe a típus „string” erősítés értéke „üres sor” szám - 0, logikus - 0, - „üres” dátum.

Munka indexek

A szervezet elrendelő adatbázis fájl tartalmát, és keressük azt az értékét egy vagy több mezőt a mechanizmus az index használni. Alkalmazása lehet hasonlítani válogatás bejelentés egy adott funkció (jellemzők kombinációja). Ellentétben azonban a katalógusok, az adatbázis fájlt lehet több indexek, és így rendelhető egyidejűleg több okból. Indexek tárolása az index fájlt. Az index fájl tartalmazhat információt több, mint egy index. Ajánlott a DBF fájl egy index fájl, amely minden indexeit a fájlt.

Minden index van neve, jele az egyediségét az index szűrő kifejezést. elnevezni azonosítja az index. index és a szűrő kifejezések vannak írva egy speciális nyelven kifejezések, kiszámítja az értékét, amely az egyes bejegyzésekhez, hogy meghatározza a helyét a megrendelés során, és annak szükségességét, hogy forgalomba őket egy rendezett lista (index utalásokat tartalmazhat nem minden tábla rekordok, de csak körülbelül megfelelő kifejezése a szűrő). Egy egyedülálló index (amely egyedülálló tulajdonság be van állítva) lehetővé teszi, hogy egy referencia index a felvételi csak egy másik index értéke kifejezés.

Az alapvető szabály: szükségünk van egy index gyorsan keressük meg a kívánt bejegyzést.

Meg kell, hogy gyorsan megtalálja Komarov. A rendezetlen, hogy törekedjen a forrás fájl csak brute force az összes rekordot, hogy lesz egy nagyon hosszú idő egy nagy rekordok száma. Az index talált Komarov nagyon gyors lehet, mert az index rendezése utolsó mezőben. Ugyanakkor tisztában vagyunk a fizikai rekord sorszáma az DBF fájlt, és készítsen egy közvetlen pozicionálás a kívánt bejegyzést.

Miután létrehozta az adatbázis szerkezete, felveheti indexek a következők:
// szintaxist: DobavitIndeks (<Название>, <Выражение>, <Уникальность>, <Убывание>, <Фильтр>)

Fájl = SozdatObekt ( "XBase");
Fayl.DobavitPole ( "NAME", 1, 19, 3);
Fayl.DobavitPole ( "Ár", 2, 25, 0);
Fayl.DobavitIndeks ( "IDXCODE", "CODE", 1, 0, "");
Fayl.DobavitIndeks ( "IDXNAME", "NAME", 0, 0, "");
Fayl.DobavitIndeks ( "IDXNAMECODE", "NAME + CODE", 0, 0, "");
Fayl.SozdatFayl ( "mydb.dbf", "mydb.cdx");

// 1. lehetőség
Fayl.TekuschiyIndeks ( "IDXNAME");
Fayl.Nayti ( "Smith", 0); // érték kerül átadásra, és a keresési mód

// 2. lehetőség
Fayl.TekuschiyIndeks ( "IDXNAMECODE");
Fayl.Klyuch .name = "Smith";
Fayl.Klyuch .CODE = 123;
Fayl.NaytiPoKlyuchu (0);

// a baleset után ajánlott újra újraszabhatja indexek
Fayl.Pereindeksirovat ();

Hírek Fórum
Knights-éter elmélet

Kapcsolódó cikkek