Lucrul cu fișiere text
Lucrul cu fișiere text
Program și date
Fiecare program procesează date. Programul fără date, pur și simplu nu există. Aceste programe pot fi împărțite în trei grupe: de intrare, ieșire și intermediar. Date de intrare - acestea sunt date care sunt cunoscute și definite pentru a fi în măsură să rezolve problema. Output - este rezultatul soluționării problemei, datele sunt generate în procesul de rezolvare a problemei. De obicei, cele mai multe dintre datele sunt datele intermediare generate de cele mai multe programe vă în procesul de decizie și nu rezultatul de rezolvare a problemei.
Unde sunt intrările? Acestea pot fi stabilite de către utilizator în cursul rezolvării problemei. Putem presupune că în acest sluchchae dialog organizat de către utilizator și programul. Proiectele de dialog consola intsiatorom este programul. În Windows - inițiator al proiectului este utilizatorul.
Datele de intrare în unele cazuri, sunt stabilite în programul de la începutul activității sale. Programatorul este responsabil pentru crearea unor astfel de date.
În proiectele mari de software datele de intrare primite de la surse externe. Natura acestor surse pot fi diferite. Acest lucru poate fi datele stocate în memoria externă a computerului, datele provenind din rețeaua corporate sau de pe internet, acesta poate fi date provenind dintr-o varietate de dispozitive conectate la calculator.
Cea mai simplă formă de date stocate în memoria externă, fișierele sunt. Sursa de date mai complexă este o bază de date, este un sistem complex de fișiere organizat cu un sistem software care gestionează accesul la datele stocate.
Fișierul de programare este un set de elemente care sunt stocate în memoria externă. Elementele de fișiere sunt numite înregistrări.
Într-un context mai general al unui fișier numit colectat, o colecție legat de hârtii, documente. În limba engleză, una dintre sensurile cuvântului «fișier» - acest ac, care înțeapă controale, românul - fișier numit tata să dețină valori mobiliare.
Una dintre cele mai comune tipuri de fișiere în programare este un fișier text în care fiecare înregistrare este tratată ca un șir de text. Datele citite de pe consola, sau de ieșire la consolă, pot fi privite ca fișiere text pe care operațiunile de readline și WriteLine. Prima dintre aceste operațiuni, citiți următoarea intrare fișier - o linie de text. Al doilea - următoarea intrare în fișierul de înregistrări.
Creați un fișier text
Ai nevoie să vă amintiți o caracteristică importantă lucrează cu fișiere text în programare în C #. Fișierele text ar trebui să fie salvate în format UTF-8 (Unicode Text Format). Prin urmare, atunci când salvați un fișier pe care doriți să instalați codificarea corectă. Atunci când se lucrează în Notepad pentru a alege potrivirea tab-ul de codificare „Codificare.“ Atunci când se lucrează în mediul Visual înainte de a salva Totti in studia fișierul din meniul selectați File / Setări de codificare avansate ... În fereastra care se deschide, setați codificarea dorită.
Software-ul creează un fișier text, ia în considerare mai jos.
Deschiderea unui fișier text pentru citire
Să presupunem că fișierul text a fost creat. Cum pot citi înregistrarea acestui fișier în programul nostru de pe C #?
După terminarea citirii fișierului trebuie să fie închise și să elibereze resursa corespunzătoare.
Să aruncăm o privire mai atentă la procesul de lucru cu un fișier text într-un proiect de consolă. Primul pas este de a crea un proiect de consolă, de exemplu, cu numele ConsoleTextFile. În construirea secțiunea implicită de clasă program, adăugați o referință utilizând spațiul de nume
Spațiu IO (intrare / ieșire) spațiu de nume conține mai multe clase utile pentru lucrul cu fișiere.
În clasa program, declara un obiect de intrare, ceea ce reprezintă un fișier text pentru citire:
/// Fișierul de intrare pentru citire
intrare StreamReader statică;
Pentru a nu supraîncărca protsedry principal, realizată direct în ea toate lucrările asociate cu fișierul, vom împărți sarcina noastră în subactivități. Pentru fiecare sarcină, adresați-vă metoda și va apela aceste metode în procedura principală.
Primul pas este de a adăuga câteva linii în principal:
// fișier deschis pentru citire
Boolean găsit va fi setat la true, dacă fișierul ar putea deschide, și fals - în caz de eșec. Metoda OpenReadFile oferă fișier deschis. Iată cum arată:
/// calea către fișierul de intrare specificat în mod explicit
///
OpenReadFile bool statică ()
// Setați calea către directorul care stochează proiectul, și fișierul pentru citire
// Verificați existența unui fișier în directorul specificat
// Deschide un fișier text pentru citire
intrare = new StreamReader (cale);
Console.WriteLine ( «Fișierul este deschis pentru citire");
Console.WriteLine ( «eroare în calea fișierului de locuri de muncă"!);
StreamReader clasa constructor creează un obiect de intrare program și se conectează-l într-un fișier fizic. Această operațiune este de succes, în cazul în care calea către fișierul text este corect. Deoarece eroarea în această operațiune poate apărea destul de frecvent (un fișier este șters, mutat sau calea nu este validă), prevede verificarea existenței dosarului. Atunci când se testează o metodă statică a unei clase Exista File, returneaza true, în cazul în care există un fișier pentru calea specificată, false - dacă fișierul nu este prezent.
Programarea corectă necesită deschiderea unui fișier se realizează într-o unitate sigură, însoțită de catch-bloc mânere excepții care pot apărea atunci când eșecul operațiunii de a deschide fișierul.
procesarea de înregistrări fișier text
La procesarea înregistrărilor de fișiere se presupune că dosarul a fost deschis cu succes. De asemenea, presupunem că prelucrarea succesiv citite și prelucrate toate înregistrările de fișiere. Prima întrebare care apare este stocată în fișierul pentru a afla cât de multe înregistrări. Una dintre soluțiile utilizate în mod obișnuit astfel de probleme specifice olimpiadă la probleme de informatică sau examen, este faptul că prima intrare fișier conține un număr întreg care indică numărul de următoarele intrări în continuare. În acest caz, prima înregistrare, este clar cât de multe linii pe care doriți să citiți întregul fișier pentru procesare.
O altă metodă se bazează pe proprietățile EndOfStream, care are de intrare nostru obiect de clasă StreamReader. Aceasta este o proprietate boolean returnează adevărat atunci când sfârșitul fișierului, astfel încât este ușor de bucla:
Adăugați Main câteva linii de text:
// citit și prelucrarea fișierelor
Dacă fișierul este deschis cu succes, acesta poate fi citit și prelucrate și completate obrabotu ar trebui să închidă dosarul. Metoda ReadingFile efectuează citirea și procesarea fișierului. În acest exemplu, metoda este proiectat pur și simplu. Se presupune că fișierul este în prima linie conține numărul real de înregistrări. Prin urmare, prima linie este citit mai întâi, iar apoi devine o valoare cunoscută de n - numărul de înregistrări reale. În continuare, într-un ciclu de n rânduri sunt citite de fișiere. linie de prelucrare în acest caz, a concluzionat SWFI la consola. Iată textul metodei:
/// Citirea și fișierul de procesare
ReadingFile static void ()
// Prima linie conține un număr de linii ce se extind în continuare
pentru (int i = 0; i string curent = input.ReadLine (); // procesare scriere - ieșire la consolă. Să adăugăm în apelul principal o altă metodă NextReading, în care fișierul este deschis și re-prelucrate: // Redeschiderea fișierul și procesarea În această metodă, atunci când citiți fișierul va utiliza o buclă în timp. Aici este codul pentru această metodă: /// Citirea și fișierul de procesare NextReading static void () Console.WriteLine ( «Re-deschiderea și citirea unui fișier"); string curent = input.ReadLine (); // procesare scriere - ieșire la consolă. Software-ul creează un fișier text La fel ca atunci când se lucrează cu un fișier pentru citire, atunci când se lucrează cu un fișier text este necesar ca obiect înregistrarea obyavt programul corespunzător (un fișier), se leagă într-un fișier fizic, deschis pentru intrările și înregistrează numărul dorit de fișier înregistrări. Adăugați un program de ieșire clasă de obiecte câmp, specificați fișierul cu datele de ieșire, precum și alte obiecte care sunt utilizate atunci când se lucrează cu fișiere: /// fișier de ieșire pentru scriere ieșire StreamWriter statică; calea șir static; /// numărul de înregistrări într-un fișier - În procedura principală pentru a adăuga un apel de metodă se deschide fișierul pentru scriere: // Deschide fișierul pentru scriere Se înțelege că un fișier atunci când scrieți situația este diferită de cea a citirea fișierului. Se presupune că fișierul de citire fizică trebuie să existe la momentul descoperirii, în caz contrar se produce o eroare. Când deschideți un fișier de pe fișierul de înregistrare nu poate exista. În acest caz, ar trebui să fie stabilit fișierul fizic (încă gol), să-l lega la fișierul logic și deschis pentru scriere. Dacă fișierul există, și dorim să scrie pentru a scrie, atunci există două posibilități - șterge înregistrări vechi și începe să re-scrierea unui fișier sau pentru a adăuga o nouă intrare într-un fișier existent. Aici este metoda OpenWriteFile care ia în considerare aceste caracteristici: /// fișier inscriptibil. /// Dacă fișierul nu există, este creat /// Dacă fișierul există va fi suprascris OpenWriteFile static void () // Ia calea către directorul care stochează proiectul, și fișierul pentru scriere // Open pentru a adăuga înregistrări la sfârșitul fișierului // ieșire = new StreamWriter (cale, true); // Deschideți fișierul text, intrările vechi sunt eliminate ieșire = new StreamWriter (cale); // Crearea unui fișier text pentru a scrie în fișierul ieșire = new StreamWriter (cale, true); Console.WriteLine ( «fișier deschis pentru scriere"); Arătăm acum un exemplu simplu despre cum să adăugați elemente la un fișier. Introduceți câteva rânduri în procedura principală: Procedura WritingFile scrie la dosar: WritingFile static void () // Prima linie conține un număr de linii ce se extind în continuare pentru (int i = 0; i string curent = (10 * i) .ToString (); Console.WriteLine (ieșire «Fișier scris cu succes"); Fișierele ca resursele sistemului de operare. resurse de lansare Este clar că același fișier poate fi utilizat în diferite programe. Este probabil să apară atunci când mai multe programe simultane care rulează pe calculatorul dumneavoastră va necesita același fișier. Sistem de operare (OS) a computerului reglementează accesul programe diferite într-un fișier, permițându-vă pentru a evita conflictele în timp ce scris sau citit. În cazul în care sistemul de operare furnizează un fișier aplicație, accesul la dosar este blocat AJ toate celelalte programe. La rândul său, programul a terminat cu un fișier, ar trebui să elibereze resursa, notificând sistemul de operare că fișierul este gratuit și poate fi dat la un alt program. Adăugați la sfârșitul procedurii principale două linii osovobozhdayuschie resurse: Rezultatele proiectului Fig. 1 Rezultatele ConsoleTextFile de lucru al proiectului Descărcați curs poate fi pe link-ul următor: