Поиск:

Ответ в темуСоздание новой темы Создание опроса
> квадраты в CAtlStringW, квадраты в конце строк 
:(
    Опции темы
xaxaTyH
  Дата 12.3.2008, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Надо прочитать данные из таблицы из файла .doc.

Делаю так:
Код
//Text in the cell
_bstr_t celltxt;

//...

//Перевожу BSTR->CString
CAtlStringW cwText(celltxt.GetBSTR());

//...
::MessageBoxW(NULL, (LPCWSTR)cwText, L"Test", MB_OK);
 

Проблема состоит в 2-х "квадратах" в конце любой строки, которую я читаю из файла. При печати этих строк, печатается текст и квадраты.

 Как их убрать?
PM MAIL   Вверх
korian
Дата 12.3.2008, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 2
Всего: 17



предпологаю, что "квадраты" это перевод строки.
просто убрать 2 последних символа из строки?
PM   Вверх
Rapalex
Дата 12.3.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Посмотри коды этих символов.


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
xaxaTyH
  Дата 12.3.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Отбрасываю:
Код
cwText.Remove(L'\r');
cwText.Remove(L'\n');


Все равно остается 1 квадрат в конце и постоянно печатается..

Может как-то подругому отбрасывать надо?
PM MAIL   Вверх
xaxaTyH
  Дата 12.3.2008, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Решил проблему так:
Код
cwText.Delete(_tcslen(cwText) - 2, 2);


Но теперь возник другой вопрос - насколько это эффективно? Эту операцию мне надо в цикле выполнять, для каждой таблицы, а в каждой таблице много ячеек.. Есть способ более эффективный?
PM MAIL   Вверх
korian
Дата 12.3.2008, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 651
Регистрация: 8.3.2008
Где: Украина, Харьков

Репутация: 2
Всего: 17



Цитата(xaxaTyH @  12.3.2008,  12:30 Найти цитируемый пост)
насколько это эффективно

а у CAtlStringW нету что-то типа Size или Length?
задумываться об эффективности, надо тогда, когда уже есть такая необходимость
(пока скорость обработки устраивает, думать об этом нет смысла)

Это сообщение отредактировал(а) korian - 12.3.2008, 15:59
PM   Вверх
xaxaTyH
Дата 12.3.2008, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



korian, таких методов нету. Спасибо за ответы.
PM MAIL   Вверх
xaxaTyH
Дата 12.3.2008, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Как выяснилось, в программе в CAtlStringW cwText содержит квадраты не только в конце строки, но может и в начале, и в середине. Можно ли одной функцией(методом) убрать все квадраты в строке?

Пробовал метод Trim(L"\n\r") - не работает.
PM MAIL   Вверх
xaxaTyH
  Дата 12.3.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 26.6.2006

Репутация: нет
Всего: нет



Избавляемся от всех "квадратов" в строке:
Код
cwText.Remove(0x09);
cwText.Remove(0x07);
cwText.Remove(0x0d);


Всем спасибо. Тема закрыта.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0703 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.