Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/27: Рейтинг темы: голосов - 27, средняя оценка - 4.96
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798

Присваивание одной линии строки в Memo

15.09.2009, 12:10. Показов 5194. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Ребята, такой вопрос. Есть два компонента Memo, мне нужно чтобы по нажатию на кнопку Button1, произошло присваивание первой строки из Memo1, а именно этот текст - 1. Присваиваемая строка, а не весь текст. Я не знаю как нужно сделать правильно. Придумал так, но так присваивается весь текст, который есть в Memo1. Объясните если можно подробнее.

C++
1
2
3
4
5
6
7
8
9
10
// Обработка Memo и присваивание строки--------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   String str1, str2, str3; // Объявление строк
 
   str1 = Memo1->Lines->Text; // Присваивание только одной, любой строки
 
   Label1->Caption = str1; // Пробный вывод на Label1
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2009, 12:10
Ответы с готовыми решениями:

Перенести данные из memo в одной форме в memo в другой
Как перенести данные из memo в одной форме в memo в другой?

Присваивание значения переменным одной строкой через пробел
Здравствуйте. Столкнулся с такой задачей: пускай на С++ у нас есть код int a; float b; string c; cin >> a >> b >>...

Получение номера взятой строки из memo, содержимое которой вставлено рандомно в memo
Вообщем есть текстовый файл, из которого берутся все строки, вставляются в memo, а из memo уже в переменную, берущую рандомную строку и...

13
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.09.2009, 12:18
Lines - TStrings, почитайте хелп по свойствам и методам этого класса и вам все предельно ясно станет, что да как
0
81 / 81 / 6
Регистрация: 14.09.2009
Сообщений: 252
15.09.2009, 12:21
Цитата Сообщение от Maestrino Посмотреть сообщение
C++
1
str1 = Memo1->Lines->Text; // Присваивание только одной, любой строки
Это присваивание только всего текста.

C++
1
str1=Memo1->Lines->Strings[0];
Вот так как-то)
1
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
15.09.2009, 12:52  [ТС]
GAV_13, Спасибо большое за помощь, вопрос решён.
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
16.09.2009, 16:56  [ТС]
Ребята, нужна ещё раз Ваша помощь, по Memo (или если это проще сделать с RichEdit значит буду делать с ним). Возникла неучтённая "закавыка".

Нужно по нажатию кнопки Button2 скопировать текст в Memo2, это получается, но нужно чтобы он там был без пробелов. Например так(это не код, а пример как нужно чтобы выглядело):
Текст, который может быть в Memo1:
C
1
2
3
4
5
6
7
8
9
10
void myfunction(int a)
{
   int i = 10;
   int j = 10;
   for(int a = 0; a < i; a++){
      for(int b = 0; b < j; b++){
         cout<<" Результат = ["<<a<<"]<<a<<"["<<b<<"]<<b<<endl;
     }
   }
}
Текст, который должен получиться в Memo2:
C
1
2
3
4
5
6
7
8
9
10
void myfunction(int a)
{
inti=10;
intj=10;
for(inta=0;a<i;a++){
for(intb=0;b<j;b++){
cout<<"Результат=["<<a<<"]<<a<<"["<<b<<"]<<b<<endl;
}
}
}
Тоесть нужно каким-то образом удалить все пробелы между словами и вначале строк, вообще, где они только встретятся. Или пример по проще:
До обработки - Memo1:
Code
1
2
3
Тестируемый текст, который должен быть в
 Memo и когда произойдёт обработка,
 Пробелы не должны остаться.
