С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
9 / 9 / 1
Регистрация: 27.10.2009
Сообщений: 65

Построчный перенос значений из Memo1 в Memo2

27.10.2009, 18:22. Показов 1984. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать программу «Дж-ккалл», которая переводит количество полученной энергии организмом за день. Количество съеденных за день блюд читать из файла, а также соответствующие им Дж полученной энергии.
Я заполняю Memo1 читая данные из файла:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
}
//---------------------------------------------------------------------------
Вопрос заключается в том, что нужно перенести каждую вторую строку из Memo1 в Memo2 с последующим сложением всех чисел. Умножением на коэффициент, чтобы перевести все калории в Джоули. Реализаций примитивных(зависит от количества данных в текстовом файле) наделал)):
но нужен код который не будет зависеть от количества заполненных строк в файле т.е. будет работать с любым количеством заполненных строк в файле.
Жду совета...
=)
Миниатюры
Построчный перенос значений из Memo1 в Memo2  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2009, 18:22
Ответы с готовыми решениями:

Перенос текста из Memo1 в Memo2
Здравствуйте, подскажите пожалуйста, как можно реализовать в Embarcadero Rad Studio перенос текста из Memo1 в Memo2. Или хотя бы где можно...

Перенос десятичных чисел из memo1 в memo2
void __fastcall TStartMenu::XYClick(TObject *Sender) { DM-&gt;Lines-&gt;Clear(); C-&gt;Lines-&gt;Clear(); { int *arDM = new int; ...

Поиск в Memo1 перенос в Memo2
Здравствуйте! Нужна помощь. в Memo1 открывается текстовый файл со списком, нужно чтобы в Memo2 можно было вывести, например текст от 1 до...

6
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
27.10.2009, 19:46
Цитата Сообщение от Тайлор Посмотреть сообщение
нужно перенести каждую вторую строку из Memo1 в Memo2
Если порядок будет стабильный, и каждая вторая строка будет такая как в скриншоте, то вот.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
   // Переносим каждую вторую строку из Memo1 в Memo2
   int counter1 = 1;
 
   while(counter1 < Memo1->Lines->Count){ // Пока 'counter1' меньше чем общее кол-во строк в Memo1
      Memo2->Lines->Add(Memo1->Lines->Strings[counter1]); // Добавить строку соответствующую индексу 'counter1' в Memo2 из Memo1 
      counter1 += 2;
    } 
 
   // Сложение всех чисел в Memo2
   int counter2 = 0;
   int total = 0;
 
   while(counter2 < Memo1->Lines->Count){
      total += Memo2->Lines->Strings[counter2].ToInt();
      counter2++;
    }
...
Добавлено через 13 минут
Вот правильный вариант. Там ошибочка небольшая, но лимит правки сообщений уже действует.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int counter1 = 1;
 
while(counter1 < Memo1->Lines->Count){ // Пока 'counter1' меньше чем общее кол-во строк в Memo1
   Memo2->Lines->Add(Memo1->Lines->Strings[counter1]); // Добавить строку соответствующую индексу 'counter1' в Memo2 из Memo1
   counter1 += 2;
}
 
// Сложение всех чисел в Memo2
int counter2 = 0;
int total = 0;
 
while(counter2 < Memo2->Lines->Count){
   total = total + Memo2->Lines->Strings[counter2].ToInt();
      counter2++;
 
  }
  Memo2->Lines->Add(total);
}
1
9 / 9 / 1
Регистрация: 27.10.2009
Сообщений: 65
27.10.2009, 19:58  [ТС]
Maestrino, благодарю за дельный совет и оперативность. Покажу, что получается дальше:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int counter1 = 1;
while(counter1 < Memo1->Lines->Count)
 {
  Memo2->Lines->Add(Memo1->Lines->Strings[counter1]);
  counter1 += 2;
 }
}
//---------------------------------------------------------------------------
Миниатюры
Построчный перенос значений из Memo1 в Memo2  
0
9 / 9 / 1
Регистрация: 27.10.2009
Сообщений: 65
27.10.2009, 20:41  [ТС]
Полный код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
int counter1 = 1;
while(counter1 < Memo1->Lines->Count)
 {
  Memo2->Lines->Add(Memo1->Lines->Strings[counter1]);
  counter1 += 2;
 }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int counter2 = 3; //начинаем суммирование с четвертой строки
int total = 0;
while(counter2 < Memo2->Lines->Count)
 {
  total = total + Memo2->Lines->Strings[counter2].ToInt();
  counter2++;
 }
  Label1->Caption = total/4.2;
  Label2->Caption = "ккал";
}
//---------------------------------------------------------------------------
Результат:
Миниатюры
Построчный перенос значений из Memo1 в Memo2  
0
Маэстро
Вирусоборец
 Аватар для Maestro
1244 / 365 / 40
Регистрация: 06.09.2009
Сообщений: 798
27.10.2009, 21:03
Тайлор, А откуда у вас в Memo2 строки - Количество полученых джоулей? Лучше сделайте ещё одну Label над Memo2 с текстом Количество полученых джоулей. Оставив Memo2 только для чисел...

C++
1
total = total + Memo2->Lines->Strings[counter2].ToInt();
Можно записать как
C++
1
total += Memo2->Lines->Strings[counter2].ToInt();
1
9 / 9 / 1
Регистрация: 27.10.2009
Сообщений: 65
27.10.2009, 21:13  [ТС]
Maestrino, я добавил в Memo2 текст, чтобы придать визуальный смысл его существованию на форме. Не больше и не меньше...На результат вроде не влияет...Хотя лучше, конечно оставить Memo2 только для чисел.
0
9 / 9 / 1
Регистрация: 27.10.2009
Сообщений: 65
27.10.2009, 21:44  [ТС]
Цитата Сообщение от Maestrino Посмотреть сообщение
Тайлор, А откуда у вас в Memo2 строки - Количество полученых джоулей? Лучше сделайте ещё одну Label над Memo2 с текстом Количество полученых джоулей. Оставив Memo2 только для чисел...

C++
1
total = total + Memo2->Lines->Strings[counter2].ToInt();
Можно записать как
C++
1
total += Memo2->Lines->Strings[counter2].ToInt();
Все дело в том, что у меня были проблемы с циклами... и я искал обходной путь...в том числе и перенос построчный для чего и создал тему. А итоговый продукт моих мучений с вашей помощью вышел такой:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(OpenDialog1->Execute())
{
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int counter = 1; 
int total = 0;
while(counter < Memo1->Lines->Count)
 {
  total += Memo1->Lines->Strings[counter].ToInt();
  counter=counter+2;
 }
float answer = total/4.2;
Panel1->Caption = FloatToStr(answer) + "êêàë";
}
//---------------------------------------------------------------------------
Результат:
Миниатюры
Построчный перенос значений из Memo1 в Memo2  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.10.2009, 21:44
Помогаю со студенческими работами здесь

Из memo1 в memo2
Ребята у меня проблема есть исходник на Pascal'e программа рабочая, не могу офрмить этуже программу в Delfi нужна ваша помощь покажите мне...

Delphi - от memo1 к memo2
Здравствуйте! Я создаю облясть для ввода текста Memo1 и при нажатие на кнопку текс должен скопироваться в другую область memo2 как это...

memo1+memo2=>memo3
На форме лежит 3 мемо. memo1: Источник1 Источник2 Источник3 Источник4 ... memo2:

Копирование из Memo1 в Memo2
Стоит задача копировать содержимое memo1 в memo2 до тех пор пока например не встретится слово &quot;стоп&quot;. Не хватает синтаксиса...

Просто из Memo1 в Memo2
из Memo1 перенести символы в Memo2 в Memo2 символы будут расположены в порядке который я задам. допустим Text потом Text потом Text... ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru