Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.05.2014, 21:06   #11
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

А убрать теги нафиг не судьба? Поставь вместо них простые символы: /, *, + , -, = и т.п. И будет тебе проще.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 02.05.2014, 21:25   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Мне кажется тут не убирать теги нужно, а применять регулярные выражения. ИМХО проще будет чем представленный способ.
И это при том что автор не сказал откуда эти данные, и какова их структура. Может они повторяются как таблица, может еще что...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.05.2014, 21:58   #13
WeezyWayne
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
А убрать теги нафиг не судьба? Поставь вместо них простые символы: /, *, + , -, = и т.п. И будет тебе проще.
Изначально так и было, но там много данных и мне пришлось поставить их в теги, что бы не запутаться.


Цитата:
Сообщение от Stilet Посмотреть сообщение
Мне кажется тут не убирать теги нужно, а применять регулярные выражения. ИМХО проще будет чем представленный способ.
И это при том что автор не сказал откуда эти данные, и какова их структура. Может они повторяются как таблица, может еще что...
Для меня регулярки не будут простым способом). Да и вроде бы проблема не в тегах, инфа же нормально собирается с них
WeezyWayne вне форума Ответить с цитированием
Старый 03.05.2014, 14:16   #14
WeezyWayne
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 26
По умолчанию

Всё, всем спасибо. Вот мой конечный вариант, который вроде бы работает :

Код:
var
a:integer;
price,price1,calc:Extended;
begin
for a:=Memo1.Lines.Count-1 downto 0 do
begin
price:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price]',Memo1.Lines[a])+7,Pos('[/Price]',Memo1.Lines[a])-Pos('[Price]',Memo1.Lines[a])-7));
price1:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price1]',Memo1.Lines[a])+8,Pos('[/Price1]',Memo1.Lines[a])-Pos('[Price1]',Memo1.Lines[a])-8));
calc:=price + (price/100*20);
if (StrToFloat(Format('%1.2f', [calc])) >= price1) then
 begin
Memo1.Lines.Delete(a);
 end
 else
 begin
Memo2.Lines.Add(Memo1.Lines[a])
end;
end;
end;
Тему можно закрывать

Последний раз редактировалось WeezyWayne; 03.05.2014 в 14:26.
WeezyWayne вне форума Ответить с цитированием
Старый 03.05.2014, 14:18   #15
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

как была лажа так и осталась, в чем секрет?
eval вне форума Ответить с цитированием
Старый 03.05.2014, 14:26   #16
WeezyWayne
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
как была лажа так и осталась, в чем секрет?
Ну на сколько я понял, проблема была в выполнении математических действий.
WeezyWayne вне форума Ответить с цитированием
Старый 03.05.2014, 20:10   #17
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Код:
var
a:integer;
price,price1,calc:Extended;
begin
for a:=Memo1.Lines.Count-1 downto 0 do
begin
price:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price]',Memo1.Lines[a])+7,Pos('[/Price]',Memo1.Lines[a])-Pos('[Price]',Memo1.Lines[a])-7));
price1:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price1]',Memo1.Lines[a])+8,Pos('[/Price1]',Memo1.Lines[a])-Pos('[Price1]',Memo1.Lines[a])-8));
calc:=price + (price/100*20);
if (StrToFloat(Format('%1.2f', [calc])) >= price1) then
 begin
Memo1.Lines.Delete(a);
 end
 else
 begin
Memo2.Lines.Add(Memo1.Lines[a])
end;
end;
end;
Код:
var
a:integer;
price,price1,calc:Extended;
begin
for a:=Memo1.Lines.Count-1 downto 0 do
begin
price:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price]',Memo1.Lines[a])+7,Pos('[/Price]',Memo1.Lines[a])-Pos('[Price]',Memo1.Lines[a])-7));
price1:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price1]',Memo1.Lines[a])+8,Pos('[/Price1]',Memo1.Lines[a])-Pos('[Price1]',Memo1.Lines[a])-8));
calc:=price + (price/100*20);
if (StrToFloat(Format('%1.2f', [calc])) >= price1) then
 Memo1.Lines.Delete(a) else
  Memo2.Lines.Add(Memo1.Lines[a])
end;
end;
Где красивее?
doktor255 вне форума Ответить с цитированием
Старый 03.05.2014, 21:49   #18
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Цитата:
Ну на сколько я понял, проблема была в выполнении математических действий.
Код:
StrToFloat(Format('%1.2f', [calc])
А где-то в параллельной Вселенной люди внимательно читают что им пишут другие и знают о RoundTo. Такие люди понимают что окружающие это не просто тени, а добрые, улыбчивые дяди в белых халатах (иногда с не вкусными витаминками, иногда со шприцами) и пытаются им помочь. Но помощь не просто мана небесная, которая исполняет все их желания, а она другая. Только тот кто думает сам, способен найти вход (а главное выход) в Матрицу...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 04.05.2014, 00:21   #19
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Utkin Просто в середине фильма синие колёса кончились, и дальше мы ели только красные. А от них так башню рвёт, отвал башки
doktor255 вне форума Ответить с цитированием
Старый 04.05.2014, 00:44   #20
WeezyWayne
Пользователь
 
Регистрация: 26.04.2014
Сообщений: 26
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Код:
var
a:integer;
price,price1,calc:Extended;
begin
for a:=Memo1.Lines.Count-1 downto 0 do
begin
price:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price]',Memo1.Lines[a])+7,Pos('[/Price]',Memo1.Lines[a])-Pos('[Price]',Memo1.Lines[a])-7));
price1:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price1]',Memo1.Lines[a])+8,Pos('[/Price1]',Memo1.Lines[a])-Pos('[Price1]',Memo1.Lines[a])-8));
calc:=price + (price/100*20);
if (StrToFloat(Format('%1.2f', [calc])) >= price1) then
 begin
Memo1.Lines.Delete(a);
 end
 else
 begin
Memo2.Lines.Add(Memo1.Lines[a])
end;
end;
end;
Код:
var
a:integer;
price,price1,calc:Extended;
begin
for a:=Memo1.Lines.Count-1 downto 0 do
begin
price:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price]',Memo1.Lines[a])+7,Pos('[/Price]',Memo1.Lines[a])-Pos('[Price]',Memo1.Lines[a])-7));
price1:=StrToFloat(Copy(Memo1.Lines[a],Pos('[Price1]',Memo1.Lines[a])+8,Pos('[/Price1]',Memo1.Lines[a])-Pos('[Price1]',Memo1.Lines[a])-8));
calc:=price + (price/100*20);
if (StrToFloat(Format('%1.2f', [calc])) >= price1) then
 Memo1.Lines.Delete(a) else
  Memo2.Lines.Add(Memo1.Lines[a])
end;
end;
Где красивее?
В оригинале у меня больше действий, это было для примера. Так что без begin end не обойтись

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
StrToFloat(Format('%1.2f', [calc])
А где-то в параллельной Вселенной люди внимательно читают что им пишут другие и знают о RoundTo. Такие люди понимают что окружающие это не просто тени, а добрые, улыбчивые дяди в белых халатах (иногда с не вкусными витаминками, иногда со шприцами) и пытаются им помочь. Но помощь не просто мана небесная, которая исполняет все их желания, а она другая. Только тот кто думает сам, способен найти вход (а главное выход) в Матрицу...
Если бы мне объяснили что Format каким то образом очень плохо влияет на мою ауру, то может быть я бы и использовал RoundTo.
Использую Format и получаю 2 своих числа после запятой, что в принципе
меня устраивает, так что не вижу существенной проблемы

Последний раз редактировалось WeezyWayne; 04.05.2014 в 00:49.
WeezyWayne вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать программу, выполняющую по выбору сложение, вычитание, умножение или деление нацело двух многоразрядных чисел. dmitriy20104 Паскаль, Turbo Pascal, PascalABC.NET 1 20.08.2012 19:12
Уважаемые программисты, отзовитесь. (С++) Арифметические действия для комплексных чисел (сложение, вычитание, умножение и деление) Meurtre Помощь студентам 4 19.12.2011 01:15
[Tasm]Сложение/Умножение длинных чисел falcon92 Помощь студентам 0 17.11.2010 15:34
Сложение и умножение korzunmaria Помощь студентам 3 20.05.2010 20:07
Сложение и умножение korzunmaria Паскаль, Turbo Pascal, PascalABC.NET 3 20.05.2010 19:01