|
Программирование >> Автоматически обновляемые приложения
Примечание Примеры с простейшими операциями со строками вы можете найти в папке SimpleStrings на прилагаемом диске. Сжатие длинных имен файлов Если вам часто приходится работать со строками, которые представляют собой длинные полные пути к файлам, то возможно вам пригодится следующий пример. С помощью функции Windows API PathCompactPathEx можно заменить часть длинного пути к файлу многоточием, например, как это сделано в листинге 2.14. Листинг 2.14, Замена,длинного пути многоточием using System.Runtime.InteropServices; [Dlllmport( shlwapi.dll , CharSet = CharSet.Auto, SetLastError = true); private static extern bool PathCompactPathEx( System.Text.StringBuilder pszOut, string pszSrc, Int32 cchMax, Int32 dwFlags); Создадим объект StringBuilder с нужной длиной. StringBuilder revStr = new StringBuilder(str.Length); Перебираем в цикле все символы и присоединяем каждый символ к StringBuilder for (int count = str.Length - 1; count > -1; count-) revStr.Append(str[count]) ; Возвращаем перевернутую строку return revStr.ToStringО; private void butReverseCS Click(object sender, EventArgs e) { textBoxl.Text = ReverseString(textBoxl.Text); Примечание Пример со сжатием строки находится в папке CompactPathDemo на прилагаемом диске. Печатающийся текст Чтобы создать видимость того, что текст печатается на печатной машинке, нужно использовать таймер, с помощью которого через определенный промежуток времени мы считываем все символы текста с первой буквы до текущей и выводим их на экран. Счетчик текущего количества букв постоянно обновляется (листинг 2.15), что позволяет повторять эффект печатающегося текста бесконечно, пока пользователь не остановит этот процесс. [Листинг 2.15. Эффект печатающегося текста private void buttonl Click(object sender, EventArgs e) { if (buttonl.Text == Старт ) { timerl.Enabled = true; buttonl.Text = Стоп ; else { timerl.Enabled = false; private void buttonl CIick (ob:)ect sender, EventArgs ej { длинный путь к файлу string strPathFile = с:/program files/My SuperProgram/skins/sample.txt ; StringBuiider sb = new StringBuiider(260); оставляем 20 символов, остальное заменяем многоточием bool b = PathCompactPathEx(sb, strPathFile, 20+1, 0); Выводим результат в текстовое поле textBoxl.Text = sb.ToString(); Бегущая строка Второй распространенный эффект со строками- создание бегущей строки. Алгоритм создания эффекта бегущей строки заключается в следующем - из исходной строки удаляем один символ слева и добавляем его с правой стороны текста. \ Листинг 2.16. Создание бегущей строки private void butScroll Click(object sender, EventArgs e) { timer2.Enabled = true; Исходная строка. Для большего удобства добавлено несколько пробелов в конец строки private string scrollText = С#.Народные советы ; private void timer2 Tick(object sender, EventArgs e) { Удаляем один символ слева и прибавляем его с правой стороны scrollText = scrollText.Substring(1, buttonl.Text = Старт ; public static int counter = 0; private void timerl Tick(object sender, EventArgs e) { string typingText = C#.Народные советы ; this.Text = typingText.Substring(0,counter) ; counter++; if (counter > typingText.Length) counter = 0;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |