25.07.2017 Views

Intro-CSharp-Book-v2015

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Глава 15. Текстови файлове 637<br />

Примерът демонстрира четене от файл и печатане на съдържанието му на<br />

конзолата. Ако случайно сме объркали името на файла или сме изтрили<br />

файла, ще бъде хвърлено изключение от тип FileNotFoundException. В catch<br />

блок прихващаме този тип изключение и ако евентуално такова възникне,<br />

ще го обработим по подходящ начин и ще отпечатаме на конзолата<br />

съобщение, че не може да бъде намерен такъв файл. Същото ще се случи<br />

и ако не съществува директория с името "somedir". Накрая за подсигуряване<br />

сме добавили и catch блок за IOException. Там ще попадат всички<br />

останали входно-изходни изключения, които биха могли да настъпят при<br />

работата с файла.<br />

Текстови файлове – още примери<br />

Надяваме се теоретичните обяснения и примерите досега да са успели да<br />

ви помогнат да навлезете в тънкостите при работа с текстови файлове. Сега<br />

ще разгледаме още няколко по-комплексни примера с цел да затвърдим<br />

получените до момента знания и да онагледим как да ги ползваме при<br />

решаването на практически задачи.<br />

Брой срещания на подниз във файл – пример<br />

Ето как може да реализираме проста програма, която брои колко пъти се<br />

среща даден подниз в даден текстов файл. В примера нека търсим подниз<br />

"C#", а текстовият файл има следното съдържание:<br />

sample.txt<br />

This is our "<strong>Intro</strong> to Programming in C#" book.<br />

In it you will learn the basics of C# programming.<br />

You will find out how nice C# is.<br />

Броенето можем да направим така: ще прочитаме файла ред по ред и<br />

всеки път, когато срещнем търсената от нас дума, ще увеличаваме стойността<br />

на една променлива (брояч). Ще обработим възможните изключителни<br />

ситуации, за да може потребителят да получава адекватна информация<br />

при появата на грешки. Ето и примерна реализация:<br />

CountingWordOccurrences.cs<br />

static void Main()<br />

{<br />

string fileName = @"..\..\sample.txt";<br />

string word = "C#";<br />

try<br />

{<br />

StreamReader reader = new StreamReader(fileName);<br />

using (reader)<br />

{

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!