Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.08.2008, 14:03
arman2001 arman2001 вне форума
Прохожий
 
Регистрация: 03.08.2008
Сообщения: 11
Репутация: 10
Вопрос Математические действия с данными из Memo.

1. Подскажите, пожалуйста, как произвести математические действия с данными из Memo?

Имеются данные S1 и S2.

Код:
Код:
S1[r]:=copy(b,15,6);
S2[v]:=copy(d,22,6);
Как их (S1 и S2) сложить?


2. Почему этот код выдает ошибку?

Код:
Код:
Label1.Caption:=FloatToStr(sum([S1+S2]));
А с числами работает?
Ответить с цитированием
  #2  
Старый 10.08.2008, 14:21
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Потому что Copy возвращает строку.
А какого типа переменные S1 и S2?
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #3  
Старый 10.08.2008, 19:20
Аватар для Zander_driver
Zander_driver Zander_driver вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 29
Репутация: 10
По умолчанию

Если из Memo то наверно S1,S2 - строки.
тогда так:
Код:
Label1.Caption:=FloatToStr(strtoFloat(S1) + strtofloat(S2));

Strtofloat привередничает к знакам-разделителям, так что там аккуратнее...
Ответить с цитированием
  #4  
Старый 10.08.2008, 19:25
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Если это строки, то ошибка бы появилась уже в строчках
Код:
S1[r]:=copy(b,15,6);
S2[v]:=copy(d,22,6);
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
  #5  
Старый 10.08.2008, 22:01
Аватар для cotseec
cotseec cotseec вне форума
Активный
 
Регистрация: 16.07.2008
Сообщения: 353
Версия Delphi: D7,TDE06,RAD09
Репутация: 1443
По умолчанию

Судя по:
Код:
S1[r]:=copy(b,15,6);
S2[v]:=copy(d,22,6);
S1 и S2 - вероятно массивы, а т.к. код проходит без ошибок, то массивы типа string (возможно строки из мемо )
Код:
Label1.Caption:=FloatToStr(sum([S1+S2]));
не проходит, т.к. тупо массив + массив не сложить - нужно складывать поэлементно, это если мои рассуждения правильны
__________________
Понять, что хочет заказчик - бесценно, ведь он платит MasterCard

Последний раз редактировалось cotseec, 10.08.2008 в 23:29.
Ответить с цитированием
  #6  
Старый 11.08.2008, 07:14
Аватар для Zander_driver
Zander_driver Zander_driver вне форума
Прохожий
 
Регистрация: 07.03.2008
Сообщения: 29
Репутация: 10
По умолчанию

Но если массив - как вообще можно пытаться вывести какую-то сумму на ОДИН Label ? Из его наличия вроде ясно что результатом должно быть одно значение а не массив, а если по элементам массивы складывать - массив получится.

Вот так из-за неточности в вопросе автора получаются гадания на кофейной гуще...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter