Разделы презентаций


Системное программирование для Microsoft.NET на языке C# Лекция 6

Содержание

СтрокиСтрока является объектом типа String, значением которого является текст. Текст хранится в виде последовательной доступной только для чтения набора объектов Char. В конце строки на языке C# отсутствует символ, заканчивающийся на

Слайды и текст этой презентации

Слайд 1Системное программирование для Microsoft.NET на языке C# Лекция 6
Оцоков Шамиль

Алиевич,
Московский энергетический институт,
Email: otsokovShA@mpei.ru

Системное программирование  для Microsoft.NET на языке C#  Лекция 6Оцоков Шамиль Алиевич,Московский энергетический институт,Email: otsokovShA@mpei.ru

Слайд 2Строки
Строка является объектом типа String, значением которого является текст. Текст

хранится в виде последовательной доступной только для чтения набора объектов

Char. В конце строки на языке C# отсутствует символ, заканчивающийся на NULL; поэтому строка C# может содержать любое число внедренных символов NULL ("\0"). Свойство Length строки представляет число объектов Char, содержащихся в этой строке, а не число символов Юникода.
В C# ключевое слово string является псевдонимом свойства String. Поэтому String и string эквивалентны

СтрокиСтрока является объектом типа String, значением которого является текст. Текст хранится в виде последовательной доступной только для

Слайд 3Строки
Объявление и инициализацию строк можно выполнять различными способами:

string message1;
string str

= "Пример строки";
char[] letters = { 'A', 'B', 'C' };
string

alphabet = new string(letters); 
СтрокиОбъявление и инициализацию строк можно выполнять различными способами:string message1;string str =

Слайд 4Строки
Над строками определены следующие операции:
присваивание (=);
конкатенация (объединение) или сцепление строк

(+);
две операции проверки эквивалентности: равно (= =) и не равно

(!=);
взятие индекса ([]).
СтрокиНад строками определены следующие операции:присваивание (=);конкатенация (объединение) или сцепление строк (+);две операции проверки эквивалентности: равно (= =)

Слайд 5Строки
Переприсваивание
Строки можно целиком переприсваивать:
string s1 = "Hello";
string s2 = s1;

СтрокиПереприсваиваниеСтроки можно целиком переприсваивать:string s1 =

Слайд 6Строки
Объединение строк
Можно объединять строки с помощью оператора +:
string s1 =

"orange";
string s2 = "red";
s1 += s2;Console.WriteLine(s1); // напечатается "orangered"
Строковые

объекты являются неизменяемыми: после создания их нельзя изменить. Все методы String и операторы C#, которые, как можно было бы представить, изменяют строку, в действительности возвращают результаты в новый строковый объект.
.
СтрокиОбъединение строкМожно объединять строки с помощью оператора +:string s1 =

Слайд 7Строки
Постоянство строк
Строковые объекты являются неизменяемыми: после создания их нельзя изменить.

Все методы String и операторы C#, которые, как можно было

бы представить, изменяют строку, в действительности возвращают результаты в новый строковый объект.
В примере, когда содержимое строк s1 и s2 объединяется в одну строку, две исходные строки не изменяются. Оператор += создает новую строку с объединенным содержимым. Этот новый объект присваивается переменной s1, а исходный объект, который был присвоен строке s1, освобождается для сборки мусора, поскольку ни одна переменная не содержит ссылку на него.


СтрокиПостоянство строкСтроковые объекты являются неизменяемыми: после создания их нельзя изменить. Все методы String и операторы C#, которые,

Слайд 8Строки
Сравнения
Самый простой способ сравнения двух строк — использовать операторы ==

и !=, осуществляющие сравнение с учетом регистра:
string color1 = "red";
string

color2 = "green";
string color3 = "red";
if (color1 == color3) Console.WriteLine("Строки равны");
if (color1 != color2) Console.WriteLine("Строки не равны");
Не допускается использование >,<,>=,<= для сравнения строк. Для строковых объектов существует метод CompareTo(), возвращающий целочисленное значение, зависящее от того, что одна строка может быть меньше (<), равна (==) или больше другой (>). При сравнении строк используется значение Юникода, при этом значение строчных букв меньше, чем значение заглавных.

Слайд 9Строки
Доступ к отдельным знакам
Квадратные скобки [] служат для доступа к

отдельным знакам в объекте string, но при этом возможен доступ

только для чтения:

string str = "test";
char x = str[2]; // x = 's';

СтрокиДоступ к отдельным знакамКвадратные скобки [] служат для доступа к отдельным знакам в объекте string, но при

Слайд 10Строки
В C# существуют два вида строковых констант:
обычные константы, которые представляют

строку символов, заключённую в кавычки;
@-константы, заданные обычной константой c предшествующим

знаком @.

СтрокиВ C# существуют два вида строковых констант:обычные константы, которые представляют строку символов, заключённую в кавычки;@-константы, заданные обычной

Слайд 11Строки
Обычные константы

В обычных константах некоторые символы интерпретируются особым образом. Связано

это, прежде всего, с тем, что необходимо уметь задавать в

строке непечатаемые символы, такие, как, например, символ табуляции. Возникает необходимость задавать символы их кодом – в виде escape-последовательностей. Для всех этих целей используется комбинация символов, начинающаяся символом "\" - обратная косая черта. Это так называемые Escape-последовательности
СтрокиОбычные константыВ обычных константах некоторые символы интерпретируются особым образом. Связано это, прежде всего, с тем, что необходимо

Слайд 12Строки
При этом возникают неудобства: например, при задании констант, определяющих путь

к файлу, приходится каждый раз удваивать символ обратной косой черты.
string

path2 = "C:\\Users\\Mikant\\Documents";
СтрокиПри этом возникают неудобства: например, при задании констант, определяющих путь к файлу, приходится каждый раз удваивать символ

Слайд 13Строки
@-константы
В @-константах все символы трактуются в полном соответствии с их

изображением. Поэтому путь к файлу лучше задавать @-константой. Единственная проблема

в таких случаях: как задать символ кавычки, чтобы он не воспринимался как конец самой константы. Решением является удвоение символа.
string path1 = @"C:\Users\Mikant\Documents";


Строки@-константыВ @-константах все символы трактуются в полном соответствии с их изображением. Поэтому путь к файлу лучше задавать

Слайд 14Строки

Строки

Слайд 15Строки

Строки

Слайд 16Строки
string s6 = «РГппУ";
Console.WriteLine(s6.ToUpper()); // Напечатается РГППУ

string s3 = "Visual

C# Express";
string s5 = s3.Replace("C#", "Basic");
Сonsole.WriteLine(s5);// напечатается "Visual Basic Express”

string

s3 = "Visual C# Express";
string s4 = s3.Substring(7, 2);
Console.WriteLine(s4);// напечатается "C#"



Строкиstring s6 = «РГппУ

Слайд 17Строки
char razdelitel = ' ';
string text = "Шла Саша по

шоссе и сосала сушку";
Console.WriteLine("Исходный текст: '{0}'", text);
string[] words = text.Split(razdelitel);
Console.WriteLine("{0}

слов в тексте:", words.Length);
В качестве разделителя может выступать массив символов.
char[] delimiterChars = { ' ', ',', '.', ':', '\t' };
string text = "one\ttwo three:four,five six seven";
Console.WriteLine("Original text: '{0}'", text);
string[] words = text.Split(delimiterChars);
Console.WriteLine("{0} words in text:", words.Length);
Строкиchar razdelitel = ' ';string text =

Слайд 18Строки
Преобразование строк в другие типы
С помощью объекта Convert:
N = Convert.ToInt32(s1);
M

= Convert.ToDouble(s2);
F = Convert.ToBoolean(s3);
B = Convert.ToByte(s4);
C = Convert.ToChar(k);
s5= Convert.ToString(x);

СтрокиПреобразование строк в другие типыС помощью объекта Convert:N = Convert.ToInt32(s1);M = Convert.ToDouble(s2);F = Convert.ToBoolean(s3);B = Convert.ToByte(s4);C =

Слайд 19Строки

Строки

Слайд 20Строки

Строки

Слайд 21Строки

Строки

Слайд 22Потоки
Поток - это упорядоченная последовательность байтов, которая отправляется из одного

приложения или устройства ввода в другое приложение или устройство вывода.
Потоки

- это абстракция канала передачи данных, который соединяет два устройства или приложения.
Потоки - это основное средство обмена информацией в компьютерном мире.
Есть два типа потоков - текстовые потоки и двоичные потоки.
Потоки не допускают произвольный доступ к своим данным, только последовательный.
ПотокиПоток - это упорядоченная последовательность байтов, которая отправляется из одного приложения или устройства ввода в другое приложение

Слайд 23Потоки
Потоки открываются до того, как мы можем начать с ними

работать, и закрываются после того, как они выполнили свою задачу.

Закрытие потока очень важно, и его нельзя упускать из виду, потому что вы рискуете потерять данные.
Основные операции с потоками
С потоками можно выполнять следующие операции: создание / открытие, чтение данных, запись данных, поиск / позиционирование, закрытие / отключение.
Создать или открыть поток означает подключить поток к источнику данных, механизму передачи данных или другому потоку. Например, когда у нас есть файловый поток, мы передаем имя файла и режим файла, в котором он должен быть открыт (чтение, запись или чтение и запись одновременно).
ПотокиПотоки открываются до того, как мы можем начать с ними работать, и закрываются после того, как они

Слайд 24Потоки
Всегда закрывайте потоки и файлы, с которыми работаете! Если оставить

открытый поток или файл, это приведет к потере ресурсов и

может заблокировать работу других пользователей или процессов в вашей системе.
Двоичные и текстовые потоки
Бинарные потоки
Основными классами, которые мы используем для чтения и записи из двоичных потоков и в них, являются: FileStream, BinaryReader и BinaryWriter.
ПотокиВсегда закрывайте потоки и файлы, с которыми работаете! Если оставить открытый поток или файл, это приведет к

Слайд 25Потоки
Текстовые потоки
Текстовые потоки очень похожи на двоичные, но работают только

с текстовыми данными, а точнее с последовательностью символов (char) и

строк (string). Текстовые потоки идеально подходят для работы с текстовыми файлами. С другой стороны, это делает их непригодными для работы с любыми двоичными файлами.
Основными классами для работы с текстовыми потоками в .NET являются TextReader и TextWriter. Это абстрактные классы, и их нельзя создать. Эти классы определяют базовую функциональность для чтения и записи для классов, которые их наследуют. Их более важные методы:

- ReadLine() – reads one line of text and returns a string.
- ReadToEnd() – reads the entire stream to its end and returns a string.
- Write() – writes a string to the stream.
- WriteLine() – writes one line of text into the stream.

ПотокиТекстовые потокиТекстовые потоки очень похожи на двоичные, но работают только с текстовыми данными, а точнее с последовательностью

Слайд 26Потоки
StreamReader и StreamWriter. Они напрямую наследуют классы TextReader и TextWriter
StreamReader

или StreamWriter), но если мы хотим рассматривать его как двоичный,

мы должны читать и писать с помощью двоичного потока ( FileStream

// Create a StreamReader connected to a file
StreamReader reader = new StreamReader("test.txt");
// Read the file here …
// Close the reader resource after you've finished using it
reader.Close();

string fileName = "C:\\Temp\\work\\test.txt";
string theSamefileName = @"C:\Temp\work\test.txt";

ПотокиStreamReader и StreamWriter. Они напрямую наследуют классы TextReader и TextWriterStreamReader или StreamWriter), но если мы хотим рассматривать

Слайд 27Потоки
StreamReader и StreamWriter. Они напрямую наследуют классы TextReader и TextWriter
StreamReader

или StreamWriter), но если мы хотим рассматривать его как двоичный,

мы должны читать и писать с помощью двоичного потока ( FileStream

// Create a StreamReader connected to a file
StreamReader reader = new StreamReader("test.txt");
// Read the file here …
// Close the reader resource after you've finished using it
reader.Close();

string fileName = "C:\\Temp\\work\\test.txt";
string theSamefileName = @"C:\Temp\work\test.txt";

ПотокиStreamReader и StreamWriter. Они напрямую наследуют классы TextReader и TextWriterStreamReader или StreamWriter), но если мы хотим рассматривать

Слайд 28Потоки
Избегайте полных путей к файлам и работайте с относительными путями!


Закрывайте потоки после использования!

Чтобы избежать проблем с неправильной кодировкой файлов,

всегда проверяйте кодировку явно

ПотокиИзбегайте полных путей к файлам и работайте с относительными путями! Закрывайте потоки после использования!Чтобы избежать проблем с

Слайд 29Потоки
// Create an instance of StreamReader to read from a

file
StreamReader reader = new StreamReader("Sample.txt");
int lineNumber = 0;
// Read first

line from the text file
string line = reader.ReadLine();
// Read the other lines from the text file
while (line != null)
{
lineNumber++;
Console.WriteLine("Line {0}: {1}", lineNumber, line);
line = reader.ReadLine();
}
// Close the resource after you've finished using it
reader.Close();
Потоки// Create an instance of StreamReader to read from a fileStreamReader reader = new StreamReader(

Слайд 30Способы открытия файлов
2 способа открытия файла:
Открытие как текстовый файл (

с последовательным доступом)
Открытие как бинарный (с произвольным доступом)

Способы открытия файлов2 способа открытия файла:Открытие как текстовый файл ( с последовательным доступом)Открытие как бинарный (с произвольным

Слайд 31Автоматическое закрытие потока
// Create an instance of StreamReader to

read from a file
StreamReader reader = new StreamReader("Sample.txt");
using (reader)
{
int lineNumber

= 0;
// Read first line from the text file
string line = reader.ReadLine();
// Read the other lines from the text file
while (line != null)
{
lineNumber++;
Console.WriteLine("Line {0}: {1}", lineNumber, line);
line = reader.ReadLine();
}
}

using () { … }

Автоматическое закрытие потока // Create an instance of StreamReader to read from a fileStreamReader reader = new

Слайд 32Кириллица
Encoding win1251 = Encoding.GetEncoding("Windows-1251");
StreamReader reader = new StreamReader("test.txt", win1251);

StreamReader reader

= new StreamReader("test.txt",
Encoding.GetEncoding("UTF-8"));
Если вам интересно, читать ли текстовый файл, закодированный

в кириллице, Windows-1251 или UTF-8, то на этот вопрос нет однозначного ответа.

Класс StreamWriter является частью пространства имен System.IO и используется исключительно для работы с текстовыми данными.


Слайд 33Кириллица
StreamWriter writer = new StreamWriter("test.txt",
false, Encoding.GetEncoding("Windows-1251"));

static void Main()
{
// Create a

StreamWriter instance
StreamWriter writer = new StreamWriter("numbers.txt");
// Ensure the writer will

be closed when no longer used
using(writer)
{
// Loop through the numbers from 1 to 20 and write them
for (int i = 1; i <= 20; i++)
{
writer.WriteLine(i);
}
}
}
КириллицаStreamWriter writer = new StreamWriter(

Слайд 34Исключения
Исключение - это уведомление о том, что что-то прерывает нормальное

выполнение программы. Исключения обеспечивают парадигму программирования для обнаружения неожиданных событий

и реагирования на них. Когда возникает исключение, состояние программы сохраняется, нормальный поток прерывается, и управление передается обработчику исключения (если таковой существует в текущем контексте)
ИсключенияИсключение - это уведомление о том, что что-то прерывает нормальное выполнение программы. Исключения обеспечивают парадигму программирования для

Слайд 35Исключения
Исключения являются мощным механизмом для централизованной обработки ошибок и исключительных

ситуаций.
иерархия исключений.
В ООП исключения - это классы, и их

можно наследовать для построения иерархий.
ИсключенияИсключения являются мощным механизмом для централизованной обработки ошибок и исключительных ситуаций.иерархия исключений. В ООП исключения - это

Слайд 36Исключения

Исключения

Слайд 37Исключения
try
{
// Some code that may throw an exception
}
catch (ExceptionType objectName)
{
//

Code handling an Exception
}
catch (ExceptionType objectName)
{
// Code handling an Exception
}

Исключенияtry{// Some code that may throw an exception}catch (ExceptionType objectName){// Code handling an Exception}catch (ExceptionType objectName){// Code

Слайд 38Генерация исключений
static void Main()
{
Exception e = new Exception("There was a

problem");
throw e;
}

Генерация исключенийstatic void Main(){Exception e = new Exception(

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика