Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++&MFC] Диалог. Работа с текстом. 
:(
    Опции темы
FantomaS19
Дата 8.11.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Необходимо написать программу в виде диалогового окна, куда вводится предложение.Если в нем есть предлоги, то записать это предложение в первый файл, если есть цифры, то во второй, если и то и другое, то в третий.Это все могу написать в консоли.Нашел книгу Мешков, Тихомиров "Visual C++ и MFC".Там не очень понятно написано.
Все это надо сделать до 10.11.07, т е до субботы.
Помогите плз разобраться.
ЗЫ:Надо делать в  VS2003.
PM MAIL   Вверх
zkv
Дата 8.11.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 
PM MAIL   Вверх
DigitSphinx
Дата 8.11.2007, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



открой новый проект, тип MFC -> Dialog Based.
занеси на него Edit и щелкни по нему правой кнопкой, Add Variable -> Category = Value ->
Variable Name = MySuperMegaEdit ->OK.
далее занеси кнопку и щелни по ней 2 раза. (обработчик)
Код

UpdateData(true);
MessageBox(MySuperMegaEdit);

далее пиши также как и в консоли (алгоритм как я понял ты знаешь)


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
FantomaS19
Дата 8.11.2007, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код 
UpdateData(true);
MessageBox(MySuperMegaEdit);
вставлять в эту функцию?
void CtempDlg::OnBnClickedButton1()

Это сообщение отредактировал(а) FantomaS19 - 8.11.2007, 20:53
PM MAIL   Вверх
DigitSphinx
Дата 8.11.2007, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



)) на эдит, найди окошко Resource View открой в нем “папку” Dialog и открой диалог.


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
kurlyak
Дата 10.11.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Сначала в ClassWizard (меню View->ClassWizard) на вкладке Member Variables создаешь для своего IDC_EDIT1 (для эдита своего) переменню, например m_edit, тип переменной указываешь CString. А дальше так как ты писал:

Код

UpdateData(true);
MessageBox(m_edit);


Вставляешь это в void CtempDlg::OnBnClickedButton1() (я так понял у тебя 2005 студия стоит, тогда там может не быть ClassWizard, во всяком случае я его там не нашел). Если у тебя 2005 студия, тогда тебе нужно правой кнопкой мыши щелкнуть на твоей кнопке, и выбрать из меню Add Variable, и сделать переменную m_edit. Она будет класса CString. Тогда посмотри по MSDN все функции класса CString, в частности тебе надо разбить эту строку как я понял, поэтому посмотри разновидности функции Find(). Что бы пользоваться этой функцией тебе надо создать для твоего эдита со строкой еще одну переменную (так же правой кнопкой мыши) но на этот раз переменную класса CEdit, например ее назовешь m_edit_ctrl, управляющую перменную. Тогда ты сможешь получить доступ к своей строке так:
Код

CString szMyStr=m_edit_ctrl.Find(........);

или  сделай так:
Код

char myBuff[256];
strcpy(myBuff,m_edit);

и пользуйся этой переменной myBuff как в обычном консольном приложении. Кстати в классе CString есть функця GetBuffer() которая возвращает указатель на строку LPTSTR, то есть ты можешь еще сделать так:
Код

strcpy(myBuff,m_edit_ctrl.GetBuffer());


PM MAIL   Вверх
FantomaS19
Дата 15.11.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вроде получилось обменять с текстовым окном.Но теперь надо это сохранить в *.txt.
Еще нужны исключения, чтобы например сообщить если файл не найден, или не удается записать по какой-то причине.

В обработчике кнопки пишу: 
              
Код

CFile f;
f.Open("c:\1111".txt, 0, 0);


Он пишет, что не может преобразовать 1 аргумент.Почему?

Это сообщение отредактировал(а) FantomaS19 - 15.11.2007, 23:36
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




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


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

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