Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемyu-shatalov.narod.ru
1 Работа со строками Работа с файлами Лекция 7
2 Работа со строками Работа с файлами
3 Работа со строками String StringBuilder Regex Работа с файлами
4 String – ссылочный тип Функционирует ка тип - значение Строка не изменяема ==, != Сравнение строк ==, != Сравнение содержимого ( посимвольно с учетов регистра ), а не ссылок на объект Конкатенация строк + или использование статического метода Concat() string s = s1 + еще одна строчка + s2; String s += добавленная строчка – создает новый экземпляр типа string Свойства : Свойства : Length Свойство Length – возвращает длину строки ( только чтение ) [ ] Индексатор [ ] – возвращает указанный символ в строке ( только на чтение ) char c = myString[5]; Empty Статическое поле Empty – представляет пустую строку string s = string.Empty;
5 Compare() Статический метод Compare() – сравнение строк, возможно с учетом культуры и регистра string result = string.Compare(string1, string2, new CultureInfo("en-US"), CompareOptions.IgnoreCase); IndexOf()LastIndexOf() Методы IndexOf(), LastIndexOf() – возвращают позицию символа или подстроки Contains() Метод Contains() – возвращает true, если строка содержит подстроку Format() Статический метод Format() – создание форматированной строки string result = String.Format( Температура {0:d}:\n в {1,11}: {2} градусов ", date, time, temp); Insert() Метод Insert() – возвращает новую строку, в которой указанная подстрока вставлена в указанную позицию string result = s.Insert(2, вставляемая подстрока ); Remove(), Replace() Методы Remove(), Replace() – возвращают новые строки, в которых удалена или замена подстрока Split() Метод Split() – разбивает строку на несколько строк по определенному символу Trim() Метод Trim() – удаляет все вхождения определенного набора символов сначала и с конца строки ToUpper(), ToLower() Методы ToUpper(), ToLower() – преобразование строки в верхний, нижний регистры Join() Метод Join() – объединяет коллекцию в строку использую разделитель между элементами int[] values = {5, 4189, 11434,.366 }; Console.WriteLine(string.Join(;", values)); IsNullOrEmpty()IsNullOeWhiteSpace() Статические методы IsNullOrEmpty(), IsNullOeWhiteSpace() – проверка строк на пустоту ВНИМАНИЕ !!! Методы возвращают новый экземпляр string и не меняют текущую строку
6 Класс предназначен для работы с часто изменяющимися строковыми данными Представляет изменяемую строку символов Расположен пространстве имен System.Text Методы : Append() Append() – добавляет строковое представление типа ( подстроку ) в конец ( перегружен для различных типов данных ) AppendFormat() AppendFormat() – добавляет форматированную строку AppendLine() AppendLine() – добавляет строку и символ перевода строки Insert() Insert() – вставляет строковое представление типа ( подстроку ) в указанное место ( перегружен для различных типов данных ) Replace() Replace() – заменяет символы или подстроки на новые Clear() Clear() – очищает содержимое ToString() ToString() – возвращает содержащуюся строку
7 \ Управляющие символы начинаются с \ \n– перевод строки ( для Windows) \t– символ табуляция \r– возврат каретки \a– звуковой сигнал \\– символ \ \*– символ * \– символ string s = Дословные строки Отключение управляющих символов Сохраняет пробелы, символы перевода строк и т. д. string s string s на две строки ( да еще и с пробелами )
8 Применяется для форматирования вывода строки Console.Write(), Console.WriteLine(), string.Format(), stringBuilder.AppendFormat() Первый параметр – строка - шаблон Метки - заполнители {0}, {1}, {2} … Вместо меток подставляются параметры метода, следующие за строкой Следующие параметры нумеруются с 0 Метки - заполнители {0}, {1}, {2} могут идти в произвольном порядке и повторятся сколько угодно раз При недостаточности параметров будет вызвано исключение Console.Write(x = {0}, y = {2}, z = {1}, x ={0}, dx, dz, dy); Форматирование числовых данных C, c – денежный формат D, d – числовой формат ( с минимальный кол - вом цифр ) E, e – экспоненциальный формат числа X, x – шестнадцатеричный формат P, p – представление в процентах
9 Работа со строками
10 Позволяет осуществлять поиск, замену, проверку, разбор строки, используя регулярные выражения Пространство имен System.Text.RegularExpressions Позволяет работать как с статическими методами, так и создать экземпляр класса для проведения множества однотипных операций, используя один и тот же паттерн Методы ( все методы экземпляра имеют и соответствующий статический вариант ): IsMatch() IsMatch() – проверяет строку на соответствие регулярному выражению ( статический метод и метод экземпляра ) Match() Match() – возвращает первое вхождение регулярного выражения в строку ( статический метод и метод экземпляра ) Matchs() Matchs() – возвращает коллекцию всех вхождений регулярного выражения в строку ( статический метод и метод экземпляра ) Replace() Replace() – заменяет все вхождения регулярного выражения на новую подстроку Split() Split() – разделяет строку на подстроки по позициям совпадения с регулярным выражениям ( найденная строка выкидывается ). Статический метод и метод экземпляра Примеры : Regex r = new bool ok = r.IsMatch(" "); bool validTel = string s = Regex.Replace(inputString, ); // Удаление недопустимых символов
12 Работа с регулярными выражениями
13 Работа со строками Работа с файлами Работа с файловой системой Операции с потоками
14 Пространство имен System.IO Работа с файловой системой DriveInfo Диски : DriveInfo DirectoryInfoDirectoryFileSystemInfo Папки : DirectoryInfo, Directory, FileSystemInfo FileFileInfoFileSystemInfo Файлы : File, FileInfo, FileSystemInfo Работа с путями Path Path Наблюдение за изменениями в файловой системе FileSystemWatcher FileSystemWatcher Работа с потоками ( чтение / запись файла ) Stream Stream, производные от него и классы обертки
15 Два способа работы : File, Directory – статические классы FileInfo, DirectoryInfo Многие методы похожие FileSystemInfo Базовый для FileInfo и DirectoryInfo DriveInfo Информация о диске Не связан с FileSystemInfo
16 Экземпляр представляет один диск DriveInfo drive = new DriveInfo("c"); DriveInfo drive = new Информация о диске системы Name Name – имя диска DriveType DriveType – тип диска. Например : Fixed, CDRom IsReady IsReady – готов ли к использованию ( например для CD Rom) VolumeLabel VolumeLabel – метка тома DriveFormat DriveFormat – тип файловой системы TotalSize TotalSize – размер диска AvailableFreeSpace AvailableFreeSpace – размер свободного места … Получение всех дисков GetDrives() Статически метод GetDrives() DriveInfo[] drives = DriveInfo.GetDrives();
17 Абстрактный класс Базовый класс для DirectoryInfo и FileInfo Свойства файла / папки Name Name – название файла, папки FullName FullName – полное имя, т. е. с полным путем Extension Extension - расширение Exists Exists – существует ли такой файл / папка CreationTimeLastAccessTime CreationTime, LastAccessTime – время создания / последнего доступа ( изменения ) Attributes Attributes - атрибуты ( только на чтение ) …
18 DirectoryInfo Экземпляр DirectoryInfo представляет одну папку файловой системы Наследник от FileSystemInfo Создание объекта ( но не физической папки на диске ) DirectoryInfo windowsFolder = new Получение информации о файлах и папках GetDirectories() GetDirectories() – получение подпапок. Возможен поиск по шаблону и поиск во всех дочерних папках DirectoryInfo[] folders = GetDirectories(); DirectoryInfo[] folders = di.GetDirectories(my*); DirectoryInfo[] folders = di.GetDirectories(my*, SearchOption.AllDirectories); GetFiles() GetFiles() – получение файлов FileInfo[] files = folder.GetFiles(); FileInfo[] files = folder.GetFiles("*.txt, SearchOption.TopDirectoryOnly); GetFileSystemInfos() GetFileSystemInfos() – получение всех файлов / папок FileSystemInfo[] fsi = folder.GetFileSystemInfos(); Операции с папками Create() Create() – создание папки по текущему объекту DirectoryInfo new CreateSubdirectory() CreateSubdirectory() - создание подпапки текущего каталога Delete() Delete() – удаление текущей папки MoveTo () MoveTo () – перемещение текущей папки Directory Класс Directory имеет практически такие же методы, но в статическом исполнении Directory.CreateDirectory(path);
19 FileInfo Экземпляр FileInfo представляет один файл файловой системы Наследник от FileSystemInfo Создание объекта ( но не физического файла на диске ) FileInfo file = new FileInfo(c:\\test.txt); Свойства ( в добавление к свойствам FileSystemInfo) DirectoryDirectoryName Directory, DirectoryName – папка DirectoryInfo или полное имя папки ( с полным путем ) IsReadOnly IsReadOnly – файл только для чтения Length Length – размер файла в байтах Операции с файлами целиком Create()CreateText() Create(), CreateText() – создание файла CopyTo() CopyTo() – копирование файла Delete() Delete() – удаление текущего файла MoveTo () MoveTo () – перемещение текущего файла Операции с содержимым файла Create()CreateText()OpenRead()OpenText()OpenWrite()AppendText() Create(), CreateText(), OpenRead(), OpenText(), OpenWrite(), AppendText() File Класс File имеет практически такие же методы, но в статическом исполнении File.Delete(c:\\myText.txt);
20 Работа с файлами каталогами
21 Stream Представляет файл, порт и т. д. как поток байт Абстрактный класс Запись, чтение, перемещение указателя Реализация конкретных потоков в наследниках Классы обертки. Reader / Writer Чтение из / запись в поток BinaryReader/BinaryWriter – бинарные чтение / запись StreamReader/StreamWriter – текстовые чтение / запись Понятие кодировки (Encoding)
22 Возможности CanRead – можно ли читать CanWrite – можно ли писать CanSeek – можно ли двигать курсор Чтение int Read(byte[] buffer, int offset, int count) Запись void Write(byte[] buffer, int offset, int count) Текущая позиция long Position {get; set; } Перемещение long Seek(long offset, SeekOrigin origin); Закрытие потока void Close() void Dispose()
23 Stream PipeStream Поток данных из именованных каналов FileStream поток из файла MemoryStream поток из памяти SqlFileStream NetworkStream поток из сети UnmanagedMemoryStream поток неуправляемых данных …
24 CryptoStream CryptoStream – предоставляет шифрование потока BufferedStream BufferedStream – добавляет буферизацию GZipStreamDeflateStream GZipStream, DeflateStream – предоставляют возможность сжатия потока BinaryReader/BinaryWriter StreamReader/StreamWriter BinaryReader/BinaryWriter, StreamReader/StreamWriter – предоставляют удобные способы чтения / записи в поток
25 Классы обертки. Оборачивают конкретный поток Бинарный доступ к потоку Чтение / запись встроенных типов ReadXXX() / WriteXXX() XXX = Int32, Single, Double, … « Подсмотреть » следующий символ PeekChar() Кодировка по умолчанию UTF8
26 Классы обертки. Оборачивают конкретный поток Текстовый доступ к потоку Чтение / запись строк ReadLine() – чтение строки ReadToEnd() – сразу весь файл Write() – запись строки WriteLine() – запись строки + символ новой строки Параметры аналогичны функциям консоли
27 System.Text.Encoding Определяет преобразование char (Unicode) byte [] Encoding GetEncoding() получает кодировку по Имени : GetEncoding(windows-1251) Номеру : GetEncoding(1251) Использование : StreamReader sr = new StreamReader(stream, Encoding.Unicode);
28 TextReader/TextWriter – базовые классы StreamReader/StreamWriter – из потока StringReader/StringWriter – из строки Стандартные потоки Console.In – поток ввода Console.Out – поток вывода Console.Error – поток ошибок
29 Текстовый ввод - вывод
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.