Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.09.2012, 19:48   #1
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию многостаночный эдит контрол + массив

Есть многостаночный эдит контрол за него отвечает CString m_e1. Как получить массив строк эдит контрола? Например
Код:
CString m_e2 [] = {"<первая строка>","<вторая строка>","...."};

Последний раз редактировалось Madmaxisss; 17.09.2012 в 19:53.
Madmaxisss вне форума Ответить с цитированием
Старый 17.09.2012, 23:21   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Разбить строки самому. Многострочный editbox выдает стринг, в котором строчки разделяются символом \n
waleri вне форума Ответить с цитированием
Старый 18.09.2012, 00:14   #3
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию

нет ни каких "\n" символов, если бы были то m_e2 записалось бы в одну строку, а не так как в эдит контроле


Код:
	CString m_e2;
	UpdateData(TRUE);
	for (int i=1; i<m_e1.GetLength(); i++)
	{
		if (m_e1[i]=='\\' && m_e1[i+1]=='n'){}
	    else
		m_e2+=m_e1[i];
	}

Последний раз редактировалось Madmaxisss; 18.09.2012 в 00:17.
Madmaxisss вне форума Ответить с цитированием
Старый 18.09.2012, 01:05   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Цитата:
строчки разделяются символом \n
Madmaxisss

нет ни каких "\n" символов

Ты символ '\n' от строки "\n" отличать умеешь?

rtfm CString::Tokenize

Код:
CString s = _T("Foo\nbar\nBaz\nTobaz");
int current = 0;

CString token = s.Tokenize(_T("\n"), current);
while (token.GetLength())
{
	_tprintf_s(_T("%s\n"), token.GetString());
	token = s.Tokenize(_T("\n"), current);
}
Rififi вне форума Ответить с цитированием
Старый 19.09.2012, 05:54   #5
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию

Rififi, не понятно что делает код, должна типа строка получится token = "FoobarBazTobaz" ? но почему-то ни чё не получается.
а что касается многостраничного (TRUE) эдит контрола, то даже если задать к его переменной m_e1 = _T("Foo\nbar\nBaz\nTobaz"), то он все ровно выведет в одну строку. Это опять доказывает что нет там ни каких \n символов
Madmaxisss вне форума Ответить с цитированием
Старый 19.09.2012, 06:57   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Либо \n либо \r - если честно - я не помню.
Легче всего *считать* многострочный текст и посмотреть...
waleri вне форума Ответить с цитированием
Старый 19.09.2012, 08:34   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

2 Madmaxisss
Прочитайте про спец символы. \n - это НЕ \ и n, это один символ.
p51x вне форума Ответить с цитированием
Старый 19.09.2012, 09:17   #8
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию

ааа блин, еще раз спрошу :|
Почему когда присваиваешь к переменой многостаночного э.к. m_e1 = _T("Foo\nbar\nBaz\nTobaz") в нем записывается "FoobarBazTobaz" (в одну строку), а когда сохраняешь _T("Foo\nbar\nBaz\nTobaz") в файл txt, то там записывается как надо по строкам
Код:
Foo
bar
Baz
...
???

Последний раз редактировалось Madmaxisss; 19.09.2012 в 09:24.
Madmaxisss вне форума Ответить с цитированием
Старый 19.09.2012, 09:24   #9
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Потому что редакторы разные... notepad.exe например показывает только то ли \n то ли \r (не помню уже) а в других случаях показывает все на одной строке - звучит знакомо?
waleri вне форума Ответить с цитированием
Старый 19.09.2012, 09:29   #10
Madmaxisss
Форумчанин
 
Регистрация: 12.07.2011
Сообщений: 158
По умолчанию

да в любом текстовом редакторе, даже в блокноте как надо (строку _T("Foo\nbar\nBaz\nTobaz") в несколько строчек)
Madmaxisss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вводить цифры в эдит контрол и они должны по нажатию на кнопку переводится в листбокс molo4nik Общие вопросы C/C++ 12 09.12.2011 22:53
двигаю контрол мышкой, почему мышка перемещается быстрее чем контрол PaulRom Microsoft Office Access 0 06.12.2011 11:19
Запретить ввод в Эдит русские символы. Ekzot1k Общие вопросы Delphi 1 14.06.2009 07:46
Косяки со вставкой в эдит joker Общие вопросы Delphi 1 14.09.2008 09:00
Текущая дата в Эдит Ermiss Общие вопросы Delphi 4 22.12.2007 00:08