Pobranie tabeli kursów walut

0

Cześć, czy wie ktoś, jak pobrać aktualną tabelę kursów walut?

0

możesz wykorzystać kanał rss, na potrzeby jednego serwisu nawet znazłem taki: http://lokomotywa.pl/waluty/rss_nw_tabela_a.php, później tylko jakiś parser xml i po robocie ;)
Jeżeli ta tabela Ciebie nie interesuje to proponuję wejść na stronę i zobaczyć która bo jest ich kilka, ta konkretnie odnosi się do kursów średnich NBP

Jeden nawet jest wbudowany w delphi7, nie pamiętam nazwy, dawno nie programowałem w delphiaku od dłuższego czasu tylko php, a pamiętam, że był on bardzo wygodny w korzystaniu.

Chyba na 4p artykuł o xml i tym komponencie jest(był).

0

NBP udostępnia w XML-u kursy walut, potem TXMLDocument czy inny parser XML i gotowe.

0
Ktos napisał(a)

NBP udostępnia w XML-u kursy walut(...)

Szukałem kiedyś na stronie NBP i jakoś nie było :>
Byłbym wdzięczny za jakiś namiar ;)

0

http://nbp.pl/Kursy/KursyA.html i na samym dole jest link do czegoś takiego jak http://nbp.pl/Kursy/xml/a117z060619.xml - to chyba to :)

0
Ktos napisał(a)

http://nbp.pl/Kursy/KursyA.html i na samym dole jest link do czegoś takiego jak http://nbp.pl/Kursy/xml/a117z060619.xml - to chyba to :)

Rozumiem, że:

  1. Muszę to zapisać na dysk
  2. Nazewnictwo pliku jest zawsze: a177zXXYYZZ.xml
    XX - dzień
    YY - miesiąc
    ZZ - rok
    ??

[dopisane]
I jeszcze jedno pytanie. Czy NBP umieszczza gdzieś, z jakiego dnia jest tabela do pobrania? Bo, jeśli nie, to plik musiałbym pobierać codziennie. Bo jeśli powiedzmy nie będę pobierał przez tydzień, musiałbym potem sprawdzać, najnowszy plik, czy istnieje...

0

Ad.1.
No niestety plik trzeba pobrać, nawet jeżeli prog miałby działac tylko online, wtedy można wykorzystać temp.

Ad.2.
W moim kanale nazwa pliku jest stała, jak to się odbywa w NBP nie wiem bo dziś zobaczyłem dopiero. Moim zdaniem ten nr 117 w nazwie też coś oznacza.

Co do daty publikacji to, otwórz ten plik xml z NBP i zobacz co jest na początku:

<?xml version="1.0" encoding="ISO-8859-2"?>
<tabela_kursow typ="A">
   <numer_tabeli>117/A/NBP/2006</numer_tabeli>
   <data_publikacji>2006-06-19</data_publikacji>
   <pozycja>
      <nazwa_waluty>dolar amerykański</nazwa_waluty>
      <przelicznik>1</przelicznik>
      <kod_waluty>USD</kod_waluty>

      <kurs_sredni>3,2104</kurs_sredni>
   </pozycja>
0
mephir napisał(a)

Ad.2.
Co do daty publikacji to, otwórz ten plik xml z NBP i zobacz co jest na początku:

Nie o to mi chodziło.
Chodziło mi o taką rzecz, że sprawdzam gdzieś datę aktualizacji, porównuje ze swoją bazą, jeśli moja baza jest starsza, to wtedy pobieram plik i go importuje, a jeśli nie, to nic nie robię.
Napisałem do NBP, ale nikt nie odpisuje i wątpię, żeby ktokolwiek odpisał.

0

Ciężki orzech do zgryzienia z tym pliczkiem z NBP jest, ponieważ podejrzewam, że ta liczba 117 też się zmienia, to byś musiał wchodzić na stronę tą co podał Ktos i sprawdzać jak nazywa się plik, a to jest karkołomne rozwiązanie.
Ale sprawe masz prostą kiedy masz zmianę kursów. A mianowicie jak pliku tego nie ma to znaczy, że jest nowy i wtedy wchodzisz na tą stronę wyciągasz nową nazwe pliku i pobierasz. Już nie pamiętam kiedy Tabela A jest uaktualniania.
Ops. Właśnie jest nowa i zamiast 117 ma 118 więc ciągniesz na tej zasadzie, ale stary plik również został na dysku ;( Więc to odpada.

Ale jest jeszcze wyjście. Wątpie aby kursy walut mogły być stałe choćby przez dwa dni, więc zawsze możesz pobierać ten plik(http://nbp.pl/Kursy/KursyA.html) liczyć sume kontrolną i porównywać z sumą starego.
Jak się różnią to wyciągasz nazwę pliku i pobierasz ;)

Ewentualnie próbujesz pobrać plik (np. dla teraz) http://nbp.pl/Kursy/xml/a119z060621.xml, czyli z jutra jak go nie będzie to wsio - znaczy, że nie ma nowych kursów. I to chyba najprostsze rozwiązanie :>

0

Czy ja wiem, czy taki trudny :| na stronie http://nbp.pl/Kursy/KursyA.html masz tekst: "
Tabela kursów nr 118/A/NBP/2006 z dnia 2006-06-20" <- tutaj masz wszystko co potrzebne aby usyskać nazwę pliku. Wystarczy pobrać zawartość strony i np. funkcją Pos sprawdzić położenie tekstu "Tabela kursów nr". Potem to już tylko kopiowanie danych: czyli tej 118, tego A, przelatujesz PosEx'em na słowo "z dnia" i kopiojesz odpowedni datę. Na koniec wszystko sklejasz i dostajesz swoj uprawgniony link :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1