|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.10.2012, 10:53 | #1 |
Пользователь
Регистрация: 24.12.2011
Сообщений: 54
|
Работа с буфером обмена
Здравствуйте, написал программку, которая убирает из текста, содержащегося в буфере лишние пробелы, табы и ентеры. У меня все работает нормально (и на XP и на 7), но на некоторых компьютерах преобразованный текст (русский) вставляется в текстовый редактор (любой) с неправильной кодировкой (что-то вроде Íà ñàéòå íîâûå çàêàçû î ïëàñòèêîâûõ îêíàõ. Ýòî àêòóàëüíî, èíòåðåñíî è ïîçíàâàòåëüíî!)
вот текст программы: AnsiString BeautyText(AnsiString STR) { char* str=STR.c_str(); AnsiString stroka=""; bool tab=false, enter=false, space=false; for (int i=0;i<strlen(str); ++i) { if (str[i]!=' '&&str[i]!='\t'&&str[i]!='\n'&&str[i]!='\r') {stroka+=str[i];tab=false; enter=false; space=false;} else { if(str[i]=='\t'&&!tab){stroka+=str[i]; tab=true; enter=false; space=false;} if(str[i]=='\n'||str[i]=='\r') {if(!enter) {stroka+='\r'; stroka+='\n'; enter=true; tab=false; space=false;}} if(str[i]==' '&&!space){stroka+=str[i]; space=true; tab=false; enter=false;} } } return stroka; } AnsiString st; if(Clipboard()->HasFormat(CF_TEXT)) st = Clipboard()->AsText; st=BeautyText(st); Clipboard()->AsText = st; Кто-нибудь знает, что надо исправить, чтобы не было проблем с кодировкой? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с буфером обмена | Arsenx777 | Общие вопросы Delphi | 4 | 04.08.2011 22:03 |
Работа с буфером обмена ОС | truder | JavaScript, Ajax | 2 | 28.02.2011 05:21 |
Работа с буфером обмена. | star007 | Помощь студентам | 0 | 16.06.2010 20:37 |
Работа с буфером обмена | Gerzs | Общие вопросы Delphi | 2 | 26.03.2010 15:15 |
Работа с буфером обмена | АлексейМк | Общие вопросы C/C++ | 1 | 05.08.2009 00:24 |