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

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - 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,097
По умолчанию

Мне кажется тут не убирать теги нужно, а применять регулярные выражения. ИМХО проще будет чем представленный способ.
И это при том что автор не сказал откуда эти данные, и какова их структура. Может они повторяются как таблица, может еще что...
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,011
По умолчанию

как была лажа так и осталась, в чем секрет?
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
Сообщений: 17,351
По умолчанию

Цитата:
Ну на сколько я понял, проблема была в выполнении математических действий.
Код:
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