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

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

27.10.2009, 18:22. Показов 2001. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru