close

Вход

Забыли?

вход по аккаунту

код для вставкиСкачать
09.04.2014
Программирование
(структурное, процедурное,
объектно-ориентированное)
с использованием C++/C#
Полевой Дмитрий Валерьевич
к.т.н., доцент КиК
e-mail: [email protected]
1
09.04.2014
Символ
• графическое начертание
• код
(числовое значение при хранении в памяти)
• символьный набор
(кодовая таблица)
09.04.2014
2
2
09.04.2014
Кодовые таблицы и юникод
• национальные таблицы (7-8 бит)
– CP866, Win1251 и т.д.
• Unicode (переменный размер)
– UTF8
• Unicode (фиксированный размер)
– UTF16, UTF32
09.04.2014
3
3
09.04.2014
System.Char
• символ в кодировке UTF-16
• тип-значение (Struct)
пример:
‘Q’
09.04.2014
4
4
09.04.2014
Escape-последовательности
\' — одинарная кавычка
\" — двойная кавычка
\\ — обратный слеш
\n — перевод строки (№10)
\r — возврат каретки (№13)
\t — горизонтальная табуляция (№9)
09.04.2014
5
5
09.04.2014
Escape-последовательности
\0 — null-символ в Юникоде
\a — символ Alert (№7)
\b — символ Backspace (№8)
\f —смена страницы FORM FEED (№12)
\v — вертикальная табуляция (№11)
09.04.2014
6
6
09.04.2014
Символы Юникода в литералах
\Uxxxx
– шестнадцатеричный код
\xn[n][n][n]
– шестнадцатеричный (переменная длинна)
\Uxxxxxxxx
– шестнадцатеричный код (суррогатные пары)
09.04.2014
7
7
09.04.2014
Проверка категории
IsDigit
IsLetter
IsPunctuation
IsSymbol
09.04.2014
8
8
09.04.2014
Проверка категории
IsControl
IsSeparator
IsWhiteSpace
IsLower
IsUpper
09.04.2014
9
9
09.04.2014
Строковые литералы
• являются экземплярами String
• последовательность символов
“c:\\temp”
• «точные» строковые литералы
@”c:\temp”
09.04.2014
10
10
09.04.2014
System.String
• последовательность символов (0 или более)
• заканчивается нулем (символ ‘\0’)
• кодировка UTF-16 (Char)
• ссылочный тип
• неизменяемый тип
09.04.2014
11
11
09.04.2014
Доступ к символам
• индексация от 0 до Length
• только «на чтение»
• через индексатор
пример:
str[i]
09.04.2014
12
12
09.04.2014
Сравнение строк
• операторы == и !=
– сравнение значений строк (а не экземпляров)
• Equals
– сравнение
• Compare
– относительный порядок строк при сортировке
– с учетом или без учета регистра
– сведения о языке и региональных параметрах
– применим к подстрокам
09.04.2014
13
13
09.04.2014
Конкатенация строк
• Concat
– сцепление строк и строковых представлений obj
• Join
– сцепление с использованием разделителей
09.04.2014
14
14
09.04.2014
Проверка вхождения
• IndexOf
– вхождение символа
– вхождение строки и подстроки
• IndexOfAny
– вхождение любого символа из массива
• LastIndexOf
• LastIndexOfAny
• Contains
09.04.2014
15
15
09.04.2014
Вставка
• Insert
• PadLeft
• PadRight
09.04.2014
16
16
09.04.2014
Копирование
• Substring
• Copy
• CopyTo
09.04.2014
17
17
09.04.2014
Удаление символов с концов
• Trim
– пробелы или заданное мн-во
• TrimLeft
– с начала
• TrimRight
– с конца
09.04.2014
18
18
09.04.2014
Смена регистра
•
•
•
•
ToLower
ToLowerInvariant
ToUpper
ToUpperInvariant
• с учетом языка и региональных параметров
09.04.2014
19
19
09.04.2014
Разбиение по подстрокам
• массив разделителей
• на выходе – массив фрагментов
пример:
subs = text.Split(“1”)
09.04.2014
20
20
09.04.2014
Формирование строк
Format(String, Object[])
• подстановка строкового представлением
пример:
String.Format(“{0}:{1}:{2}”, hh, mm, ss);
09.04.2014
21
21
09.04.2014
Текстовое представление
System.Object
virtual public String ToString()
пользовательский тип
override public String ToString()
09.04.2014
22
22
09.04.2014
Текстовое представление (пример)
class Time
{
override String ToString()
{
return new String.Format(“{0}:{1}:{2}”,
hh, mm, ss)
}
…
}
09.04.2014
23
23
09.04.2014
Обработка текста
• часто используется
• ресурсоемкая
– память
– время
• при использовании String приводит к
появлению временных объектов
пример:
a = b+ c + d;
09.04.2014
24
24
09.04.2014
System.StringBuilder
• Append
• AppendFormat
• AppendLine
• Clear
• Insert
• Replace
• Remove
…
09.04.2014
25
25
09.04.2014
Файловая система
• иерархичность
• папки + файлы
• пути
– абсолютные
– относительные
• текущая папка
09.04.2014
26
26
09.04.2014
Позиционирование
в файловой системе
• диск с именем q:
• текущий диск /
• текущая папка .
• родительская папка ..
09.04.2014
27
27
09.04.2014
Файловая система (примеры)
пример:
c:/temp/213548.txt
/temp/213548.txt
../../go/tab.001
09.04.2014
28
28
09.04.2014
Пространство System.IO
• работа с файловой системой
• ввод и вывод данных
09.04.2014
29
29
09.04.2014
System.Directory
• манипуляции папками
– создание, уничтожение, перемещение,
копирование
•
•
•
•
навигация и перечисление
проверка на существование
доступ к содержимому
управление свойствами и разрешениями
09.04.2014
30
30
09.04.2014
System.File
• манипуляции файлами
– создание, уничтожение, перемещение ,
копирование
• проверка на существование
• управление свойствами и разрешениями
09.04.2014
31
31
09.04.2014
Потоковый вывод и ввод
• вывод – преобразование объектов (типа) в
последовательность символов
• ввод – запрос последовательности символов
и преобразование ее в объект (типа)
09.04.2014
32
32
09.04.2014
Потоковый вывод и ввод
• вывод – преобразование объектов (типа) в
последовательность символов
• ввод – запрос последовательности символов
и преобразование ее в объект (типа)
09.04.2014
33
33
09.04.2014
Типы ввода и вывода
• форматированный
– текстовый
• неформатированный
– двоичный
09.04.2014
34
34
09.04.2014
Формат
•
•
•
•
•
•
•
система счисления (oct, dec, hex)
отступы
заполнители
разделители
формат префиксов и суффиксов
разделителя разрядов
и т.д.
09.04.2014
35
35
09.04.2014
Чтение данных (из потока)
в текстовом формате
StreamReader
бинарно
BinaryReader
09.04.2014
36
36
09.04.2014
Запись данных (в поток)
в текстовом формате
StreamWriter
бинарно
BinaryWriter
09.04.2014
37
37
1/--страниц
Пожаловаться на содержимое документа