HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Naplóállomány kezelő komponens készítése


Példaprogram letöltése

10013 bájt

Szoftverfejlesztés közben gyakori feladat, hogy alkalmazásunk tevékenységét naplózni kellene. Erre legegyszerűbb megoldás egy TXT típusú állomány, ahol soronként írunk be egy-egy eseményt, szükség esetén annak időpontjával együtt.
E gyakori feladat leggyorsabb megoldásaként célszerű egy olyan komponenst készíteni, mely ellátja ezt a feladatot, így csak egyszer van vele munkánk, utána már bármelyik alkalmazásunkban csak használni kell.

Kezdjük a komponens elkészítésével a megoldást. Ehhez válasszuk a File - New – Project menüpontot. A megjelenő ablakból a Visual C# elemei közül kattintsunk a Windows Control Library elemre. A project neve legyen LogLibrary.
Ekkor létrejön a kerete az alkalmazásunknak, benne alapértelmezés szerint egy UserControl1.cs-vel, melyben találunk egy olyan kontrolt, amely a UserControl-ból származik. Ez viszont nem felel meg a mostani megoldáshoz, mivel nekünk komponensre van szükségünk, mely Component-ből származik. Ezért a Solution Explorer-ben válasszuk ki a UserControl1.cs-t és töröljük, majd a Project – Add Component menüpont választásával adjunk a projekthez egy új komponenst LogComponent névvel.
A megvalósításhoz szükségünk lesz két property-re, mely a napló állomány nevét tárolja, valamint arról rendelkezik, hogy legyen-e automatikus dátum és időpont beírás minden egyes bejegyzéshez vagy sem.
E két property értékének tárolásához szükség van két változóra.
   private string FFileName;
   private bool FDateTime;
Ezt követően létrehozhatjuk a két property-t. LogFile névvel hozzuk létre az állomány nevet tartalmazó property-t.
    [Category("Log")]
    public string LogFile
    {
      get { return FFileName; }
      set { FFileName = value; }
    }
A következő lesz a logikai property, mely alapján a komponens eldönti, hogy kell-e dátumot és időt tárolni vagy sem.
    [Category("Log")]
    public bool AddDateTime
    {
      get { return FDateTime; }
      set { FDateTime = value; }
    }
Végül létrehozunk egy Append nevű függvényt, mellyel az új bejegyzést helyezhetjük el a napló állományba. Ennek paraméterként kell megadni azt a sztringet, mely a tárolandó esemény leírását takarja.
A TXT állomány kezeléséhez egy StreamWriter osztályt használunk. A konstruktorának első paramétereként az állomány nevét adjuk meg. A második paraméter igaz értéke esetén, ha már létezik a kérdéses állomány, akkor az hozzáírásra lesz megnyitva. Hamis érték esetén a létező állomány törlésre kerülne és egy új lenne létrehozva.
    public void Append(string message)
    {
      StreamWriter sw = new StreamWriter(FFileName, true);
Ha szükség van dátum és idő tárolására, akkor a StreamWriter osztály Write függvényével beírjuk ezt az adatot a TXT-be.
      if (FDateTime)
      {
        sw.Write(DateTime.Now.ToString("G") + ": ");
      }
Végül a WriteLine hívásával beírjuk a szükséges üzenet szövegét is, valamint egy új sor jelet, így a következő Append hívása már a TXT következő sorába ír.
      sw.WriteLine(message);
Legutolsó lépésként zárjuk a TXT állományt.
      sw.Close();
    }
Ezek után fordítsuk le a projektet, így létrejön a LogLibrary.dll.
Mielőtt most továbblépnénk és elkészítenénk a komponenst felhasználó teszt alkalmazást, előbb vegyük fel a komponenst a ToolBox valamely palettájára. Ehhez kattintsunk jobb gombbal a ToolBox-on és válasszuk a Customize ToolBox menüpontot. A megjelenő ablakban a .NET Framework Components lapon a Browse gombbal keressük meg a LogLibrary.dll-t. Kiválasztás után megjelenik a LogComponent a listában. Az előtte álló CheckBox-ot jelöljük ki, majd OK. Ezzel felvettük a komponenst a ToolBox-ra, most már bármelyik alkalmazásban használhatjuk azt.
Nyissunk egy új, Windows alkalmazás projektet, tegyünk fel egy LogComponent komponenst, állítsuk be igény szerint a FileName és AddDateTime property-jét, valamint helyezzük el a programban azokra a helyekre az Append függvény hívását, ahol erre csak szükség van.
      logComponent1.Append(textBox1.Text);



Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 292. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |