Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118

ComboBox. Как разделить строку, чтобы часть слов вводилась в Memo, а остальное переменную String ?

15.03.2010, 17:16. Показов 4027. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как разделить выбранную строку ComboBox, чтобы часть слов вводилась в Memo, а остальное в переменную String ? Как ввести в Memo - элементарно, а как разделить проблема! Помогите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2010, 17:16
Ответы с готовыми решениями:

Как удалить часть строки, а остальное разделить по первой ","
День добрый! Подскажите как мне сделать такое: 1) Дано буфер в который принимаются данные с UART char uart2_rx_buf; Данные приходят в...

Как правильно записать часть HTTP-кода в переменную типа String
Как правильно записать часть http кода в переменную типа стринг ? string str1 = "<h2 style="text-align:...

Как разделить и преобразовать строку из string в int?
Требуется создать приложение для нахождения максимального числа из строки. Поиск по форумам дал кое какие результаты, но не могу понять...

13
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
15.03.2010, 17:19
C++
1
2
3
AnsiString s=ComboBox1->Text;
Memo1->Text=s.SubString(0,s.Pos("|")-1);
AnsiString s2=s.SubString(s.Pos("|")+1,s.Length());
"|" в данном случае разделитель. Его можно поменять на другой любой символ.
1
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
15.03.2010, 18:09  [ТС]
Отличное решение! Применительно ко мне окончательный код такой:

C++
1
2
3
4
5
6
void __fastcall TForm1::Button1Click(TObject *Sender)
{// Вставляем первую часть строки из ComboBox1 в Memo1
AnsiString s=ComboBox1->Text;
Memo1->Text=s.SubString(0,s.Pos("|")-1);
AnsiString s2=s2.SubString(s.Pos("|")+1,s.Length());
Memo1->Lines->Add(s2)   ;
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button2Click(TObject *Sender)
{// Вставляем вторую часть строки из ComboBox1 в Memo1
Memo1->Lines->Add("");
Memo1->Lines->Add("");
AnsiString s=ComboBox1->Text;
Memo1->Lines->Add("Заключение: " + s.SubString(s.Pos("|")+1, s.Length()));
AnsiString s2=s.SubString(0, s.Pos("|")-1);
p_cM, большое спасибо!
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
23.03.2010, 16:42  [ТС]
У меня несвязуха в последней строке, не получается соединить переменные в одну строку. Пишет неправильно указано дополнение. А как правильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::Button1Click(TObject *Sender)
{
{// Вставляем первую часть строки из ComboBox1 в Memo1
AnsiString s=ComboBox1->Text;
AnsiString s2=s.SubString(s.Pos("|")+1,s.Length());
 
 
AnsiString sa=ComboBox2->Text;
Memo1->Lines->Add( s.SubString(0,s.Pos("|")-1)+ ". " + sa.SubString(0,sa.Pos("|")-1));
AnsiString sa2=sa.SubString(sa.Pos("|")+1,sa.Length());
Memo2->Lines->Append(s2.c_str() +  sa2.c_str())   ;
}
}
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.03.2010, 16:50
А вот так:
C++
1
Memo2->Lines->Append(s2 +  sa2);
Добавлено через 5 минут
Зачем писать
C++
1
Memo2->Lines->Add(s2.c_str())   ;
Если можно:
C++
1
Memo2->Lines->Add(s2)   ;
?
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
23.03.2010, 20:56  [ТС]
Ni'Tan, спасибо, все правильно, все работает! Я вообще-то так пробовал: (s2 + sa2 + sb2...), но почему-то сначала не сработало?
Если не трудно, подскажите как сделать, чтобы в ComboBox1 и 2, при заполнении Items по нажатию на кнопку
(код на кнопке:
C++
1
2
ComboBox1->Items->Append(" dfdfd hdhhgj.");
ComboBox2->Items->Append(" bbfng hfm.");
)
в поле ComboBox1 сразу появлялась первая строка. А у меня остается пустая строка и уже после открывания списка приходится выбирать. Спасибо!
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
23.03.2010, 21:42
C++
1
ComboBox1->Text=ComboBox1->Items->Strings[0];
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
23.03.2010, 21:58  [ТС]
Не получается! Та же картина - при нажатии на кнопку поля остаются пустыми. В инспекторе объектов ItemIndex ставлю = 0, то же не получается!
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
24.03.2010, 10:40
У меня все работает нормально. Ты весь код покажи, может где-то есть ошибка?
1
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
24.03.2010, 18:06  [ТС]
Понял! Я писал так:
C++
1
2
3
4
ComboBox1->Text = ComboBox1->Items->Strings[0];
ComboBox1->Items->Append(" GGGGGGGGGG|888888 ");
ComboBox1->Items->Append(" HHHHHHHHHHHH|55555555 ");
ComboBox1->Items->Append(" KKKKKKK|444444 ");
а правильно эту строку
C++
1
ComboBox1->Text = ComboBox1->Items->Strings[0];
писать в конце кода

Добавлено через 31 минуту
Еще вопрос, у меня при выполнении строки:
C++
1
Memo1->Lines->Add("lkjkjdtyd: " + s2 + sa2 + ... + sN2);
в контексте:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AnsiString s=ComboBox1->Text; // перменная s  строки ComboBox1
// переменная второй части строки ( после знака "|" ) - s2
AnsiString s2=s.SubString(s.Pos("|")+1,s.Length());
 
//  ComboBox2
AnsiString sa=ComboBox2->Text;
AnsiString sa2=sa.SubString(sa.Pos("|")+1,sa.Length());
..............................................
//  ComboBox(N)
AnsiString sN=ComboBox(N)->Text;
AnsiString sN2=sN.SubString(sN.Pos("|")+1,sN.Length());
 
// Вставляем первую половину строки (из переменной s)
RichEdit1->Lines->Add(s.SubString(0,s.Pos("|")-1) + sa.SubString(0,sa.Pos("|")-1) + ...+sN.SubString(0,sN.Pos("|")-1));
 
// Вставляем вторую половину строки (из переменной s2)
Memo1->Lines->Add("lkjkjdtyd: " + s2 + sa2 +...+ sN2);
в случае, если после разделительного знака "|" в некоторых переменных (s2, sa2 и т.д.) нет текста, то в Memo1 слова вставляются с приличными пробелами, можно ли этого избежать?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
24.03.2010, 18:11
Можно. Более подробно отвечу позже.
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
24.03.2010, 19:17  [ТС]
Спасибо, уже нашел, есть такая тема.
C++
1
2
3
String=stroka;
stroka=Memo2->Text;
Memo2->Text=StringReplace(Memo2->Text," ","",TReplaceFlags()<<rfReplaceAll);
но вот проблема, как узнать, что находится в Memo2, пробелы или знаки, чтобы сработал такой код?
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (Memo2->Lines->Count<=0)
{
RichEdit1->Lines->Add("бла блабла");
}
else
{
RichEdit1->Lines->Add(Memo2->Text);
}
 
}
Спасибо!
0
 Аватар для Gremlin
519 / 307 / 58
Регистрация: 30.07.2008
Сообщений: 607
25.03.2010, 01:31
Я так понял, что нужно вставить текст в RichEdit1 только если Memo2 пустой

C++
1
if (Memo2->Text.Length() == 0)
0
8 / 7 / 2
Регистрация: 22.02.2010
Сообщений: 118
25.03.2010, 15:09  [ТС]
Спасибо именно то, что надо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.03.2010, 15:09
Помогаю со студенческими работами здесь

Как записать код программы, чтобы часть запроса распознавало как переменную, а не как текст?
&quot;Название таблицы&quot;-это переменная как записать код программы чтобы её распознавало как переменную, а не как текст? ...

Как скопировать строку из файла .txt в переменную String?
Есть файл .txt, в котором есть 1 строка. Нужно при нажатии на кнопку TButton скопировать эту строку в переменную String.

Как сделать, чтобы при выборе определенной строки в ComboBox, текстовое содержимое отображалось на memo?
Доброго времени суток, форумчане Подскажите, как сделать, чтобы при выборе определенной строки в ComboBox, текстовое содержимое...

Как считать строку, введённую с клавиатуры в переменную типа string
Как считать строку, введённую с клавиатуры в переменную типа string? Подскажите, пожалуйста. static void Main(string args) ...

Вывести в memo строку и переменную
Не получается вывести в memo следущее &quot;Интеграл = &quot; и переменная t (это переменная интеграла) пишу следущее ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru