Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Курс 8 видов валют на любой выбранный день и конвертация [Валюта] <-> [Рубль] (http://forum.oszone.net/showthread.php?t=147708)

kaster 11-08-2009 16:36 1191134

Курс 8 видов валют на любой выбранный день и конвертация [Валюта] <-> [Рубль]
 
Вложений: 3
После очередных видоизменений, подвожу промежуточный итог.

Строение скрипта
  1. Основная вкладка: Выбор вида валюты, выбор даты, конвертация
  2. Вспомогательная вкладка: перезапись основного файла с базой данных

Сопровождающие файлы
  1. [Include]
    1. ButtonConstants.au3
    2. EditConstants.au3
    3. GUIConstantsEx.au3
    4. StaticConstants.au3
    5. ProgressConstants.au3
    6. WindowConstants.au3 - Необходимы константы
    7. Date.au3 - Библиотека для получения разницы дат
    8. GuiTab.au3 - Библиотека для вкладок
  2. [Resources]
    1. dollar.ico - Файл с иконкой
    2. ru.ini
    3. eng.ini - Файлы языковых настроек
    4. dollar.ico - Файл с иконкой
    5. CViewerHelp.chm - Файл справки (Пока пустой)

Возможности скрипта
  1. Показ курса валют на любой выбранный день в случае наличия в базе ЦБ РФ для любого из 8 выбранных видов валюты
  2. Хранение полученных курсов в общей локальной базе данных для дальнейшего к ним обращения без необходимости скачивать страницы снова
  3. Возможность выбирать собирать курсы самому или загрузить всю историю курсов с сайта ЦБ за период с 01.07.1992 - по настоящее время с сохранением имеющейся базы
  4. Конвертация из вышеперечисленных видов валют в рубли и обратно по курсу "на сегодня"
  5. Возможность смотреть курс "на завтра" в случае успешной регистрации курса Центробанком.
  6. Выбор языка NEW
  7. Различные виды защит "от дурака"
    1. Защита от ввода дат не зарегистрированных в ЦБ
    2. защита от ввода "далекого будущего" (+2 дня и больше)
    3. Защита от ввода завтрашнего дня в случае отсутствия зарегистрированного курса (как правило курс "на завтра" регистрируется "сегодня" после полудня)
    4. Защита от случайной перезаписи существующей базы при обновлении с сайта за полный период с 1992 года - Старая база будет хранится под названием database_old.ini
  8. визуализация процесса загрузки данных и записи в базу значений и всякого рода страшилками по поводу перезаписи данных и возможно большого количества времени ожидания :teeth:
  9. Возможность конвертировать валюты в обоих направления относительно рубля
  10. Скомпилированная версия файла является самодостаточной для беспроблемного запуска на машинах с только лишь предустановленной операционной системой Windows XP SP3 (про остальные ОСи ничего сказать не могу, не проверял)

Особенности скрипта и будущие планы
  1. Наполнение HELP-файла
  2. Использование модуля sqlite для более удобного и быстрого доступа к истории курсов - Отказался от этой затеи, т.к. была получена оптимизация записи данных в database.ini
  3. Построение временных трендов за указанные период времени

Скрины




Архивы
Смотрите в аттаче (Как обычно src, exe и database.ini с курсами по сегодняшний день)

Дополнения и изменения к версии 5
* Интерфейс. Теперь одно окно с вкладками. Цвет изменен на нейтральный. Немного подкрашен текст. Убрана возможность редактировать поля для вывода. Другая иконка
* Календарь. Без отдельного окна, и ограничение на редактирование поля для даты. Формат теперь жестко задан самой формой календаря
* Прогресс-Бар. Без отдельного окна.
+ Вкладки
+ Кнопка-Пустышка для Хелпа.

Дополнения и изменения к версии 6
* Скорость записи *.ini файла заметно возросла (Это пока единственное что сделано :teeth: )

Дополнения и изменения к версии 7
* Добавлен выбор языка интерфейса. Винить сами знаете кого :teeth: (Выбор языка при первом запуске определяется по локали системы)

bez_ 11-08-2009 17:23 1191188

kaster, не могли бы добавить и пересчет курса в гривнах для жителей Украины?

kaster 11-08-2009 17:48 1191202

Привет, bez_ :)
Уточни пож-та, о каком пересчете ты говоришь, UAH -> RUR или UAH -> USD/EUR?

kaster 16-08-2009 20:37 1195035

Проупдейтил первый пост и сам скрипт :)

SyDr 16-08-2009 21:37 1195117

Цитата:

Цитата kaster
- Шрифт изменен с дефолтного, не помню какой был, на Calibri »

Лучше сменить на дефолтный. Калибри по умолчанию есть начиная с Висты.
Цитата:

Цитата kaster
Date.au3; GDIPlus.au3 (для работоспособности скрипта у тех, у кого нет Autoit3) »

Если ты компилируешь скрипт - тебе не надо таскать рядом файлы, вложенные с #include
Цитата:

Цитата kaster
PPS: Повторюсь, скрипт не претендует ни на что и является продуктом исключительно моего желания получше изучить язык.
Опять же, буду рад всем пожеланиям/комментариям/критике. »

Смени в основном цикле обработки GUI Select на Switch...
И добавь обработку события $GUI_EVENT_CLOSE - чтоб из проги можно было выйти не только по кнопке exit

kaster 16-08-2009 22:02 1195144

Цитата:

Цитата SyDr
Лучше сменить на дефолтный. Калибри по умолчанию есть начиная с Висты. »

а в хп нет. проверял на виртуальной машине. калибри мне больше по душе
Цитата:

Цитата SyDr
Если ты компилируешь скрипт - тебе не надо таскать рядом файлы, вложенные с #include »

хм... у меня как раз наоборот было на машине на котором не было установленного autoit
Цитата:

Цитата SyDr
Смени в основном цикле обработки GUI Select на Switch... »

и что это даст?
Цитата:

Цитата SyDr
И добавь обработку события $GUI_EVENT_CLOSE »

у меня почему-то с двумя гуи окнами глюки. закрываешь один закрываются все

SyDr 17-08-2009 09:51 1195407

Цитата:

Цитата kaster
а в хп нет. проверял на виртуальной машине. калибри мне больше по душе »


Даже после установки шрифта и перезагрузки
Цитата:

Цитата kaster
хм... у меня как раз наоборот было на машине на котором не было установленного autoit »

Что-то не так значит понял. Для скриптов UDF нет нужды таскать с собой сами файлы для скомпилированного скрипта. Если же скрипт нескомпилирован и у человека нет AutoIt - он не сможет его запустить)))
Цитата:

Цитата kaster
и что это даст? »

Ну... В принципе ничего... Просто Select обычно используется, как замена куче If'ов. Когда надо сравнить $a и $b, $c и $d и т.д. Switch же используется, когда надо сравнить одно какое-то значение со многоими другими. Хотя... Здесь кому как удобнее.
Цитата:

Цитата kaster
у меня почему-то с двумя гуи окнами глюки. закрываешь один закрываются все »

AutoIt3\Examples\GUI\Simple\child.au3
Посмотри пример работы с двумя GUI окнами.

kaster 17-08-2009 10:53 1195454

Цитата:

Цитата SyDr
Даже после установки шрифта и перезагрузки »

а ты проверь скопировались ли действительно шрифты в нужную папку
%windir%\fonts
и попробуй еще раз запустить
Цитата:

Цитата SyDr
Что-то не так значит понял. Для скриптов UDF нет нужды таскать с собой сами файлы для скомпилированного скрипта. Если же скрипт нескомпилирован и у человека нет AutoIt - он не сможет его запустить))) »

вот именно, что тестил на машине без автоита, экзешник запустился но выдал ошибку, после FileInstall нужных либ ошибка исчезла. Не знаю как с автоитом конкретно дело обстоит, но по логике вещей вроде так и должно быть. откуда он может брать эти функции если их нет в компиляторе который вшивается в экзешник? можешь попробовать сам. подправь инклуды, убери файлинсталлы и запусти на тачке без автоита ;)
Цитата:

Цитата SyDr
Ну... В принципе ничего... »

ну значит пусть будет так ;)
Цитата:

Цитата SyDr
AutoIt3\Examples\GUI\Simple\child.au3 »

там и так одно окна идет как child
но все равно глючило. поизучаю. ну а пока путь будет Exit :D

FlatX007 17-08-2009 12:56 1195568

Цитата:

Цитата kaster
а ты проверь скопировались ли действительно шрифты в нужную папку
%windir%\fonts
и попробуй еще раз запустить »

А ничего если шрифт надо зарегить в реестре ?
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts
Или сюда C:\Windows\win.ini секция [fonts]

kaster 17-08-2009 13:07 1195578

Цитата:

Цитата FlatX007
А ничего если шрифт надо зарегить в реестре ? »

ничего. на хп работает и так

FlatX007 17-08-2009 13:47 1195603

А с рапиды некачает, видать кто - то удалил О)

Подправил малец (или испортил каму как нравится)

kaster 17-08-2009 15:03 1195669

Цитата:

Цитата FlatX007
А с рапиды некачает, видать кто - то удалил О) »

нет. файл лежит.
Цитата:

Цитата FlatX007
Подправил малец (или испортил каму как нравится) »

ща посмотрим :)

kaster 17-08-2009 19:02 1195895

FlatX007, вобщем посмотрел я на твои поправки и сделал следующие выводы :)
Буду ставить тебе и себе оценки в виде "+" - принял на вооруженеи, "-" - не принял, "0" - проигнорировал :teeth:
За подсказку про собирание инклудов - отличная идея: + тебе
Аналогичным образом собрал и остальные файлы в папку - + мне :teeth:
Идея со свичами вместо селектов, начал править свой старый скрипт, и теперь там снова селекты, - 0
Не совсем понял зачем ты перерисовал мой GUI calendar. в общем я вернул все назад. тем более там былая какая-то константа $GUI_WS_EX_PARENTDRAG, которой не было ни в справке, да и компилятор ругался на него - "-"
в остальном, как я понял без изменений

по поводу самого скрипта, обновил его, с учетом вышесказанного. вобщем, FlatX007, кое-что из подправленного оказалось действительно полезным.

И так, последний упдейт
- Кнопка закрытия окна снова активна, можно закрывать нажав его или Esc-ом
- Все инклуды собраны в папку
- Все другие файлы нужные для работы скрипта собраны в папку
- Большой ини с историей курсов убран из основных файлов. кому надо можете скачать отдельно и заменить .\Resources\database.ini
- Шрифт заменен на дефолтный. Чтобы меньше возни было при первом запуске. А как известно, первое впечатление решающее :yes:

Архивы
Смотрим шапку

FlatX007 18-08-2009 06:58 1196317

$GUI_WS_EX_PARENTDRAG

Позволяет перемещать окно указателем мыши не с помощью заголовка окна, а используя для этого его надписи или изображения. Назаменимый стиль окна без заголовка.

Этот стиль я наверно зря сунул ... недосмотрел
Вместо $GUI_WS_EX_PARENTDRAG напиши значение 0x00100000

Календарь должен был быть такой :)

kaster 18-08-2009 09:31 1196383

Цитата:

Цитата FlatX007
Календарь должен был быть такой »

не поверишь, но он и сейчас такой :biggrin:

kaster 19-08-2009 03:40 1197165

Смотрим шапку :beta:

FlatX007 19-08-2009 19:09 1197681

Зачем создан этот файл с иконками icons.icl - всего из за 4 иконок...
Может тогда лучше dll ?
Да и воще помоиму нужен всего один ico да и тот для компилируемого файла.

И значки какие-то странные с белым фоном может лучше нарисовать нормальные - качественные с максимальным разрешением 255*255.

Да и почему программа на английском О-) , я вот лично ничего непонимаю.

kaster 19-08-2009 19:45 1197704

Цитата:

Цитата FlatX007
Зачем создан этот файл с иконками icons.icl - всего из за 4 иконок... »

даже еслибы там были 2 файла, все равно удобнее держать один файл вместо 2,3,...,1000000
Цитата:

Цитата FlatX007
Может тогда лучше dll ? »

лучше чем? тоже 1 файл, тоже содержит иконки, а гемора больше. да и не умею я. а тут. берешь любой icon librarian, пихаешь иконки и сохраняешь как icl, просто как 5 копеек :)
Цитата:

Цитата FlatX007
Да и воще помоиму нужен всего один ico да и тот для компилируемого файла. »

если исключительно для компилирования, то после компилирования иконка, как мне помнится вообще внедряется в exe, так что в дальнейшем даже он не нужен. однакож, пусть будут. мне они нравятся :yes:
Цитата:

Цитата FlatX007
И значки какие-то странные с белым фоном может лучше нарисовать нормальные - качественные с максимальным разрешением 255*255. »

странные не странные, не знаю, брал у гугля. какие дал, такие взял. сам рисовать красиво не умею, да и потом, иконки ониж крохотные, зачем их мастерить :search: а эти может не очень красивые, зато со смыслом :teeth:
Цитата:

Цитата FlatX007
Да и почему программа на английском О-) , я вот лично ничего непонимаю. »

просто так. а тебе пора подучить язык :yes:

266903582 19-08-2009 20:22 1197739

Цитата:

Цитата FlatX007
Да и почему программа на английском О-) »

Скорее всего возможностей Русского недостаточно для корректного информирования пользователя...
Цитата:

Цитата kaster
пора подучить язык »

... или взять исходники и перевести программу, ведь учить язык не так...
Цитата:

Цитата kaster
просто как 5 копеек »

Или мы не ищем легких путей? :)

FlatX007 19-08-2009 20:30 1197748

Я имелл виду такую иконку она растягивается до ... 255*255 :)

kaster 19-08-2009 20:40 1197757

ну можно и такую.
там кроме календаря иконки тож не маленкькие. доллар - 64х64, воск. знак, пауза -128х128

Medic84 19-08-2009 20:44 1197761

Кажется процесс записи в ини файл требует оптимизации :beta:
Слишком долго... Уже минут 20 сижу. записал только половину....

kaster 19-08-2009 22:50 1197839

Цитата:

Цитата Medic84
Кажется процесс записи в ини файл требует оптимизации
Слишком долго... Уже минут 20 сижу. записал только половину.... »

у меня это занимает минуты 2-3.
а оптимизировать даже не знаю как, убрать оттуда ничего нельзя уже. самый минимум инфы.
я щас работаю над версией с sql модулем с полноценной базой данных вместо ини, должно быть быстрее

FlatX007 20-08-2009 06:14 1198028

Вы умеете делать из png - ico ? ... тут к себя нашол несколько иконок, я думаю как раз в "кассу" :)

kaster 20-08-2009 09:23 1198080

Цитата:

Цитата FlatX007
Вы умеете делать из png - ico ? ... тут к себя нашол несколько иконок, я думаю как раз в "кассу" »

да. есть такая прога. кинь плз архивчик, приделаю :)

FlatX007 20-08-2009 14:40 1198369

Вот ...

kaster 02-09-2009 14:12 1209594

смотрим шапку :)
PS: если кто успел скачать за эти несколько минут, перекачайте плз. архивы перезалиты

kaster 05-09-2009 17:20 1212171

смотрим шапку

FlatX007 05-09-2009 21:22 1212306

Опять на английском языке :( ... да сделай же 2 массива Для Русского и Английского языков.

kaster 05-09-2009 21:26 1212311

Цитата:

Цитата FlatX007
Опять на английском языке ... да сделай же 2 массива Для Русского и Английского языков. »

хочешь эксклюзив на русском, FlatX007 Edition? :)

kaster 07-09-2009 10:22 1213134

смотрим шапку

FlatX007 07-09-2009 10:37 1213143

Цитата:

Цитата kaster
Винить сами знаете кого »

Вот видиш можеш же ! молодЭц :yes:

kaster 07-09-2009 10:39 1213146

Цитата:

Цитата FlatX007
Вот видиш можеш же ! молодЭц »

Ну, скажем так, я и не говорил что не могу. Просто было лень. Кстати. если придерживаться формата, можно любой язык впихнуть, надо просто перевести ini-файл


Время: 12:50.

Время: 12:50.
© OSzone.net 2001-