Munka szöveges fájlok
Munka szöveges fájlok
Programot és az adatokat
Mindegyik program adatokat dolgoz fel. Program adatok nélkül egyszerűen nem létezik. Ezek a programok is három csoportba sorolhatók: bemenet, kimenet és a köztes. Bemeneti adatok - ezek olyan adatok, amelyek ismertek és meghatározni annak érdekében, hogy képes legyen megoldani a problémát. Output - ez az eredménye a probléma megoldásának, az adatok keletkezett a folyamat a probléma megoldásának. Általában, a legtöbb adat a közbenső által generált adatok legtöbb programok a döntési folyamatban, és nem az eredmény a probléma megoldásának.
Hol vannak a bemenetek? Ezek a felhasználó által beállítható során a probléma megoldásának. Azt is feltételezhetjük, hogy ebben sluchchae szervezett párbeszéd a felhasználó és a program. A konzol projektek intsiatorom párbeszéd a programot. Windows - projekt kezdeményezője a felhasználó.
A bemenő adatok bizonyos esetekben vannak beállítva a program a kezdetektől a munkáját. A programozó felelős létre ezeket az adatokat.
A nagy szoftver projektek a bemenő adatok külső forrásokból érkezik. A természet e források eltérő lehet. Ez lehet a tárolt adatok a számítógép külső memória, az érkező adatokat a vállalati hálózaton vagy az interneten, akkor érkező adatokat különféle eszköz is csatlakozik a számítógéphez.
A legegyszerűbb formájában tárolt adatokat külső memória, a fájlok. Bonyolultabb adatforrás egy adatbázis, egy komplex szervezett fájlrendszer egy szoftver rendszer, amely kezeli a hozzáférést a tárolt adatokat.
A programozó fájl egy sor olyan elemet, amely tárolja a külső memória. Fájl elemet nevezzük rekordokat.
Egy általánosabb összefüggésben nevű fájlban összegyűjtött kötött gyűjteménye papírok, dokumentumok. Az angol, az egyik értelemben a szó «File» - ez a tű, ami megszúrja ellenőrzések magyarul - nevű fájlt apuka tartani értékpapírok.
Az egyik leggyakoribb típusú fájlokat programozás egy szöveges fájl, amelyben minden bejegyzés kezelik szöveg. A leolvasott adatok a konzol, vagy a kimenetet a konzol lehet tekinteni, mint a szöveges fájlokat, amelyek a műveletek ReadLine és WriteLine nevû. Az első ilyen művelet, olvassa el a következő fájl bejegyzés - egy sort. A második - a következő bejegyzést a rekordok fájlt.
Hozzon létre egy szöveges fájlt
Meg kell emlékezni egy fontos funkció működik szöveges fájlokat programozás C #. Szöveges fájlokat kell menteni az UTF-8 (Unicode Text Format). Ezért, ha menteni kívánt fájlt telepíti a megfelelő kódolást. Amikor dolgozik Notepad választani megfelelő kódolás fülre „kódolás”. Amikor dolgozik a Visual sudio környezet előtt mentse a fájlt a menüből válasszuk a Fájl / Haladó kódolási beállítások ... A megnyíló ablakban állítsa be a kívánt kódolást.
A program létrehoz egy szöveges fájlt, úgy lent.
Megnyitása egy szöveges fájlt olvasásra
Tegyük fel, hogy a szöveges fájl jött létre. Hogyan olvashatom el a rekordot ezt a fájlt a program C #?
Befejeződése után a fájl olvasása kell zárni, és engedje szabadon a megfelelő erőforrást.
Vessünk egy közelebbi pillantást a folyamatot, egy szöveges fájlt egy konzol projekthez. Az első lépés, hogy hozzon létre egy konzol projekthez, például a nevét ConsoleTextFile. Az építési alapértelmezett Program osztály részén, adjunk hozzá egy hivatkozást a névtér
Tér IO (Input / Output) névtér tartalmaz sok hasznos val dolgozó osztályokat fájlokat.
A Program osztály, állapítsa meg az objektum bemenet, ami egy szöveges fájlt olvasásra:
/// A bemeneti fájlt olvasásra
statikus StreamReader bemenet;
Annak érdekében, hogy ne terhelje túl a protsedry Main, végre közvetlenül, hogy minden munkát társított fájl elosztjuk a feladatunk a részfeladatokat. Minden egyes feladat, kérdezze meg a módszer, és hívja ezeket a módszereket a Fő eljárást.
Az első lépés az, hogy adjunk egy pár sort a Main:
// Fájl megnyitása olvasásra
Logikai talált lesz állítva igaz, ha a fájl megnyitásához, és hamis - meghibásodás esetén. OpenReadFile módszer fájl megnyitása. Itt van, hogyan néz ki:
/// útvonal a bemeneti fájl kifejezetten megadva
///
statikus bool OpenReadFile ()
// Állítsa be a könyvtár elérési útját, amely tárolja a projekt, és a fájlt olvasásra
// Ellenőrizze, hogy létezik egy fájl a megadott könyvtárban
// Nyisson meg egy szöveges fájlt olvasásra
bemeneti = új StreamReader (path);
Console.WriteLine ( «A fájl megnyitásakor olvasásra");
Console.WriteLine ( «hiba a feladat fájl elérési útját!");
StreamReader osztály konstruktor létrehoz egy program objektum bemenet, és összeköti a fizikai fájl. Ez a művelet sikeres, ha az utat, hogy a szöveges fájl helyes. Mivel a hiba ebben a műveletben is előfordulhat meglehetősen gyakran (a fájl törlődik, mozgatni vagy elérési út nem érvényes), ez biztosítja meglétének ellenőrzése a fájl. Amikor azt vizsgáljuk, egy statikus metódust egy osztály létezik fájl, igazat ad vissza, ha a fájl létezik a megadott útvonalon, a hamis - ha a fájl nem áll fenn.
Helyes programozás igényli fájl megnyitása végezzük egy biztonságos egységet, amelyhez a catch blokk kezeli a kivételeket, amelyek akkor jelentkeznek, amikor a hiba a művelet, hogy nyissa meg a fájlt.
bejegyzések feldolgozása szövegfájlt
Ha a fájl feldolgozása bejegyzések azt feltételezzük, hogy a fájl megnyitása sikerült. Azt is feltételezzük, hogy a feldolgozás során egymás után olvasni és feldolgozni az összes fájlt rekordokat. Az első kérdés, ami felmerül az a fájlban tárolt, hogy megtudja, hány rekordot. Az egyik általánosan használt megoldások, mint sajátos Diákolimpia problémák a számítástechnikában vagy vizsga problémák, az, hogy az első fájl bejegyzés tartalmaz egy egész számát jelző további következő bejegyzéseket. Ebben az esetben az első rekord, egyértelmű, hogy hány sort szeretne olvasni a teljes fájlt feldolgozásra.
Egy másik módszer azon alapul tulajdonságai EndOfStream, amely a tárgy StreamReader osztály bemenet. Ez egy logikai tulajdonság igaz értékkel tér vissza, ha a végén a fájl, így könnyen hurok:
Add a Fő pár sornyi szöveget:
// olvasni és fájl feldolgozása
Ha a fájl sikeresen kinyitotta, hogy el lehet olvasni és feldolgozni és befejezett obrabotu kellene zárni a fájlt. ReadingFile eljárás végrehajtja az olvasás és a fájl feldolgozása. Ebben a példában, a módszer célja egyszerűen. Feltételezzük, hogy a fájl első sorában tartalmazza az aktuális rekordok száma. Ezért az első sorban olvassuk először, majd lesz ismert érték az n - tényleges száma rekordokat. Ezután egy ciklus n sorból olvassuk fájlt. Feldolgozó vonal ebben az esetben arra a következtetésre jutott SWFI a konzolra. Itt a szöveg a módszer:
/// Reading és fájl feldolgozása
static void ReadingFile ()
// Az első sor tartalmaz számos további kiterjesztése vonalak
A (int i = 0; i string áram = input.ReadLine (); // write feldolgozás - kimenet a konzolra. Adjuk hozzá a Fő hívást egy másik módszert NextReading, amelyben a fájl újra megnyitotta és feldolgozott: // újranyitása a fájlt és feldolgozás Ebben az eljárásban, ha a fájl olvasása fogja használni a while ciklus. Itt van a kód ezt a módszert: /// Reading és fájl feldolgozása static void NextReading () Console.WriteLine ( «Re-nyílás és az olvasás a fájl"); string áram = input.ReadLine (); // write feldolgozás - kimenet a konzolra. A program létrehoz egy szöveges fájlt Csakúgy, mint amikor dolgozik egy fájlt olvasásra, amikor dolgozik egy szöveges fájl szükséges felvételi obyavt megfelelő program objektum (fájl), a link, hogy a fizikai fájl, nyitott a bejegyzések és rögzítse a kívánt rekordok száma fájlt. Mező hozzáadása objektum osztály Program kimenet, adja meg a fájl a kimeneti adatok, valamint egyéb tárgyakat, amelyek használják, amikor dolgozik fájlokat: /// kimeneti fájl írásra statikus StreamWriter kimenet; statikus karakterlánc útvonal; /// rekordok száma egy fájlban - A Fő eljárást az eljárás hívás megnyitja a fájlt írásra: // Fájl megnyitása írásra Magától értetődik, hogy a fájl írásakor a helyzet eltér a fájl olvasása. Azt feltételezik, hogy a fizikai olvasási fájl nem létezik idején a felfedezés, különben hiba történik. Amikor megnyit egy fájlt a felvétel fájl nem létezik. Ebben az esetben a fizikai fájl (még üres) kell létrehozni, hogy a link, hogy a logikai fájl és nyitott az íráshoz. Ha a fájl létezik, és azt akarjuk, hogy írjon levelet, akkor két lehetőség van - régi rekordok törlése, és indítsa újra írás egy fájl vagy egy új bejegyzést egy meglévő fájlt. Itt OpenWriteFile módszer, amely figyelembe veszi ezeket a funkciókat: /// írható fájlt. /// Ha a fájl nem létezik, akkor létrejön /// Ha a fájl létezik felülírja static void OpenWriteFile () // A könyvtár elérési útját, amely tárolja a projekt, és a fájl írásra // Nyitott hozzá rekordokat a file végére // kimenet = new StreamWriter (path, true); // A szöveges fájl, a régi bejegyzéseket eltávolítjuk kimenet = új StreamWriter (path); // Létrehozunk egy szöveges fájlt írni a fájlba output = new StreamWriter (path, true); Console.WriteLine ( «fájlt megnyitni írásra"); Mi most azt mutatják, egy egyszerű példát, hogy hogyan lehet elemeket hozzáadni egy fájlt. Tegyen be egy pár sort a Fő eljárás: WritingFile eljárást ír a fájlba: static void WritingFile () // Az első sor tartalmaz számos további kiterjesztése vonalak A (int i = 0; i string áram = (10 * i) .ToString (); Console.WriteLine ( «A fájl kimeneti sikeresen írt"); Fájlokat az operációs rendszer erőforrásait. Release erőforrások Egyértelmű, hogy ugyanaz a fájl lehet használni a különböző programokat. Valószínű, hogy fordulhat elő, ha egyszerre több program fut a számítógépen lesz szükség ugyanabban a fájlban. Operációs rendszer (OS) a számítógép szabályozza a hozzáférést a különböző programok egy fájlt, amely lehetővé teszi, hogy elkerüljék a konfliktusokat, míg írás, olvasás. Amikor az operációs rendszer biztosítja fájlt egy alkalmazás, az iratbetekintés blokkolva AJ minden más programot. A maga részéről a program befejezte a fájl kell felszabadítani az erőforrást, a bejelentő az operációs rendszer, hogy a fájl szabad és lehet adni egy másik program. Add, hogy a végén az eljárás főbb két sor osovobozhdayuschie források: A projekt eredményeit Ábra. 1 Az eredmények a projekt munka ConsoleTextFile Töltse az előadás lehet a következő linken: