Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Методы работы с текстом.

533
11 января 2006 года
Visualex
254 / / 07.01.2005
Народ, подскажите, как можно работать с текстом, вот скажем VC6 там у меня получается

CString sWord = "word";
и обращаюсь к буквам как
dc.TextOut(x, y, sWord[0]);

а в VC7 так не получается, как можно работать с отдельными буквами слова.
т.е. я не хочу разбивать слово на отдельные компоненты типа ... = {"w", "o", "r", "d"};

вот например такой код (точнее просто смысл кода):
CString letter = "w";
for(int i = 0; i<4; i++)
{
if(sWord == letter)
MessagwBox("The letter is enable", "Congratulations!!!", MB_OK);
break;
}
расскажите подробнее пожалуйста, у меня часто такие вопросы возникают, тольком поговорить нескем.
Страницы:
2.4K
09 февраля 2006 года
dinasok51
219 / / 12.11.2005
Цитата:
Originally posted by PitxBull
... Вперемешку со смутным желанием откопать ногами тебя и прочих разлагателей родной отчизны.


А у меня нет желания ни надсмехаться, ни оскоблять, ни бить морду кому бы то ни было, если кто-то имеет мнение, отличное от моего. А если ты считаешь фальсификацией материалы на сайте бурана, то можешь его создателям это прямо высказать. Если же тебе не нравится сам факт их публикации, то можешь заявить куда надо о факте идеологической диверсии.

А что касается великой империи, то мне совсем не нравится когда один народ подавляет другие народы.

15K
10 февраля 2006 года
Vasil_v
6 / / 09.02.2006
Может, всё-таки кто-нибудь ответит на вопрос по преобразованию, флудерасты хреновы?
3
10 февраля 2006 года
Green
4.8K / / 20.01.2000
Давайте, чуть спокойнее и без идеологий.

dinasok51 прав, что не стоит почевать на лаврах, но при этом он совершенно не прав, что нам не чем гордиться и что всё вокруг плохо.

PitxBull прав, что кое в чем мы до сих пор лидируем, не смотря на все трудности, и это большая заслуга людей, которые раюотают с энтузиазмом.
Но он так же не прав выражаясь лозунгами и приуменьшая заслуги людей других стран.

Vasil_v прав, что мы зафлудились не по теме, но он совершенно не прав нецензурно обзываясь.

Поэтому предлагаю, послать его в бан, а остальным помириться и творить на благо человечества, а не конкретного социального строя.
351
10 февраля 2006 года
PitxBull
633 / / 22.12.2004
Цитата:
Originally posted by dinasok51
\. А если ты считаешь фальсификацией материалы на сайте бурана, то можешь его создателям это прямо высказать. Если же тебе не нравится сам факт их публикации, то можешь заявить куда надо о факте идеологической диверсии.


хм... вот интересно из каких моих высказываний ты сделал такие странные ( с моей точки зрения ) выводы ? помоему я говорил совершенно о других вещах и тему фальсификации не поднимал даже в мыслях самого заднего плана. :))))[/QUOTE]

Цитата:
Originally posted by dinasok51

А что касается великой империи, то мне совсем не нравится когда один народ подавляет другие народы.


Ну ка попдробнее кого это мы подавляли ?. Во времена СССР я учился в русской школе а через 300 метров стояла точно такая же школа ( в архитектурном плане ) но украинская. Так что утверждение что Украину русифицировали принудительно - наглая ложь. А вот русских сча дейтсвительно подавляют : и на Украине и в странах Прибалтики. Жил во Львове а потому знаю об этом из реальной жизни. То что вытворяли помаранчевые пиндосы этим летом во Львове просто уму непостижимо. Так например русскоговорящих стариков не пускали в общественный транспорт и отказывались обслуживать в магазинах. В школах и др.учебных заведениях просто тупо штампуются зомби которым вбили в голову что говорить на русском языке плохо, и такой нации - русские - вообще не существует - ее выдумали коммунисты. Откровенно воспитываются нацисты. Кто кого угнетает пи... ? А такие как ты им усиленно помогают. Так что я за то что бы бить ногами.

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by Vasil_v
Преобразовать число в строку, т.е. long в CString.



Если ты напишешь так:

 
Код:
CString str;

int count = -9234;
double d1 = 251.7366;
double d2 = 1234567.7654321;


str.Format("%6d ", count);
str.Format(str + " %8.4f ", d1);
str.Format(str + " %15.7f", d2);


тов результате str = "-9234 251.7366 1234567.7654321".
Ты этого хотел?
15K
10 февраля 2006 года
Vasil_v
6 / / 09.02.2006
Цитата:
Originally posted by AndreySar
Ты этого хотел?



Проблема решилась так:
sprintf_s(s1,"fps=%d",fps);

зато неясно что делать с

unsigned long fps;
CString s;
char s1[200];
LPWSTR s3;

MultiByteToWideChar(CP_ACP,0,s1,-1,s3,15);
Вылетает с Acess Violation, видимо, из-за неинициализированной s3. Как её инициализировать?
если написать s3="123", то компилятор ругается о несовместимости типов.
Если s3=(LPWSTR)"123";
то в s3 оказывается мусор, и всё равно Acess Violation.

324
10 февраля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by Vasil_v
Проблема решилась так:
sprintf_s(s1,"fps=%d",fps);

зато неясно что делать с

unsigned long fps;
CString s;
char s1[200];
LPWSTR s3;

MultiByteToWideChar(CP_ACP,0,s1,-1,s3,15);
Вылетает с Acess Violation, видимо, из-за неинициализированной s3. Как её инициализировать?
если написать s3="123", то компилятор ругается о несовместимости типов.
Если s3=(LPWSTR)"123";
то в s3 оказывается мусор, и всё равно Acess Violation.




Обычно конверсия мультибайтовой строки в ее Unicode-эквивалент проходит так:

1. Вызывают MultiByteToWideChar, передавая NULL в параметре pWideCharStr и 0 в параметре cchWideChar.
2. Выделяют блок памяти, достаточный для сохранения преобразованной строки. Его размер получают из предыдущего вызова MultiByteToWideChar.
3. Снова вызывают MultiByteToWideChar, на этот раз передавая адрес выделенного буфера в параметре pWideCharStr, а размер буфера, полученный при первом обращении к этой функции, — в параметре cchWideChar.
4. Работают с полученной строкой.
5. Освобождают блок памяти, занятый Unicode-строкой.

Код:
PSTR s1;
PWSTR s3;
int nLenOfWideCharStr;

nLenOfWideCharStr = MultiByteToWideChar(CP_ACP, 0, s1, -1, NULL, 0);
 
s3 = HeapAlloc(GetProcessHeap(), 0,
    nLenOfWideCharStr * sizeof(WCHAR));

if (s3 == NULL)
    return;

MultiByteToWideChar(CP_ACP, 0, s1, -1,
    s3, nLenOfWideCharStr);
...
HeapFree(GetProcessHeap(), 0, s3);
255
10 февраля 2006 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by PitxBull
Нет мы не проигрывали Третью Мировою холодную войну! Великая Империя СССР, опережала США в полувековой гонке вооружений. Она создала образцы неотразимого оружия. И не русские, а американцы должны были рухнуть от изнурения. Под старой партийно-советской оболочкой зрела новая сила, клокочующая космическими энергиями. В недрах ВПК был накоплен громадный запас фантастических технологий,трудились армии талантливейших людей. Русские могли совершить рывок в новую цивилизацию, перед которой померкло бы "японское чудо".
Мы не знали о том что имели. Дурацкие порядки скрывали от нас все великолепие мощи страны. Запад сделал все что бы убить империю изнутри. Собственные выродившиеся верхи подло ударили нам в спину. Неужели все пропало ? Нет! Русская история еще не кончилась. Мы еще можем создать новую Империю - царство сильных людей и высоких технологий.

Автор - Максим Калашников. Книга - "Битва за небеса". Рекомендую всем книги этой серии.


Истину глаголишь. Надо будет книгу почитать. Блин, в моем родном городе стоит завод-гигант по производству полупроводников "Кварц". Точно знаю, что на весь союз таких заводов было - на пальцах одной руки посчитать, а в Европе, вообще не было. А щас он мирно стоит и практически не работает. Думаю, что если б совок не распался, то за эти 15 лет мы б уже покупали процессоры не фирмы Интел, а своей отечественой. Вместо того, что-б немного изменить приоритеты, партийное руководство развалило союз. С другой стороны, само население виновато. Сказали на референдуме, что желают выйти из союза - теперь имеют...
Как меня достали эти придурки-националисты, которые при упоминании о союзе сразу ставят свой любимый вопрос: "Шо, дешевої ковбаси захотів". Не доходит до них что не в колбасе дело. Что они предложили вместо нтр, и процветания страны? Язык свой триждыпроклятый? И президента?
а меня еще кто-то на форуме убеждал, что наш народ - не самый худший. Нет - народ, самый худший из всех, ибо народ - серая масса, а историю творят единицы.
Но я уже зафлудился. Пора прекращать...

2
10 февраля 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Dart Bobr
Думаю, что если б совок не распался, то за эти 15 лет мы б уже покупали процессоры не фирмы Интел, а своей отечественой. Вместо того, что-б немного изменить приоритеты, партийное руководство развалило союз.


не покупали бы. продолжал бы он клепать процессоры для оборонки

Цитата:
Originally posted by Dart Bobr

Как меня достали эти придурки-националисты,


угу

Цитата:
Originally posted by Dart Bobr

которые при упоминании о союзе сразу ставят свой любимый вопрос: "Шо, дешевої ковбаси захотів". Не доходит до них что не в колбасе дело. Что они предложили вместо нтр, и процветания страны? Язык свой триждыпроклятый? И президента?


а национализм - это психическая болезнь. так что логики ждать не приходится. вот только язык не трогай.

Цитата:
Originally posted by Dart Bobr

а меня еще кто-то на форуме убеждал, что наш народ - не самый худший. Нет - народ, самый худший из всех, ибо народ - серая масса, а историю творят единицы.


а он и не самый худший. он везде одинаковый. народы различаются индивидуумами ака отдельными личностями, различаются в масштабах социальных слоев. в массе народ везде одинаков.

534
10 февраля 2006 года
HarryAxe
448 / / 19.01.2006
Цитата:
Originally posted by Vasil_v
Проблема решилась так:
sprintf_s(s1,"fps=%d",fps);

зато неясно что делать с

unsigned long fps;
CString s;
char s1[200];
LPWSTR s3;

MultiByteToWideChar(CP_ACP,0,s1,-1,s3,15);
Вылетает с Acess Violation, видимо, из-за неинициализированной s3. Как её инициализировать?
если написать s3="123", то компилятор ругается о несовместимости типов.
Если s3=(LPWSTR)"123";
то в s3 оказывается мусор, и всё равно Acess Violation.


Ни фига вы, ребята, угараете! Зачем прописывать строку как CString и тут же вызывать SetWindowTextW, предназначенную для работы с Unicode? Если уж приспичило вызывать именно SetWindowTextW, а не SetWindowText, вызывающей необходимую функцию в соответствие с текущей системой символов, пропиши #define _UNICODE в основном header'е (stdafx.h). Только вот не поленись тогда s1.Format("%6d %+8.4f %15.7f", count, d1, d2) поменять на s1.Format("%6d %+8.4f %15.7f" L, count, d1, d2) или, что гораздо лучше, на s1.Format(TEXT("%6d %+8.4f %15.7f"), count, d1, d2).
А вот s1.Format(*"%6d %+8.4f %15.7f", count, d1, d2) - это ВООБЩЕ КРУТО. Даже компилятор офигел, когда ему попалось такое выражение, и забыл напрочь о каком-то там несоотвестсвии типов. Даже я не знаю, как интерпретировать *"%6d %+8.4f %15.7f" (ну, вообще-то знаю, но попытки это вычислить делать не собираюсь). А с HeapAlloc и HeapFree не заморачивайся: проще использовать стандартные new и delete[]. Не хочешь из heapa выделять - используй malloc и free.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог