Вверх ↑
Этот топик читают: Гость
Ответов: 1
Рейтинг: 0
#1: 2020-05-15 08:35:45 ЛС | профиль | цитата
Привет всем,
Есть вопрос, как можно реализовать программу которая конвертирует заданную валюту в другую по текущему курсу.
Заранее благодарю за любой совет.
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 1342
Рейтинг: 31
#2: 2020-05-15 11:15:13 ЛС | профиль | цитата
Лучше всего сделать веб версию, которая будет отправлять данные на сервер, считать и возвращать обратно
карма: 2

0
Ответов: 167
Рейтинг: 7
#3: 2020-05-15 16:08:27 ЛС | профиль | цитата
вот что-то сделал. [flood]меня в соавторах укажите (шутка)[/flood]
Add(HTTP_Get,8712403,70,14)
{
URL="https://www.cbr-xml-daily.ru/daily_eng_utf8.xml"
link(onStatus,1046958:doPosition,[(126,20)(126,69)])
link(onDownload,7917980:doConvert,[])
link(onURLSize,1046958:doMax,[(118,34)(118,76)])
}
Add(Convertor,7917980,133,21)
{
Mode=11
link(onResult,4870837:doEvent1,[])
}
Add(GProgressBar,1046958,133,63)
{
Left=5
Top=328
Width=553
Point(doMax)
}
Add(BlockFind,4317450,203,21)
{
StartBlock="<Name>"
EndBlock="</Value>"
Point(onNotFind)
link(onSearch,9399948:doAdd,[])
}
Add(Memo,9399948,247,21)
{
Left=94
Top=2
Width=213
Height=323
ScrollBars=3
Point(doSetSelStart)
}
Add(BlockFind,5654930,238,98)
{
IncludeBlock=1
StartBlock="<Name>"
EndBlock="</Name>"
Point(onNotFind)
link(onSearch,11119013:doEvent1,[])
link(onEndSearch,162950:doSearch,[(278,111)(278,132)])
}
Add(BlockFind,162950,287,126)
{
IncludeBlock=1
StartBlock="<Value>"
EndBlock="</Value>"
Point(onNotFind)
link(onSearch,9666116:doAdd,[(324,132)(324,146)])
link(Text,11194919:Value,[(293,84)(174,84)(174,148)(202,148)])
}
Add(Memory,11194919,196,98)
{
link(onData,5654930:doSearch,[])
}
Add(Hub,4870837,175,21)
{
link(onEvent1,4317450:doSearch,[])
link(onEvent2,11194919:doValue,[(196,34)])
}
Add(MainForm,790398,14,0)
{
Width=622
Height=390
link(onCreate,8712403:doDownload,[])
}
Add(Label,3624708,299,63)
{
Left=313
Top=103
Width=133
Height=17
Caption="Бабло в вашей валюте :D"
}
Add(Label,13774534,299,25)
{
Left=458
Top=105
Width=141
Height=17
Caption="Баблишко в другой валюте"
}
Add(Label,13497554,430,203)
{
Left=459
Top=123
Width=141
Height=17
Color=16777215
Caption="0"
AutoSize=1
Alignment=2
}
Add(Edit,14870372,119,203)
{
Left=317
Top=121
Width=120
Text="0"
link(onChange,8236252:doWork2,[])
}
Add(Math,3758564,371,203)
{
OpType=2
link(onResult,13497554:doText,[])
link(Op1,10153435:Result,[(377,191)(362,191)(362,256)(230,256)])
}
Add(ListBox,11046335,378,119)
{
Left=312
Top=3
Width=126
Height=97
Point(Index)
link(onClick,8783951:doWork2,[])
}
Add(ArrayRW,3525391,322,203)
{
link(onRead,3758564:doOperation,[])
link(Array,1057528:Var2,[(328,197)(327,197)])
link(Index,9195470:Var,[])
}
Add(ArrayRW,14705544,182,203)
{
link(onRead,10153435:doOperation,[])
link(Array,1057528:Var1,[(188,173)])
link(Index,6333450:Var,[])
}
Add(GetDataEx,1057528,321,168)
{
link(Data,14381241:Var2,[])
}
Add(Math,10153435,224,203)
{
OpType=3
link(onResult,3525391:doRead,[])
link(Op1,14870372:Text,[(230,191)(218,191)(218,249)(125,249)])
}
Add(RealArray,915662,504,42)
{
RealArray=[]
}
Add(ListBox,11707937,378,56)
{
Left=467
Top=3
Width=126
Height=97
Point(Index)
link(onClick,8783951:doWork1,[(417,69)])
}
Add(Hub,11119013,336,98)
{
link(onEvent1,11707937:doAdd,[(368,104)(368,62)])
link(onEvent2,11046335:doAdd,[(364,111)(364,125)])
}
Add(LineBreak,5531962,399,105)
{
Type=1
link(Data,11707937:Index,[])
Primary=[6333450,-210,70]
}
Add(LineBreak,9543655,399,161)
{
Type=1
link(Data,11046335:Index,[])
Primary=[9195470,-70,14]
}
Add(LineBreak,16090877,140,182)
{
link(Out,8236252:doWork1,[(172,188)])
Primary=[13110375,287,-56]
}
Add(HubEx,8783951,413,126)
{
link(onEvent,13110375:In,[])
}
Add(HubEx,8236252,168,203)
{
link(onEvent,14705544:doRead,[])
}
Add(ArrayRW,9666116,329,126)
{
link(Array,14381241:Var3,[(335,117)])
}
Add(GetDataEx,14381241,321,112)
{
link(Data,915662:Array,[(327,93)(510,93)])
}


--- Добавлено в 2020-05-15 16:38:34

P.P.S: я взял этот сайт лишь потому-что он первый мне под руку попался. Так что насколько он быстрый и точный я не знаю. УЧТИТЕ ЭТО!

Редактировалось 8 раз(а), последний 2020-05-15 16:38:34
карма: 0
c, c++, lua
0
Ответов: 16884
Рейтинг: 1239
#4: 2020-05-15 20:00:36 ЛС | профиль | цитата
UtoECat,
а ведь достаточно и 19 компонент.
А если бы nesco в ComboBox-e дал возможность выбирать тип значения Data, а не зашил намертво INTEGER, то было бы вообще классно, но... БЫ мешает.

UtoECat, да и математика у тебя неверная.

Редактировалось 5 раз(а), последний 2020-05-15 23:29:42
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#5: 2020-05-23 13:30:48 ЛС | профиль | цитата
Сегодня выходной
mikgo писал(а):
Есть вопрос, как можно реализовать программу которая конвертирует заданную валюту в другую по текущему курсу.
1. Зачем ? Online калькуляторов в инете море.
2. Но, если очень хочется, то
Add(HTTP_Get,8712403,154,126)
{
URL="http://www.cbr.ru/scripts/XML_daily.asp"
link(onDownload,7596598:doConvert,[])
}
Add(MultiElementEx,7596598,196,133)
{
link(onStrCatDlm,790398:doCaption,[(236,139)(236,98)(100,98)(100,118)])
link(onEvent,727662:doAdd,[(243,146)(243,111)])
link(onEvent1,727662:doSort,[(247,153)(247,132)])
}
BEGIN_SDK
Add(EditMultiEx,11659532,21,21)
{
WorkCount=#9:doConvert|
EventCount=#11:onStrCatDlm|7:onEvent|8:onEvent1|8:onEvent2|
Width=391
Height=382
VOffset=140
link(doConvert,7917980:doConvert,[])
}
Add(Convertor,7917980,35,161)
{
Mode=11
link(onResult,6689592:doEvent1,[])
}
Add(BlockFind,14930380,105,105)
{
@Hint=#9:Получаем |4:Дату|
IncludeBlock=1
StartBlock="<ValCurs Date=""
EndBlock="""
link(onSearch,14710194:doStrCatDlm,[])
AddHint(-44,-44,68,26,@Hint)
}
Add(Hub,6689592,77,161)
{
OutCount=3
link(onEvent1,14930380:doSearch,[(98,167)(98,111)])
link(onEvent2,12504866:doData,[])
link(onEvent3,11508153:doSearch,[])
}
Add(StrCatDelim,14710194,147,105)
{
@Hint=#26:Формируем Caption MainForm|
Str1="КАЛЬКУЛЯТОР СТОИМОСТИ ВАЛЮТ на "
Str2=" года."
link(onStrCatDlm,11659532:onStrCatDlm,[(367,111)(367,167)])
AddHint(1,-44,165,13,@Hint)
}
Add(MultiReplace,7314409,189,175)
{
ReplaceList="</Nominal><Name>=#;\r\n</Name><Value>=#;\r\n"
link(onResult,16204794:doWork3,[(230,181)])
}
Add(BlockFind,11508153,105,175)
{
IncludeBlock=1
StartBlock="<Nominal>"
EndBlock="</Value></Valute>"
link(onSearch,7314409:doMultiReplace,[])
link(onEndSearch,4505680:doData,[(142,188)(142,258)])
}
Add(DoData,4505680,189,252)
{
Data=Integer(1)
link(onEventData,1683048:doEvent1,[])
}
Add(Hub,1683048,336,252)
{
link(onEvent1,11659532:onEvent1,[(368,258)(368,181)])
link(onEvent2,11659532:onEvent2,[(381,265)(381,188)])
}
Add(DoData,12504866,147,168)
{
Data=String(1#Российский рубль#1)
link(onEventData,16204794:doWork2,[])
}
Add(HubEx,16204794,226,168)
{
link(onEvent,8496094:doSplit,[])
}
Add(StrPart,8496094,238,168)
{
Char="#"
link(onSplit,10596176:doStrCatDlm,[])
link(onPart,11338739:doConvert,[])
}
Add(ConvertorEx,11338739,280,175)
{
Digits=5
SymbolFill=" "
}
Add(StrCatDelim,10596176,322,168)
{
Delimiter="#"
link(onStrCatDlm,11659532:onEvent,[])
link(Str1,11338739:Var,[(328,156)(317,156)(317,216)(286,216)])
}
END_SDK
Add(MainForm,790398,112,112)
{
Width=544
Height=455
BorderStyle=1
Position=1
link(onCreate,8712403:doDownload,[])
}
Add(StringTable,727662,259,105)
{
Left=5
Top=120
Width=460
Height=300
Font=[Courier New,8,0,0,204]
Columns=#9: За=50 |13: Валюта=300|9:Рублей=70|
StrDelimiter="#"
Grid=0
Redaction=1
Point(doSort)
Point(Strings)
}

3. Внимательно смотрим на курс.
4. Помним, что 59,4567 и 59.4567 это разные понятия. (ошибка UtoECat, который не проверил, что он пишет в RealArray и что он оттуда считывает)
5. И т.д. и т.п.

Редактировалось 1 раз(а), последний 2020-05-23 19:31:01
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 16884
Рейтинг: 1239
#6: 2020-06-03 10:25:10 ЛС | профиль | цитата
Карантин. Работаю на удалёнке. Тяжело...
Всё дело в том, что рядом, как говорится - "рукой подать", холодильник и диван.
Но по-порядку.
Утром проснулся, потягал гантели, поотжимался, попрыгал со скакалкой, душ... и ХОЛОДИЛЬНИК!
Вот он - враг человека!
Пожрал... Взгляд остановился на диване... Нет! Надо работать!
Сел в компьютерное кресло. Включил комп.
Блин! А ведь у кресла есть переключатель сидеть/лежать.
Переключил... Закрыл глаза... Хорошо-то как! Уснул...
Через час проснулся. Открыл глаза. Первое, что вижу - ХОЛОДИЛЬНИК...
И так по-кругу.

Почему-то nesco давно не видно на сайте. Как-то тревожно.

Редактировалось 1 раз(а), последний 2020-06-03 10:29:22
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Калькулятор_валюты_IC_2.zip [56.1KB] [311]
Ответов: 8888
Рейтинг: 823
#7: 2020-06-03 12:59:58 ЛС | профиль | цитата
Тьфу--тьфу!
Ералаш писал(а):
Да тройняшки мы, я просто пописать отходил!

карма: 19

0
Ответов: 16884
Рейтинг: 1239
#8: 2020-06-03 15:02:40 ЛС | профиль | цитата
Леонид, я тоже тьфу-тьфу, но nesco был здесь 13.05.2020. Давненько...
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 2200
Рейтинг: 673
#9: 2020-06-03 15:47:07 ЛС | профиль | цитата
Леонид, Tad,не нагоняйте мраку. Может какой работай занят или отдыхом.
карма: 11

0
Ответов: 16884
Рейтинг: 1239
#10: 2020-06-03 17:31:49 ЛС | профиль | цитата
sla8a писал(а):
Может какой работай занят или отдыхом.
Дай бог.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#11: 2020-06-03 23:00:27 ЛС | профиль | цитата
Tad писал(а):
давно не видно на сайте

Да здесь я, здесь. Никуда я не пропал. Читаю регулярно форум. Для меня ничего пока интересного нет, вот и не авторизируюсь. А сессии теперь часами не висят и автовход не работает.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#12: 2020-06-03 23:17:31 ЛС | профиль | цитата
Гора с плеч. Не пугай больше.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8888
Рейтинг: 823
#13: 2020-06-04 12:15:24 ЛС | профиль | цитата
nesco писал(а):
Да здесь я, здесь

Леонид писал(а):
я просто пописать отходил!

Ура-а!!
карма: 19

0
13
Сообщение
...
Прикрепленные файлы
(файлы не залиты)