Программирование >>  Автоматически обновляемые приложения 

1 ... 5 6 7 [ 8 ] 9 10 11 ... 170


Примечание

Примеры с простейшими операциями со строками вы можете найти в папке 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;



1 ... 5 6 7 [ 8 ] 9 10 11 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика