Notandi:Dorikari/Skráarvinnsla

Hvernig á að lesa úr og skrifa í texta skrár breyta

Textaskrár bjóða upp á sameiginlega framsetningu sem bæði fólk og forrit geta lesið og skilið. .NET býður upp á hentuga klasa sem gera lestur og skrift í textaskrám mjög auðvelt. Eftirfarandi samhengi sýnir nauðsynleg undirstöðu skref til að vinna með textaskrá:

    1.  Opna skrána
    2.	Lesa/Skrifa í skrána
    3.	Loka skránni

Skrifa í textaskrá breyta

Listun 1: Skrifa texta gögn í skrá

  using System;
  using System.IO;
  namespace Text
  {
      class TextFileWriter
      {
          static void Main(string[] args)
          {
              // búa til og opna skrána
              StreamWriter sw = new StreamWriter("dagsetning.txt");
              // skrifa línu af texta í skrána
              sw.WriteLine(DateTime.Now);
              // loka straumnum
              sw.Close();
          }
      }
  }


Þetta forrit býr til textaskrá við keyrslu. Í möppunni þar sem keyranlega skráin er muntu finna skrá sem heitir dagsetning.txt. Ef þú skoðar innihald þessarar skráar muntu sjá dagsetningu og tímann þegar forritið var síðast keyrt:

           13.3.2007 14:58:08

Fyrsta verkið í listun 1 var að opna skrána. Það er gert með því að búa til nýtt tilvik af klasanum StreamWriter. Kallað var í nýja tilvikið af StreamWriter með einni færibreytu, sem segir til um nafnið á skránni sem á að skrifa í. Ef þessi tiltekna skrá er ekki til er einfaldlega búin til ný skrá fyrir okkur. Klasinn hefur einnig sex aðra færibreytusmiði sem hægt er að nota til að skilgreina skrána, sem búa á til, aðeins betur. Hérna er lína sem opnar skrána dagsetning.txt:

           StreamWriter sw = new StreamWriter("dagsetning.txt");

Með því að nota StreamWriter tilvikið, sw, er hægt að skrifa texta í skrána. Sýnidæmið að ofan skrifar dagsetningu og tíma dagsins í dag með þvi að nota DateTime.Now sem er statískur eiginleiki DateTime klasans:

           sw.WriteLine(DateTime.Now);

Þegar skrift í skrána er lokið, er nauðsynlegt að loka henni á eftirfarandi hátt:

           sw.Close();


Lesa úr textaskrá breyta

Listun 2: Lesa upplýsingar úr skrá

  using System;
  using System.IO;
  namespace Text
  {
       class TextFileReader
       {
           static void Main(string[] args)
           {
               // búa til reader og opna skrána
               StreamReader sr = new StreamReader("dagsetning.txt");
               // lesa eina línu af texta úr skránni
               Console.WriteLine(sr.ReadLine());
               // loka straumnum
               sr.Close();
           }
       }
  }

Í listun 2 er textaskráin opnuð á svipaðan hátt og gert var í listun 1, nema notaður er klasinn StreamReader til að búa til tilvikið. StreamReader klasinn inniheldur líkt og StreamWriter færibreytusmiði sem geta skilgreint hvernig skrána, sem á að opna ,aðeins betur. Forritið opnar skrána dagsetning.txt, sem ætti að vera í sömu möppu og keyranlega skráin fyrir forritið er:

           StreamReader sr = new StreamReader("dagsetning.txt");

Innan í setningunni Console.WriteLine() les forritið eina línu úr skránni með fallinu, sem er skilgreint innan í StreamReader klasanum, ReadLine(). StreamReader klasinn inniheldur einnig fleiri föll til að meðhöndla textaskrár, t.d. Read() en með því er hægt að lesa eitt eða fleiri tákn. Kóðinn sem les heila línu úr skránni:

           Console.WriteLine(sr.ReadLine());

Þegar lestri er lokið, skal loka skránni:

           sr.Close();

Samantekt

Þessi grein sýndi á einfaldan hátt hvernig á að lesa úr og skrifa í textaskrár í C#. Fyrir þá sem vilja frekari upplýsingar um StreamWriter og StreamReader klasana er bent á að kíkja á:

[1] [2]