создать новую тему раскрыть все
Вот, получился у меня такой плагин. Well
Источники настраиваются с помощью регулярных выражений и специальных макросов. Так что теперь не нужно программировать, если понадобится добавить новый или исправить существующий после изменений на сайте.
В качестве примера, в дистрибутив включены настройки для загрузки курсов со страниц национальных банков России, Беларуси и Украины.
 
Hint 1: Загружать не обязательно денежные курсы - это могут быть котировки любых других "валют": бензина, золота, акций, паев - чего угодно.
Hint 2: Поскольку настройка выполняется в обычном тексте, своими конфигурациями можно делиться прямо в этой ветке форума, например.
 
На прошлой неделе отправил его Dervish-у, но пока так и не получил ответа. Так что выкладываю его пока здесь.
Адрес e-mail для обратной связи см. в readme.txt
http://rapidshare.com/files/62659081/UniRates_1.0.zip.html
рапида это ж кошмар
спасибочки огромное.
Будем тестить. Well
Хотелось бы знать, есть ли возможность решить эту проблему средствами самого AbilityCash (не зря ведь написано на странице загрузки, что она поддерживает юникод).
Но даже если такой возможности нет, можно будет попытаться решить это в самом плагине: определять UTF-8 и преобразовывать его в кодировку по-умолчанию. Но на этом пути много всяких вопросов. Not so Например, совместимость с Win95.
 
В общем, ждем, что ответит автор.
Для ресурсов в UTF-8 нужно указать Codepage=65001
 
Но по какой-то причине AbilityCash распространяет это значение не только на сам загружаемый ресурс, но и на все строки, возвращаемые плагином. Not so
Так что для правильного отображения названия ресурса убедитесь, что сам UniRates.ini сохранен в UTF-8 - Save As в блокноте на WinXP+ и в выпадающем списке выбрать UTF-8. После этого нужно аккуратно удалить в файле 3 символа в самом начале, перед [main]. Иначе настройки не будут загружаться совсем.
В общем, решение не из самых простых. Not so
редактором и сохранить "UTF without BOM"
.. можно загрузить исправленый файл настроек: http://ifolder.ru/3768716
Для переключения источника в нем достаточно только исправить ActivePreset=... И никакой возни с кодировками.
 
P.S. Часть настроек (для украинского банка) сохранена в UTF-8. В то время, как остальные - в CP1251. При добавлении новых источников нужно следить, чтобы кодировка страницы соответствовала кодировке секции с описанием источника.
Подскажите, пожалуйста, как настроить плагин для получения ставок ПИФов:
http://www.fdu.ru/funds/first_fund00002/default.asp Финам Первый
http://www.maxwell.ru/unit-investment-trust/open-unit-funds/maxwell-capital/share-cost.aspx Максвелл Капитал
http://www.pioglobal.ru/Common/index.aspx?txt=134&mmi=7&smi=3&f=3 ПИО Глобал
 
У меня не получилось Not so Список значений пуст.
.. что сейчас и сама программа, и плагин расчитаны на загрузку курсов сразу нескольких валют за указанную дату (сравните: курсы указанного пая сразу за несколько дат).
 
И потому в списке отображаются пустые строки - плагину просто неоткуда извлечь названия и коды "валют". Сами же данные реально загружаются. Чтобы убедиться в этом, нужно отметить в списке галочками несколько "пустых" строк, завершить импорт, а потом посмотреть курсы валют.
 
В следующей версии я попытаюсь предусмотреть возможность статически (в файле настроек) указывать код и название пая для таких случаев.
А пока вам остается только попробовать найти страницу, где будут собраны курсы сразу нескольких паев - тогда там будут и их названия, и их можно будет извлекать в плагине.
 
Также хочу обратить внимание, что курс в программе задается 2 значениями: номиналом в одной и во второй валюте. Таким образом, для паев одно значение, как я понимаю, всегда будет 1 рубль, а второе - цена пая(?). Для СЧА места не остается.
Также есть вероятность, что AbilityCash будет игнорировать записи о курсах, не попадающие в диапазон, выбраный в начале импорта. Кроме того, в случае настроек, вроде "на каждый день", одна и та же страница будет загружаться несколько раз.
В этой версии улучшена поддержка загрузки информации о стоимости паев. Подробности см. в readme.txt
Также в дистрибутив включены примеры настроек для упомянутых выше паев "Финам Первый" и "Максвелл Капитал".
С ПИО Глобал, к сожалению, ничего не получилось - информация становится доступной после нажатия на кнопку на странице, и добраться до нее по "прямой ссылке" возможности нет. Not so
 
Дистрибутив можно скачать здесь: http://ifolder.ru/3803266
 
Также хочу добавить, что никакой пост-фильтрации по датам AbilityCash не осуществляет. Так что стоимости паев будут загружены для всех имеющихся на странице дат, независимо от настроек диапазона выборки в AbilityCash.
И еще хотелось бы исправиться: одна и та же страница не будет загружаться несколько раз - AbilityCash отслеживает и предупреждает подобные ситуации.
Скачал файл, все работает отлично!  
Большое спасибо.
 
А ПИО Глобал буду загружать вручную.
>информация становится доступной после нажатия на кнопку на странице
можно ведь передать параметры и постом... правда, есть подозрение что они еще проверяют идентификатор формы.
А AbilityCash, очевидно, использует GET.
И, как я ни пробовал передавать параметры через GET, ничего у меня так и не вышло. Not so
в т.ч. ПИО Глобал можно попробовать скачивать с сайта http://pif.investfunds.ru/
Например, строка для закачки всех стоимостей паев ПИО Глобал Фонд Акций за 2007 год имеет вид
http://pif.investfunds.ru/quotes/index.phtml?f2%5b0%5d=64&export=2&start_day=01&start_month=01&start_year=2007&finish_day=31&finish_month=12&finish_year=2007
Единственная загвоздка, что такая строка в IE сразу Excel запускает - наверно для плагина это будет неприемлемо.
Но, в любом случае, рекомендую рассмотреть возможность загрузки с этого сайта. Там хоть и с некоторой задержкой информация появляется, зато по всем, вроде бы, фондам
Можно использовать  
http://pif.investfunds.ru/quotes/index.phtml?f2%5b0%5d=64&amp;<B>rtable=2</B>&amp;start_day=01&amp;start_month=01&amp;start_year=2007&amp;finish_day=31&amp;finish_month=12&amp;finish_year=2007
Тогда получается страница.  
Сейчас буду настраивать плагин.
Кто придумает как загружать значения, напишите, пожалуйста. У меня не получается пока. Слабо знаком с регулярными выражениями Not so
[investfunds.ru]
Name=ПИО Глобал
Server=pif.investfunds.ru
PageURL=/quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=%dd%&amp;start_month=%mm%&amp;start_year=%yyyy%&amp;finish_day=%dd%&amp;finish_month=%mm%&amp;finish_year=%yyyy%
EstimatedPageSize=35000
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=PIOg
OtherCurrencyName=ПИО Глобал
Prologue=class=black12
Record=markColor.*?&lt;td&gt;(?&lt;day&gt;\d+)\.(?&lt;month&gt;\d+)\.(?&lt;year&gt;\d+)&lt;.*?right&gt;(?&lt;value1&gt;.*?)&lt;
Epilogue=&lt;\/table&gt;
 
Только у меня при этом почему-то при выборе "на каждый понедельник" загружаются цены только за 01.10 и 08.10. Хотя, поиск по загруженным вручную файлам за 15.10 и 22.10 проходит успешно.
Наверное, где-то баг (есть версия, что это как-то связано с ведущим ноликом). Посмотрю вечером..
Похоже, со стороны плагина все в порядке.
Вот какой у меня получился лог:
1) построение адресов ресурсов:
&lt;&lt; 1-10-2007
&gt;&gt; /quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=01&amp;start_month=10&amp;start_year=2007&amp;finish_day=01&amp;finish_month=10&amp;finish_year=2007
&lt;&lt; 8-10-2007
&gt;&gt; /quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=08&amp;start_month=10&amp;start_year=2007&amp;finish_day=08&amp;finish_month=10&amp;finish_year=2007
&lt;&lt; 15-10-2007
&gt;&gt; /quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=15&amp;start_month=10&amp;start_year=2007&amp;finish_day=15&amp;finish_month=10&amp;finish_year=2007
&lt;&lt; 22-10-2007
&gt;&gt; /quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=22&amp;start_month=10&amp;start_year=2007&amp;finish_day=22&amp;finish_month=10&amp;finish_year=2007
&lt;&lt; 29-10-2007
&gt;&gt; /quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=29&amp;start_month=10&amp;start_year=2007&amp;finish_day=29&amp;finish_month=10&amp;finish_year=2007
 
2) извлечение значений из ресурсов:
-- 1-10-2007
== 1-10-2007 - 45604900
-- 8-10-2007
== 8-10-2007 - 47628800
-- 15-10-2007
== 1-10-2007 - 45604900
-- 29-10-2007
== 8-10-2007 - 47628800
-- 22-10-2007
== 8-10-2007 - 47628800
Так было на 213 сборке (15 -&gt; 1, 29 -&gt; 8, 22-&gt; 8). На 214 стало так (15 -&gt; 1, 22 -&gt; 1, 29 -&gt; 8):
-- 1-10-2007
== 1-10-2007 - 45604900
-- 15-10-2007
== 1-10-2007 - 45604900
-- 8-10-2007
== 8-10-2007 - 47628800
-- 22-10-2007
== 1-10-2007 - 45604900
-- 29-10-2007
== 8-10-2007 - 47628800
 
Дату я сохраняю в dwContext, поэтому когда приходит запрос FetchRates, можно определить, какой ресурс будет обрабатываться. Но при этом в самом ресурсе находятся данные за другую дату. И это не ошибка парсинга даты - значения курсов тоже соответствуют этим датам.
Единственное подозрение - cookies/session, из-за которых по какой-то причине загружаются не те страницы.
Прямой _одиночный_ запрос wget с адресом страницы возвращает правильное содержимое. А вот запрос сразу группы ссылок через wget -i links сохраняет во все файлы данные за одну и ту же (первую в списке) дату.
Кстати, из этого следует, что в AbilityCash используется 2 потока для загрузки ресурсов. To wink
... можно использовать вот такой обходной вариант с опцией "на начало каждого месяца":
 
[investfunds.ru]
Name=ПИО Глобал
Server=pif.investfunds.ru
PageURL=/quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=%dd%&amp;start_month=%mm%&amp;start_year=%yyyy%&amp;finish_day=31&amp;finish_month=%mm%&amp;finish_year=%yyyy%
EstimatedPageSize=50000
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=PIOg
OtherCurrencyName=ПИО Глобал
Prologue=class=black12
Record=markColor.*?&lt;td&gt;(?&lt;day&gt;\d+)\.(?&lt;month&gt;\d+)\.(?&lt;year&gt;\d+)&lt;.*?right&gt;(?&lt;value1&gt;.*?)&lt;
Epilogue=&lt;\/table&gt;
 
При этом в базу будут загружены цены за весь выбраный месяц, а не только за 1-е число.
Обратите внимание, что попытка загрузить цены сразу за несколько месяцев будет неудачной все по той же причине - последующие запросы ресурса в AbilityCash будут получать те же самые данные. Not so
 
Чтобы загрузить данные сразу за весь год нужно использовать следующие настройки:
 
[investfunds.ru]
Name=ПИО Глобал
Server=pif.investfunds.ru
PageURL=/quotes/index.phtml?f2[0]=64&amp;rtable=2&amp;start_day=01&amp;start_month=01&amp;start_year=%yyyy%&amp;finish_day=31&amp;finish_month=12&amp;finish_year=%yyyy%
EstimatedPageSize=150000
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=PIOg
OtherCurrencyName=ПИО Глобал
Prologue=class=black12
Record=markColor.*?&lt;td&gt;(?&lt;day&gt;\d+)\.(?&lt;month&gt;\d+)\.(?&lt;year&gt;\d+)&lt;.*?right&gt;(?&lt;value1&gt;.*?)&lt;
Epilogue=&lt;\/table&gt;
 
При этом, очевидно, из настроек диапазона дат в AbilityCash будет использоваться только значение года.
Кстати, для тех, кто не догадался еще To wink,параметр <B>f2[0]=64</B> в строке url - это как раз указание на фонд акций Пио Глобал.
Для ПиоГлобал Фонд облигаций он равен <B>65</B>, для ПиоГлобал Фонд сбалансированный - <B>13</B>...
 
Хотел написать это к тому, что программист из меня неважнецкий, к сожалению, но смею предположить, что, наверно, не особо сложно было бы модифицировать уважаемому <B>Дим(м)</B> свой плагин, чтобы с его помощью пользователь мог загрузить стоимости паёв любого из представленных на сайте pif.investfunds.ru фондов.
Т.е. видилось 2 варианта: отличный - когда обновленный список фондов формируется каждый раз при запуске плагина (им самим), не очень... отличный Well, когда файл настроек плагина будет сформирован чем-нибудь типа макросом 1 раз и сразу для всех фондов.
 
Но сейчас подумал о том, что пользователю вряд ли будет легко выбрать нужный фонд (их сейчас около 1000) из такого списка, поэтому предлагаю ему - пользователю - такой алгоритм:
1) заходим на http://pif.investfunds.ru/funds/index.phtml
2) выбираем нужный фонд, например "1-й Денежный Фонд"
3) последние цифры в строке его url - это и есть его номер (548)
4) добавляем в файл настроек плагина строки
[investfunds.ru]  
Name= <B>1-й Денежный Фонд (УК Премьер Эссет Менеджмент)</B>
Server=pif.investfunds.ru  
PageURL=/quotes/index.phtml?f2[0]=<B>548</B>&amp;rtable=2&amp;start_day=%dd%&amp;start_month=%mm%&amp;start_year=%yyyy%&amp;finish_day=%dd%&amp;finish_month=%mm%&amp;finish_year=%yyyy%  
EstimatedPageSize=35000  
HomeCurrencyCode=RUR  
HomeCurrencyName=российский рубль  
OtherCurrencyCode=<B>код паёв в AbilityCash, например FMF (First Money Fond)</B>  
OtherCurrencyName=<B>название "валюты", например "Паи 1-го Денежного Фонда </B>  
Prologue=class=black12  
Record=markColor.*?&lt;td&gt;(?&lt;day&gt;\d+)\.(?&lt;month&gt;\d+)\.(?&lt;year&gt;\d+)&lt;.*?right&gt;(?&lt;value1&gt;.*?)&lt;  
Epilogue=&lt;\/table&gt;
Доступ к данным на investfunds.ru стал платным Not so. Откуда еще можно тянуть данные?
что можно получать результат в таком виде, но терпения не хватило отыскать этот способ.
Спасибо!
Я перенес плагин на сайт программы, вот ссылка для скачивания: http://www.dervish.ru/download/UniRates.zip. Обратите внимание, я сознательно удалил номер версии из загружаемого файла. Так будет удобнее для пользователей потому что с выходом обновлений плагина адрес для загрузки будет оставаться неизменным.
Подозреваю, что так и есть - плагин очень нужный!
Жаль только у меня ни Ваша ни данная загрузка не срабатывает Not so Процесс отображается, но в итоге - ни одной новой строки.
Может это из-за того, что у нас на здесь Firewall стоит?
 
И еще. Можно ли в будущем сделать возможность построения графиков нескольких валют одновременно, в т.ч. относительного изменения? При сравнении динамики изменения паев разных фондов - очень полезная фишка была бы Well
Можно попробовать использовать вот такой, не самый простой вариант.
 
1. My Computer &gt; Properties &gt; Advanced &gt; Environment Variables - добавить в System Variables новую переменную с именем http_proxy и значением, вроде proxy:8080
 
2. Загружать страницу с ресурсом на компьютер командой wget -o C:\www\rates.html http://example.com/rates.php?...
Делать это каждый раз вручную быстро надоест. Well Поэтому имеет смысл запускать загрузку автоматически по расписанию (Control Panel &gt; Scheduled Tasks). Кроме того, в адрес ресурса, скорее всего, надо подставлять дату. Если с этим нужна помощь, могу рассказать, как это можно было бы сделать.
 
3. Дальше устанавливаем локальный HTTP-сервачок. Well Например, вот этот: http://www.karjasoft.com/samihttp и указываем ему на наш загруженный файлик: C:\www\rates.html
 
4. Настраиваем плагин:
Server=localhost
PageURL=rates.html
 
5. Запускаем импорт в AbilityCash Well
 
Как-то вот так. Сам я, скажу сразу, такого не пробовал. Но, мне кажется, должно получиться. Well
Загружать по расписанию можно данные сразу из нескольких источников, указав разные имена файлов. В имена файлов можно также вставлять даты (если, вдруг, это нужно). HTTP-сервер, очевидно, можно запускать перед самым импортом и закрывать сразу после.
 
В общем, если с какими-то шагами выше нужна помощь, пишите, помогу. Well
 
Блин, написал все это и тут вспомнил, что AbilityCash, вроде, и сам берет настройки прокси из IE. Ну не удалять же теперь. Well Вдруг, кого-нть на толковую идею натолкну, как проблему решить. Well
Точнее, в том, что программа не обрабатывает его. У нас на работе тоже установлен firewall и, как выяснилось (я всегда из дома загружал курсы), тоже не работает. Я попробую найти в чем причина, возможно что смогу заставить работать загрузку.
данные по курсам в XML формате на странице
www.cbr.ru/scripts/XML_daily.asp?date_req=01/%mm%/%yyyy%&amp;d=1 ?
 
Ведь если осуществлять навигацию по сайту ЦБ в поиске курсов, то получаем
обычную html страницу :
http://www.cbr.ru/currency_base/daily.asp?C_month=10&amp;C_year=2007&amp;date_req=01%2F10%2F2007
Где-то у них на сайте было написано. Там есть и другие сервисы, просто поищите по серверу строку xml.
...веб мастеров. Только вот используя стандартную навигацию туда хрен попадешь - только через поискWell
Кому-нибудь может пригодится.
Настройка на паевые фонды КИТ-Финанс.
Для примера фонд "Российская энергетика"
 
[KIT.RusEnergy]
Name=Фонд "Российская Электроэнергетика"
Server=www.kfim.com
PageURL=/ru/cost_datasheet/?date_from_day=%dd%&amp;date_from_month=%mm%&amp;date_from_year=%yyyy%&amp;date_til_day=%dd%&amp;date_til_month=%mm%&amp;date_til_year=%yyyy%&amp;output=csv&amp;e=fund&amp;type=3&amp;ar=&amp;cur=&amp;act=export
EstimatedPageSize=1809
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=PFE
OtherCurrencyName=Пай РосЭнергетика
Prologue=
Record=Российская\\sэлектроэнергетика;(?&lt;day&gt;\\d+)\\.(?&lt;month&gt;\\d+)\\.(?&lt;year&gt;\\d+);.*?;(?&lt;value1&gt;.*+)
Epilogue=
DecimalSeparator=,
[KIT.RusEnergy]
Name=Фонд "Российская Электроэнергетика"
Server=www.kfim.com
PageURL=/ru/cost_datasheet/?date_from_day=%dd%&amp;date_from_month=%mm%&amp;date_from_year=%yyyy%&amp;date_til_day=%dd%&amp;date_til_month=%mm%&amp;date_til_year=%yyyy%&amp;output=csv&amp;e=fund&amp;type=3&amp;ar=&amp;cur=&amp;act=export
EstimatedPageSize=1809
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=PFE
OtherCurrencyName=Пай РосЭнергетика
Prologue=
Record=Российская\sэлектроэнергетика;(?&lt;day&gt;\d+)\.(?&lt;month&gt;\d+)\.(?&lt;year&gt;\d+);.*?;(?&lt;value1&gt;.*+)
Epilogue=
DecimalSeparator=,
настраивал?
С валютами и ПИФами плагин идет пробовал переделать на учетные цены на драгметаллы с того же СБ
не получается ,не появляются ни названия ни обозначение металлов и естествено цены.Может подскажите  
как переписать плагин.
... страницы, с которой пытаетесь получить информацию.
Для работы с такими "транспонированными" матрицами курсов плагин надо несколько доработать.
Пока же я придумываю, как это сделать удобнее всего, можно остановиться на одном из следующих вариантов:
- смириться с тем, что валюта "золото" будет называться "1", "серебро" - "2" и т.д. - тогда совсем не сложно настроить импорт из XML по первой ссылке
- сделать отдельные настроки импорта для золота, серебра, платины - тогда, соответственно, импорт придется запускать 4 раза, чтобы получить в базе данные обо всех драгметаллах
- попытаться найти другой источник с более удобной структурой для импорта
 
Если нужна помощь с первыми двумя вариантами, дайте знать.
Теперь плагин поддерживает возможность указания сразу нескольких шаблонов для одного источника.
Чуть подробнее их использование описано в readme.txt
В файл настроек включен готовый пресет для цен драгметаллов с сайта Центробанка России.
 
Скачать можно здесь: http://ifolder.ru/4339348
Для стандартных форматов дат теперь можно использовать группу (?&lt;date&gt;...) вместо трех отдельных (?&lt;day&gt;...), (?&lt;month&gt;...), (?&lt;year&gt;...)
См. readme.txt и примеры настроек в UniRates.ini
 
Загрузить можно здесь: http://ifolder.ru/4348680
Ссылка на плагин на странице загрузки указывает на версию 1.2
Хорошо бы выложить на сайте последнюю версию 1.4 - http://ifolder.ru/4348680
 
@Dervish: И на будущее. Если будут еще какие-то изменения в плагине, каким образом лучше поддерживать ссылку в актуальном состоянии? Письмом? Well
Плагин обновлен.
 
Пока лучше письмом. А на будущее есть сильное желание установить на сайте wiki и тогда ссылки можно будет поддерживать без моего участия. Well
[main]
ActivePreset=bnm.org
 
[bnm.org]
Name=Национальный Банк Молдовы
Server=www.bnm.org
PageURL=/apps/ofexch_xml.jsp?lang=2&amp;data=%mm%/%dd%/%yyyy%
EstimatedPageSize=7000
HomeCurrencyCode=MDL
HomeCurrencyName=Молдавский Лей
Prologue=&lt;ValCurs.*?Date="(?&lt;month&gt;\d+)[/.](?&lt;day&gt;\d+)[/.](?&lt;year&gt;\d+)".*?&gt;
Record=&lt;Valute.*?&lt;CharCode&gt;(?&lt;code&gt;.*?)&lt;\/CharCode&gt;.*?&lt;Nominal&gt;(?&lt;value2&gt;.*?)&lt;\/Nominal&gt;.*?&lt;Name&gt;(?&lt;name&gt;.*?)&lt;\/Name&gt;.*?&lt;Value&gt;(?&lt;value1&gt;.*?)&lt;\/Value&gt;
Epilogue=&lt;\/ValCurs&gt;
DecimalSeparator=.
Codepage=1251
Подскажите можно ли настроить этот ПИФ? http://fonds.onvista.de/kurshistorie.html?ID_NOTATION=13054133&amp;RANGE=6M. Если можно тока как? Well Если нет то в каком виде нужны данные?
[onvista.de]
Name=OnVista.de - Allianz Global Investors
Server=fonds.onvista.de
PageURL=/kurshistorie.html?ID_NOTATION=13054133&amp;RANGE=6M
EstimatedPageSize=10000
HomeCurrencyCode=EUR
HomeCurrencyName=Euro
OtherCurrencyCode=KAG
OtherCurrencyName=Allianz Global Investors
Prologue=der KAG in EUR
Record=&lt;tr align="right"&gt;&lt;td&gt;(?&lt;day&gt;\d{2})\.(?&lt;month&gt;\d{2})\.(?&lt;year&gt;\d{2})&lt;/td&gt;&lt;td&gt;(?&lt;value1&gt;.*?)&lt;/td&gt;&lt;/tr&gt;
Epilogue=URL:
DecimalSeparator=,
 
Если я ничего не напутал с немецким. Well
Но, если что, подправить, думаю, будет не трудно Well
Большое спасибо, все работает Well
Теперь остатки на "счетах" я могу увидеть только в Евро, если указать другую валюту, то пересчет у ПИФов не производится, вместо них "???". Можно ли сделать пересчет этого ПИФа на рубли?
... просто загрузить курс евро к рублю в базу. Если я правильно понял суть проблемы.
 
Хотя, возможно, AbilityCash и не поддерживает "непрямых" пересчетов (ПИФ -&gt; евро -&gt; рубли).
Тогда придется экспортировать данные в Excel, рассчитать там кросс-курс ПИФ -&gt; рубли и импортировать все обратно.
непрямые пересчеты,т.к. все валюты я загрузил Not so. А через экспорт-импорт все получилось .. спасибо Well.
У меня есть ПИФ номинированный в ЕВРО. Остатки на счете поэтому ПИФу я вижуто только в ЕВРО. В другой валюте отображаются "???". Тоже самое с Российскими ПИФами ... если остатки на счетах смотреть не в рублях, то будут "???".
 
Для решения данной проблемы нужен расчет курсов ПИФов к разным валютам.
 
Вот тут http://www.dervish.ru/forum.php?theme_id=1741&amp;forum_id=1 <strong class="bb"]Dervish</strong] писал как производится расчет кросс-курсов. Т.е. необходимо доработать универсальный плагин так, чтобы одновременно с закачкой стоимости ПИФа номинированного в ЕВРО, закачивался курс евро к рублю, после чего поставаить галку "расчитать кросс-курсы" и расчет будет произведен.
... в "специализированный" топик по вашей ссылке
Помогите плиз настроить плагин на закачку котировок с nlu.ru c инвестфондз данные больше не тянутся Not so
http://nlu.ru/fondinfo.htm?id=55
в регулярных выражениях ... может кому пригодится
[main]
ActivePreset=nlu.ru-alfa
 
[nlu.ru-alfa]
Name=Альфакапитал Индекс ММВБ
Server=nlu.ru
PageURL=/fondinfo.htm?id=55
EstimatedPageSize=150000
HomeCurrencyCode=RUR
HomeCurrencyName=российский рубль
OtherCurrencyCode=Alfa
OtherCurrencyName=Альфа ММВБ
Prologue=руб&lt;/td&gt;&lt;/tr&gt;
Record=class="menutextlink"&gt;(?&lt;date&gt;.*?)&lt;.*?nobr&gt;(?&lt;value1&gt;.*?)&lt;.*?td&gt;&lt;\/tr&gt;
Epilogue=&lt;\/table&gt;
DecimalSeparator=,
сайт откуда скачиваются курсы был реконструирован...
вот новый конфиг:
 
[main]
ActivePreset=bnm.org
 
[bnm.org]
Name=Национальный Банк Молдовы
Server=www.bnm.org
PageURL=/en/official_exchange_rates?get_xml=1&amp;date=%dd%.%mm%.%yyyy%
EstimatedPageSize=7000
HomeCurrencyCode=MDL
HomeCurrencyName=Молдавский Лей
Prologue=&lt;ValCurs.*?Date="(?&lt;day&gt;\d+)[/.](?&lt;month&gt;\d+)[/.](?&lt;year&gt;\d+)".*?&gt;
Record=&lt;Valute.*?&lt;CharCode&gt;(?&lt;code&gt;.*?)&lt;\/CharCode&gt;.*?&lt;Nominal&gt;(?&lt;value2&gt;.*?)&lt;\/Nominal&gt;.*?&lt;Name&gt;(?&lt;name&gt;.*?)&lt;\/Name&gt;.*?&lt;Value&gt;(?&lt;value1&gt;.*?)&lt;\/Value&gt;
Epilogue=&lt;\/ValCurs&gt;
DecimalSeparator=.
Codepage=UTF-8
.. Codepage - это число. И для UTF-8 оно должно быть равно 65001. Кроме того, при использовании UTF-8 есть еще несколько "подводных камней" - см. подробности в readme.txt, а пример использования - в настройках [bank.gov.ua]
Вот ссылка:  
http://www.privatbank.ua:8085/info/index1.stm?url=/info/ccyrate/rate.ssc&amp;typ=N&amp;dayValue=8&amp;monthValue=05&amp;yearValue=2008&amp;whichValue=P
 
Вот шаблон. Не работает он почему-то.
  
[main]
ActivePreset=pbank.ua
 
[pbank.ua]
Name=Приватбанк
Server=www.privatbank.ua:8085
PageURL=/info/index1.stm?url=/info/ccyrate/rate.ssc&amp;typ=N&amp;dayValue=%d%&amp;monthValue=%mm%&amp;yearValue=%yyyy%&amp;whichValue=P
EstimatedPageSize=42000
HomeCurrencyCode=UAH
HomeCurrencyName=Украинская гривня
Prologue=&lt;p align=left class=tbl&gt; Курс за (?&lt;date&gt;.*?)
Record=&lt;td class=text align="left"&gt;&amp;nbsp;(?&lt;code&gt;.*?)&lt;/td&gt;&lt;td class=text align="left"&gt;(?&lt;name&gt;.*?)&lt;/td&gt;&lt;td class=text align="right"&gt;(?&lt;value1&gt;.*?)&amp;nbsp;&lt;/td&gt;
Epilogue=&lt;a name=calcLabel&gt;
... что AbilityCash может скачивать ресурсы только со стандартного http-порта 80
А страница, которая при этом скачивается с privatbank.ua, информации о курсах не содержит Not so (там только инструкции перенаправления на порт 8085)
 
Кстати, на случай, если найдете способ это обойти, обратите внимание, что вам нужно использовать (?&lt;value2&gt;...) вместо value1. И, кроме того, после "Курс за (?&lt;date&gt;.*?)" следует добавить ограничитель: "\s*&lt;"
фаервол показывает, что запрос отсылается именно вида http://privatbank.ua:8085/...
 
Кстати, как посмотреть, какая страница скачиватся?
http://www.privatbank.ua/info/index1.stm?url=/info/ccyrate/rate.ssc&amp;typ=N&amp;dayValue=8&amp;monthValue=05&amp;yearValue=2008&amp;whichValue=P
 
какому-нть wget-у.
Там будет видно, что качается кусочек JavaScript-а, который перенаправляет запрос на 8085.
А AbilityCash, очевидно, такие "редиректы" не поддерживает.
[main]
 
ActivePreset=pbank.ua
 

 
[pbank.ua]
 
Name=Приватбанк
 
Server=www.privatbank.ua
 
PageURL=/info/index1.stm?url=/info/ccyrate/rate.ssc&amp;typ=N&amp;dayValue=%d%&amp;monthValue=%mm%&amp;yearValue=%yyyy%&amp;whichValue=P
 
EstimatedPageSize=42000
 
HomeCurrencyCode=UAH
 
HomeCurrencyName=Украинская гривня
 
Prologue=&lt;p align=left class=tbl&gt; Курс за (?&lt;date&gt;.*?)
 
Record=&lt;td class=text align="left"&gt;&amp;nbsp;(?&lt;code&gt;.*?)&lt;/td&gt;&lt;td class=text align="left"&gt;(?&lt;name&gt;.*?)&lt;/td&gt;&lt;td class=text align="right"&gt;(?&lt;value1&gt;.*?)&amp;nbsp;&lt;/td&gt;
 
Epilogue=&lt;a name=calcLabel&gt;
Вот бы еще как-нить подружить два курса от национального банка и от привата. В смысле иметь один за основной, а второй для статистики!
ты и завернул. Имею в виду, "для статистики!"
 
Ты хоть понимаешь, о чем говоришь?
 
Если курсы от привата именно те, с которыми он выходил на рынок или заявлял своим клиентам, - что толку с них. В них заложен интерес банка. Т.е., тебя
 
интересует статистика интереса привата. Что, она лучшая, или объективная?
 
Или по ней тренд интереса привата можно смотреть. Бред сивой кобылы.
 
Ну, а "подружить", - что среднее будешь брать или просто перемешать значения?
 
А почему бы тебе, дружище, свои курсы не сгенерить.
 
Будешь кайф от своих активов ловить ...
 
Короче, не майся. Используй курсы нацбанка.
 
Именно они самые "правильные". Доллар притянут за уши, а остальные курсы просчитаны по курсу евробанка/бундесбанка. Тоже фуфло, которое не отражает
 
реальное положение вещей, - спрос на каждую валюту в этой стране, объемы сделок, объемы экспорта в каждой валюте и пр., и пр.
 
Не удивительно, что он появляется, когда рабочий день заканчивется, ждут, собаки, когда европа свои курсы сгенерит к концу торгового дня, чтобы
 
бессовестно европейские курсы содрать. В школе сдирали, и сейчас продолжают.
 
Спасу нет от научноподобного жлобства.
 
Одним словом, курс нацбанка рулит, - и в обменке, и при выезде за границу,
 
и в налоговой. А про приват забудь, разве что поиграться с кривыми и трендами.
 
может ты баксы продаешь/покупаешь по курсу нацбанка? А? Нацбанк в обменнике рулит, говоришь? Расскажи, будь другом, в каком таком обменнике?! Будем тоже бакс по курсу нацбанка покупать.
именно так.
 
Вообще, не покупаю. Ни по какому курсу.
 
А если бы покупал, понятно, по курсу обменника.
 
И этот курс использовал бы как обменный курс в конкретной операции перевода. А вот прибыльность/убыточность этой операции считал бы
 
по отношению к официальному курсу нацбанка.
 
Но ты, осознанно или напротив, забыл уже о чем писал -
 
"В смысле иметь один за основной, а второй для статистики!".
 
А теперь горбатого лепишь об обменнике.
 
Еще раз повторяю именно для тебя.
 
Если поступать по принципу "дурак от мысли богатеет", то действительно, ты прав, надо брать "от привата", либо от обменника.
 
И тащиться от крутизны.
 
А если ты в бухгалтерии расчитываешься за загран-командировку, идешь в налоговую, платишь пошлину - только курс нацбанка и конает.
тока заметил ответ.
 
Интересовал приват как пример реального межбанка - хочется иногда увидеть сколько у меня гривен получится, если обменять свои валютные резервы.
 
Ну а нацбанк - продавцы часто указывают цены в уе, а в гривнах по курсу нацбанка.
Спасибо за замечательный плагин к восхитительной программе!
 
Вопрос такой. Делал ли кто-нибудь настройки для курсов "электронных валют": WebMoney (WMR, WMZ...), Yandex-Деньги и т.п.?
у меня на плагин ругается антивирус... пишет о наличии PAK_Generic.001
Кто-нибудь реализовал загрузку котировок акций с ММВБ? По-моему можно получать котировки с РБК (http://export.rbc.ru/expdocs/free.micex.0.shtml), но я не силен в регулярных выражениях...
Не так давно пришло письмо с просьбой помочь с этими настройками. Но на мой ответ до сих пор никакой реакции. То ли письмо моё в спам попало, то ли ещё какие проблемы с почтой.
Потому выкладываю настройки здесь.
 
Два варианта - выберите тот, который вам больше подходит.
 
[finmarket.ru]
Name=ММВБ КЦБ - Blue chips
PageURL=http://www.finmarket.ru//z/fmrt/d_mcxeq/default.asp
EstimatedPageSize=27000
HomeCurrencyCode=RUR
HomeCurrencyName=Российский рубль
Prologue=<tr align=right
Record=<td align=left><a.*?id=(?<code>.*?)" target=_blank>(?<name>.*?)</a>.*?<td>.*?<td>.*?<td>(?<value1>.*?)</td>.*?<td nowrap>(?<date>.*?) .*?</td>
Epilogue=</table>
 
Здесь в качестве кода валюты-акции будет указано что-то типа 4209, а названием будет "АВТОВАЗао".
Название вы можете редактировать на своё усмотрение. А вот код менять нельзя - иначе при последующих загрузках курсы будут путаться.
 
Второй вариант:
 
[finmarket.ru]
Name=ММВБ КЦБ - Blue chips
PageURL=http://www.finmarket.ru//z/fmrt/d_mcxeq/default.asp
EstimatedPageSize=27000
HomeCurrencyCode=RUR
HomeCurrencyName=Российский рубль
Prologue=<tr align=right
Record=<td align=left><a.*?>(?<code>.*?)</a>.*?<td>.*?<td>.*?<td>(?<value1>.*?)</td>.*?<td nowrap>(?<date>.*?) .*?</td>
Epilogue=</table>
 
Здесь "АВТОВАЗао" уже будет выступать в качестве кода "валюты", а название будет пустым (после первой загрузки вы можете отредактировать его на своё усмотрение).
 
Ещё одним недостатком, присущим обоим вариантам, является то, что в запросе никак нельзя указать дату. Т.е. при каждой загрузке будут загружаться курсы "на сегодня". И даже более того, "на сейчас". Но поскольку AbilityCash хранит только один курс на дату, повторная загрузка в один день, наверное, нежелательна.
Возможно, кому-то пригодятся настройки для Центрального банка Армении:
 
[cba.am]
Name=Центральный банк Армении
Server=www.cba.am
PageURL=/CBA_SITE/currencyJSP/allCurrencies.jsp?__locale=en&amp;theDate=%dd%/%mm%/%yyyy%
EstimatedPageSize=42000
HomeCurrencyCode=AMD
HomeCurrencyName=Армянский драм
Prologue=&lt;!-- currencies start --&gt;
Record=rateContent1"&gt;(?&lt;code&gt;.*?)&lt;/td&gt;.*?class="rateNumber"&gt;(?&lt;value2&gt;.*?)&lt;/td&gt;.*?class="rateNumber"&gt;(?&lt;value1&gt;.*?)&lt;/td&gt;
Epilogue=&lt;!-- currencies end --&gt;
 
P.S. Названий национальных валют на странице нет. Поэтому их придется один раз ввести самостоятельно.
Возможно, кому-то пригодятся настройки для банка Латвии:
 
[bank.lv]
Name=Банк Латвии
Server=www.bank.lv
PageURL=vk/xml.xml?date=%yyyy%%mm%%dd%
EstimatedPageSize=2900
HomeCurrencyCode=LVL
HomeCurrencyName=Латвийский лат
Prologue=&lt;Currencies
Record=&lt;Currency.*?&lt;ID&gt;(?&lt;code&gt;.*?)&lt;\/ID&gt;.*?&lt;Units&gt;(?&lt;value2&gt;.*?)&lt;\/Units&gt;.*?&lt;Rate&gt;(?&lt;value1&gt;.*?)&lt;\/Rate&gt;
 
P.S. Названий национальных валют на странице нет. Поэтому их придется один раз ввести самостоятельно.
Помимо косметических исправлений в формате файла настроек, добавлена принципиально новая возможность одновременной загрузки курсов из нескольких источников.
 
Это нужно для того, чтобы можно было средствами AbilityCash рассчитывать кросс-курсы между несколькими ресурсами (например, стоимость акций в EUR + курс EUR Нацбанка => стоимость акций в RUR)
 
Настройка новой возможности довольно непроста (см. multi-preset.txt). Поэтому использовать её рекомендуется только в случае острой необходимости.
 
Если вам это не нужно, то лучше остаться на версии 1.4
 
Как обычно, замечания и предложения пишите сюда или на ящик, указанный в readme.txt
 
Загрузить: http://drop.io/UniRates
У меня опять все те же проблемы. Ни в какую не хотят скачиваться курсы валют на каждый день.
 
Выбираю период с .. до.. (условно - месяц).
Кликаю в выпадающем списке на "на каждый день" и сразу же получаю стандартную ошибку винды:
 
Сигнатура проблемы:
  Имя события проблемы: APPCRASH
  Имя приложения: AbilityCash.exe
  Версия приложения: 2.0.0.217
  Штамп времени приложения: 4a65c877
  Имя модуля с ошибкой: ntdll.dll
  Версия модуля с ошибкой: 6.0.6002.18005
  Штамп времени модуля с ошибкой: 49e03821
  Код исключения: c0000005
  Смещение исключения: 000666ab
  Версия ОС: 6.0.6002.2.2.0.256.1
  Код языка: 1049
  Дополнительные сведения 1: 29ba
  Дополнительные сведения 2: 6bc301a23609b308a8eef85bd73d4152
  Дополнительные сведения 3: c40d
  Дополнительные сведения 4: 9612a697858cbe20dafd692622ac5e53
 
Операционка - Виста 32, СП2.
Сборка 217.
Плагин - 1.6 (скачан с официального сайта: http://drop.io/UniRates).
 
Заранее спасибо за советы
Какие настройки пресета используете? Какие даты?
Я хотя бы попробую воспроизвести ситуацию у себя.
 
Висты у меня, правда, под рукой нет. Но если на моей ХР всё заработает, попробую найти и Висту.
Ну а если не заработает, буду искать и исправлять ошибку Well
 
(Если не хотите делиться деталями "прилюдно", напишите письмо.)
Даты - любые.
Вот сейчас попробовал:
Дата: 01.07.2009 - 30.07.2009
Период: на каждый день.
Сразу же вылетела ошибка.
 
Если дата 01.08.2009-03.08.2009, то ошибка появляется не сразу. То есть, я успеваю нажать кнопку "Далее", появляется бегунок загрузки и только потом выскакивает ошибка.
 
Настройки плагина - "из коробки", то есть скачал с сайта, записал в папку программы и запустил из AbilityCash комбинацией ^R.
Единственное, что поменял - указал свой банк (т.е. в начальной секции ini файла поменял cbr.ru на bank.gov.ua)
 
Причем подобная проблема проявляется в сборке 216 и 217 с обеими версиями плагина.
 
Спасибо за внимание к проблеме Well
И как я мог такое пропустить?
Хотя, возможно, на более ранних версиях AC эта ошибка никак себя не проявляла.
 
Вечером попробую исправить и выложу новую версию.
В предыдущих версиях плагина была ошибка, из-за которой ресурсы в кодировке, отличной от 1251 (например, сайт Центробанка Украины), не могли загружаться нормально.
 
Теперь это должно быть исправлено.
 
Обновились и "обычная" и "специальные" версии.
Качайте 1.5.1 или 1.6.1-special здесь: http://drop.io/UniRates
и у версии 1.5.1, и у 1.6.1 те же симптомы Not so
 
Пробовал на bank.gov.ua и на cbr.ru (не меняя настроек).
 
Видимо, проблема в моей Винде.
Буду загружать на каждый понедельник...
 
Еще раз спасибо.
 
PS. Интересно, есть ли еще у кого-нибудь такое же? Или никто не загружает курсы на каждый день?
... (обычно делаю это раз в месяц) - всё отлично работает Very we!. Плагин 1.5.1, курсы валют качал с bank.gov.ua    Автору плагина респект!
загружать курсы за целый месяц или более?
 
Например, если я загружаю курсы с 01.07.2009 по 05.08.2009 (на каждый день) - отхватываю ошибку.
 

Впрочем, я свою проблему решил весьма тривиальным способом: скачиваю курсы на каждый день, но за период, не превышающий 5 дней. т.е. с 01.08 по 05.08 - и все работает.
 
Есть подозрения, что программе не нравится файл ntdll.dll 6й версии. На 5й версии было все ок, но виндовый SP2 все испортил
загружать курсы за целый месяц или более?
Период загрузки был с 01.08.2009 по 04.08.2009 Confused
плагина 1.4 с кешем 217. Загружаю курсы на каждый день с периодами по несколько месяцев.
при скачивании курсов валют за срок более 5 дней вылетает ошибка (программа проста закрывается и все)Not so
Как нибудь это исправляеся?
Есть какой-нибудь отладочный режим, посмотреть - что плагин на самом деле качает, и как парсит?
но я могу предложить попробовать помочь разобраться с проблемами, если расскажете, что и откуда пытаетесь загрузить
если есть идеи - welcome.
 
курсы качаю с сайта НБУ (bank.gov.ua)
 
А в чем проблема - как раз непонятно без отладки - то ли prolog неправильный, то ли record...
 
Но проблему уже обошел - вместо того, чтобы качать с сайта "Тройки-Диалог", заточил запрос для pif.investfund.ru, надо было только id нужного фонда выцепить.
... то уже давно бы разобрались с отладкой регулярных выражений.
 
Как один из вариантов:
- идём на http://gskinner.com/RegExr/
- вставляем в самое большое поле исходник страницы
- в верхнее поле копируем свой регэксп целиком
- ищем в исходнике страницы подсвеченные голубым области и при наведении на них мышкой смотрим, какие значения попадают в группы
 
Это гораздо нагляднее и удобнее любого, даже самого подробного лога.
Из-за специфики формата источника названия валют будут в виде: "Rusko|rubl".
Но должно быть достаточно один раз исправить их в AbilityCash.
 
Для этих настроек требуется плагин UniRates версии не ниже 1.5
 
[cnb.cz]
Name=Чешский национальный банк
PageURL=http://www.cnb.cz/cs/financni_trhy/devizovy_trh/kurzy_devizoveho_trhu/denni_kurz.txt?date=%d%.%m%.%yyyy%
EstimatedPageSize=1000
HomeCurrencyCode=CZK
HomeCurrencyName=Чешская крона
Prologue=(?<date>.*?)\s+#.*?zemД›|mД›na|mnoЕѕstvГ­|kГіd|kurz
Record=(?<name>.*?\|.*?)\|(?<value2>.*?)\|(?<code>.*?)\|(?<value1>.*?)\s
DecimalSeparator=,
Codepage=65001