Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Отношение между С# и .NET

Модуль 5. Объектно-ориентированный подход (ООП). Общие сведения.

Операции ввода-вывода

Установочные и завершающие операции

Используя классы StreamWriter и StreamReader можно создать свои файловые объекты для выполнения различных операций с текстовыми файлами.

//создание нового файла или перезапись существующегоStreamWriter outStream = new StreamWriter(@"c:\a1.txt");//outStream - созданный нами объект //открытие существующего файла на чтениеStreamReader inStream = new StreamReader(@"c:\a1.txt");//inStream - созданный нами объект

Для завершения работы с файлом используют метод Close.

outStream.Close();inStream.Close();

Для записи в открытый файл используют методы Write и Writeline.

outStream.WriteLine(x);outStream.Write("Z={0}",z);outStream.Write();

Для чтения строки из открытого файла используют метод ReadLine.

string s = inStream.ReadLine();

Для проверки, достигнут ли конец файла при чтении используют метод Peek или свойство EndOfStream.

while (inStream.Peek()>-1) { string s = inStream.ReadLine(); Console.Writeline(s); }//равнозначный вариантwhile (!inStream.EndOfStream) { string s = inStream.ReadLine(); Console.Writeline(s); }

Для того, чтобы считывать отдельные элементы из строки, её считывают целиком, а затем разбивают на массив элементов с помощью метода Split.

while (inStream.Peek()>-1) { string s = inStream.ReadLine(); string[] elements = s.Split(' ', ',', '.', ':', '\t'); foreach (string e in elements) { if (e!= "") { int d = Convert.ToInt32(e); Console.Write("{0} ", d); } } Console.WriteLine(); }

Пример: Транспонировать матрицу, содержащуюся в текстовом файле. Двухмерные массивы использовать нельзя.

using System.IO;static void enter(string filename){ //описываем необходимые переменные int i, j, M, N; string s; //вводим число элементов Console.Write("Введите число строк матрицы N="); s = Console.ReadLine(); N = Convert.ToInt32(s); Console.Write("Введите число столбцов матрицы M="); s = Console.ReadLine(); M = Convert.ToInt32(s); StreamWriter outStream = new StreamWriter(filename); //запускаем циклы по всем элементам матрицы for (i = 0; i < N; i++) //цикл по строкам { for (j = 0; j < M; j++) //цикл по столбцам { //вводим i,j-ый элемент Console.Write("Введите элемент матрицы ({0},{1}) ", i + 1, j + 1); s = Console.ReadLine(); outStream.Write("{0,3} ", s); } outStream.WriteLine(); } outStream.Close();} static void transpose(string filename, string filename2){ StreamReader inStream = new StreamReader(filename); int N = 0; int M = 0; int Mmax = 0; while (inStream.Peek() > -1) { string s = inStream.ReadLine(); string[] elements = s.Split(' '); M = 0; foreach (string e in elements) if (e!= "") { M++; if (M > Mmax) Mmax = M; } N++; } inStream.Close(); StreamWriter outStream = new StreamWriter(filename2); for (int j = 0; j < M; j++) //цикл по столбцам { inStream = new StreamReader(filename); for (int i = 0; i < N; i++) //цикл по строкам { string s = inStream.ReadLine(); string[] elements = s.Split(' '); int k = 0; foreach (string e in elements) if (e!= "") { if (k == j) { outStream.Write("{0,3} ", e); } k++; } } inStream.Close(); outStream.WriteLine(); } outStream.Close();} static void print(string filename){ StreamReader inStream = new StreamReader(filename); int N = 0; int M = 0; int Mmax = 0; while (inStream.Peek() > -1) { string s = inStream.ReadLine(); Console.WriteLine(s); } inStream.Close();} static void Main(string[] args){ enter(@"c:\a1.txt"); transpose(@"c:\a1.txt", @"c:\a2.txt"); print(@"c:\a2.txt"); Console.ReadKey();}

С# — это относительно новый язык программирования, который характеризуется двумя следующими преимуществами.

§ С# спроектирован и разработан специально для применения с Microsoft.NET Framework (развитой платформой разработки, развертывания и выполнения распределенных приложений).

§ С# — язык, основанный на современной объектно-ориентированной методологии проектирования, при разработке которого специалисты из Microsoft опирались на опыт создания подобных языков, построенных в соответствии с предложенными около 20 лет назад объектно-ориентированными принципами.

Нужно подчеркнуть то важное обстоятельство, что С# — это полноценный язык программирования. Хотя он и предназначен для генерации кода, выполняемого в среде.NET, сам по себе он не является частью.NET Существует ряд средств, которые поддерживаются.NET, но не поддерживаются С#, и, есть также средства, поддерживаемые С# и не поддерживаемые.NET (например, некоторые случаи перегрузки операций). Однако поскольку язык С# предназначен для применения на платформе.NET, вам, как разработчику, важно иметь представление о.NET Framework, если вы хотите эффективно разрабатывать приложения на С#. Поэтому в настоящей главе мы потратим некоторое время на то, чтобы заглянуть "за кулисы".NET

<== предыдущая лекция | следующая лекция ==>
Текстовые файлы | Повышение производительности
Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 286; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.