Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Нужна помощь в работе со строкой |
Автор: Тутанхамец 25.9.2006, 07:50 | ||
Здравствуйте! Срочно нужна помощь вот в таком непростом деле: 1) Взять строку из переменной класса CEdit; 2) Прибавить к этой строке справа символ, допустим, "a"; 3) Запихнуть результат обратно в CEdit. И хорошо бы это оформить в виде функции, которая принимала бы прибавляемый символ. То бишь мне нужен аналог бейсиковского:
Догадываюсь, что вопрос идиотский, но рассчитываю на ваше милосердие. ![]() ![]() |
Автор: Alexeis 25.9.2006, 07:59 | ||
Тутанхамец, наверное речь идет все таки о Visual C++, там для связи с компонентой необходимо создать строковую переменную для данной компоненты. А запись и чтение данных в нее производится функцией
В зависимости от направления передачи. |
Автор: Earnest 25.9.2006, 08:01 |
CString str; Edit.GetWindowText(str); str = /*что-то делаешь*/ Edit.SetWindowText (str); |
Автор: Тутанхамец 25.9.2006, 08:09 | ||
Да, прошу прощения, забыл сказать - речь идет действительно о VC++. Не знаю, что за UpdateData, но по-моему она здесь не причем. Извлекать текст из Edit предполагаю с помощью GetWindowText, а записывать - SetWindowText. Трабл в том, что я ни фига не знаю о работе со строками в VC++ 6.0. Вот что получается:
Но в эдит он лепит не "х", а какие-то случайные символы. ![]() Добавлено @ 08:12 Ой, Earnest, бальшой пасип! ![]() ![]() |
Автор: Alexeis 25.9.2006, 09:17 |
Это стандартная процедура обмена данными с диалогом MFC. Позволяет передовать данные в переменные из контролов и обратно. Фокус в том, что для элементарной работы, такой как считать или записать текст в MFC не обязательно создавать объект класса CEdit, можно толко виндовый контрол. Тогда UpdateData() довольно удобное средство, но можно конечно юзать и Апи. |
Автор: zkv 25.9.2006, 10:20 |
c CString работать удобнее: void CCalcDlg::OnButton9() { //int i=m_Edit.GetWindowTextLength(); //char *existing; CString existing; //existing=(char *)malloc(sizeof(char)*(i+2)); m_Edit.GetWindowText(existing,i); //strcat(existing,"x"); existing += "x"; m_Edit.SetWindowText(existing); //free(existing); } |