После обработки - Memo2:
Code
1
2
3
Тестируемыйтекст,которыйдолженбытьв
Memoикогдапроизойдётобработка,
Пробелынедолжныостаться.
Ребята, как сделать, идей никаких, честно. :(
0
81 / 81 / 6
Регистрация: 14.09.2009
Сообщений: 252
16.09.2009, 17:05
C++
1
Memo2->Lines->Text=ReplaceStr(Memo1->Lines->Text," ","");
Что-то типа этого...
1
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
16.09.2009, 18:55  [ТС]
GAV_13,
Цитата Сообщение от GAV_13 Посмотреть сообщение
C++
1
Memo2->Lines->Text=ReplaceStr(Memo1->Lines->Text," ","");
Спасибо ещё раз за помощь, немного не так, но я уже нашёл как нужно, вот так нужно:
C++
1
Memo2->Lines->Text = StringReplace(Memo1->Lines->Text, " ", "", TReplaceFlags()<<rfReplaceAll);
Всё равно спасибо за помощь!
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
19.09.2009, 22:22  [ТС]
Ребята, ещё один нюанс, непредвиденный. Этот код удаляет пробелы
C++
1
Memo2->Lines->Text = StringReplace(Memo1->Lines->Text, " ", "", TReplaceFlags()<<rfReplaceAll);
Нужно ещё предусмотреть, если перед строкой или после есть знак табуляции и удалить табуляцию, т.к. текст может быть скопирован из Word'a.

Знаю что код клавиши Tab - VK_TAB и в HEX-значении - 0x9. Прокатит ли такой вариант?

C++
1
Memo2->Lines->Text = StringReplace(Memo1->Lines->Text, VK_TAB, "", TReplaceFlags()<<rfReplaceAll);
Или HEX-значение поставить?

В справке о StringReplace сказано
System::AnsiString StringReplace(const System::AnsiString S, const System::AnsiString OldPattern, const System::AnsiString NewPattern, TReplaceFlags Flags)
, но тут второй параметр строка....

Подскажите, как удалить и все табуляторы?
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
19.09.2009, 23:23
Код табуляции \t
C++
1
Memo2->Lines->Text = StringReplace(Memo1->Lines->Text, "\t", "", TReplaceFlags()<<rfReplaceAll);
1
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
20.09.2009, 12:12  [ТС]
АНК, Спасибо, честно признаться выпало из головы совсем, в консольных приложениях использовал \t, а тут даже не додумался.
0
 Аватар для FW-TOT
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 17
20.09.2009, 20:29
Разрешите вопрос немного не в тему? Тоже про Мемо.
Как удалить символ в строке? Докопался до конструкции вроде
C++
1
Memo1->Lines->Strings[1].Delete(2,1);
которая не производит видимого эффекта.

И можете подкинуть адекватный хэлпарь по компонентам Билдера?
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
20.09.2009, 20:42
FW-TOT,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
     Memo1->Text = "Разрешите вопрос немного не в тему? Тоже про Мемо.\r\n"
                   "Как удалить символ в строке? Докопался до конструкции вроде";
 
    Edit1->Text = Memo1->Lines->Strings[1].Delete(2,1);
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    Memo1->Lines->Strings[1] = Memo1->Lines->Strings[1].Delete(2,1);
}
//---------------------------------------------------------------------------
ты так пробовал?
0
125 / 116 / 17
Регистрация: 27.02.2007
Сообщений: 291
20.09.2009, 20:48
Цитата Сообщение от FW-TOT Посмотреть сообщение
1 Memo1->Lines->Strings[1].Delete(2,1);
Да, непосредственно изменить строку в Memo1->Lines не удастся. Ее надо переписать
C++
1
2
3
  String s = Memo1->Lines->Strings[1];
  s.Delete(2,1);
  Memo1->Lines->Strings[1] = s;
или
Цитата Сообщение от mirso Посмотреть сообщение
Memo1->Lines->Strings[1] = Memo1->Lines->Strings[1].Delete(2,1);
2
 Аватар для FW-TOT
1 / 1 / 0
Регистрация: 04.03.2009
Сообщений: 17
20.09.2009, 21:22
Пасиба =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2009, 21:22
Помогаю со студенческими работами здесь

Вывести в memo компонент из dbgrid (memo строки)
Здравствуйте, писала программу для БД созданную в SQL. Столкнулась с такой проблемой: dbgrid некоторые строки (поля) стали memo......

На одной линии
Как можно сделать скрипт на одной линии &lt;div class=&quot;videostil&quot; &gt; &lt;center&gt; &lt;img src=&quot;/proba.png&quot; border=&quot;0&quot;...

Присваивание данных предыдущей строки
Добрый день! Помогите пожалуйста SQL запросом. Есть таблица &quot;Покупки&quot;, поля - &quot;клиент&quot;, &quot;дата&quot;, &quot;сумма...

Присваивание переменной типа double строки
Возможно ли без создания новой переменной?

Размещение блоков на одной линии
Как мне разместить два блока div рядом на одной горизонтали?


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
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. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru