Visual Basic - dobivanje varijable sa neta

poruka: 10
|
čitano: 5.174
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
neaktivan
offline
Visual Basic - dobivanje varijable sa neta

Neki dan sam evo, počeo raditi u Visual Studio-u 2010. Prvi da tako kažem projekt jest konverter valuta. Pošto sam totalni početnik, naišao sam na problem varijabli pojedinih valuta.

Naime, pošto se one mijenjaju stalno, potrebno ih je osvježiti sa web-stranica i nekako ubaciti u program. Nadam se da je to moguće.

 

Eto, ako možete nekako pomoći, bio bih zahvalan da odvojite minuticu vremena.

ZOTAC: It's Time to Play.
Poruka je uređivana zadnji put uto 5.3.2013 19:59 (DmL).
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Visual Basic - dobivanje varijable sa neta

Ugrubo:

 

Ako konvertiraš za naše tržište imaš tečajnu listu na http://www.hnb.hr/tecajn/htecajn.htm

 

Tamo imaš (na vrhu) linkove na formatiranu datoteku i opis formata.

 

Formatirana datoteka za 08.03.13 je na linku http://www.hnb.hr/tecajn/f080313.dat

 

Dakle kada dohvaćaš listu za neki datum hvatašhttp://www.hnb.hr/tecajn/f<datum>.dat

 

E sada kada smo riješili gdje ćeš doći do liste ti trebaš riješiti kako ćeš listu pokupiti s neta (webClient komponenta) i onda kada to sve dobiješ u formi stringa počupaj valute prema opisu formata.

 

Znači prva tri znaka su ti broj tečajnice, onda 8 znakova datum izrade, pa 8 datum primjene.... itd.

 

Pogledaj ovdje kako iskoristiti WebClient za dohvatiti string sa neta http://msdn.microsoft.com/en-us/library/fhd1f0sw%28v=vs.80%29.aspx

14 godina
neaktivan
offline
Visual Basic - dobivanje varijable sa neta

Hvala puno na odgovoru.

 

Evo ga gotov kôd, pa ako mozes bacit oko ovdje.

Potpuno mi je nov program i tek sam počeo raditi, pa ne znam jel' sve ok, ali radi...

 

ZOTAC: It's Time to Play.
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Visual Basic - dobivanje varijable sa neta

Visual basic nije moj omiljeni jezik (fuj fuj :P ) tako da se nisam trudio skinuti kompajlirati i sve, ali povirio sam i prvo što mi je uletilo u oko je da koristiš nekakav webservis koji ti daje tečaj bazirano na linku.

 

Pa s obzirom kako ti program ide možeš si uštediti truda, if-ova i prometa ako napraviš nešto ovako.

 

u programu korisnik odabere valute koje hoće konvertirati (npr eur u dolar). Utipka količinu i klikne da mu se sračuna.

 

Onda ti provjeriš da li je njegov unos dobar (da li je broj, pozitivan... itd.) i na osnovu valuta koje je odabrao formiraš link za upit.

 

dakle imaš funkciju koja bi izgledala otprilike ovako (ovo je sve iz glave)

 

Dim tecaj as Decimal

Decimal.TryParse (webKlijent.DownloadData("http://www.hvka.org/valuta.php?q=1" + iz.Text + "=?" + u.Text), tecaj)

rezultat.Text = unos.Text * tecaj

 

ovo podrazumjeva da ti je tekst koji imas u "iz" i "u" kontrolama samo EUR, HRK, GPB, itd bez dugog imena valute.

 

sada kada sam malo pogledao ovo ti eliminira prakticki 90% tvog koda :)

 

ono što se dešava je:

Kada korisnik klikne za konverziju program formira link za dobiti tečaj, pokupi tečaj i konvertira ga u decimalni broj, i postavi rezultat na umnožak korisnikovog unosa i dohvaćenog tečaja.

 

Sav ostali kod je višak :)

 

 

 

 

Poruka je uređivana zadnji put sub 9.3.2013 1:06 (Dr. Zoidberg).
14 godina
neaktivan
offline
Visual Basic - dobivanje varijable sa neta

Mislim da sam donekle razumio o čemu pričaš... Kažem, ja doslovno samo znam deklarirati varijablu i if slučajeve za sada. {#}

Sutra malo probam izmjenit kod, pogledam dal' sve štima, pa ako zapnem se javim.

 

Odnosno neki zdravi razum mi je govorio da se to tako inače ne radi ( tada bi programer izgubio čitav dan za ovakav program :P ), nego sam eto, učio se radit sa if-om, deklarirati varijable, pozvati funckije...

Ovo je sve novo za mene. 

ZOTAC: It's Time to Play.
Poruka je uređivana zadnji put sub 9.3.2013 1:12 (DmL).
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Visual Basic - dobivanje varijable sa neta

Samo uporno :)

 

Evo da ti nacrtam (doslovno, da se snadjes lakse, uhvatio me prazni hod :) )

 

Ako ti program izgleda ovako (dakle prostor za unos, dva dropboxa za biranje valute i prostor za rezultat) onda ti treba:

Jedna varijabla u koju ćeš pospremiti tečaj koji dohvatiš za konverziju.

Jedan webClient s kojim ćeš dohvatiti tečaj.

 

Kada formiraš link za dohvaćanje tečaja moraš imati par stvari na umu. Spajanje stringova se vrši znakom plus.

Znači

"Riba" + "ribi"

ti daje "Ribaribi"

 

Ako to primjenimo na dropbox

"Riba" + iz.Texti ako je u dropboxu selektirano HRK dobijemo "RibaHRK"

 

I koristeći to formiramo link s kojim dobijemo potrebni tečaj, bez da dohvaćamo sve tečaje odjednom.

 

Kada dobiješ tečaj jednostavno ga množiš sa sadržajem textboxa s unosom te ispišeš rezultat.

 

Sada u C# bi još trebao neke vrijednosti prvo konvertirati u brojeve ali sjećam se da je VB bio tolerantniji, ali snadješ se :).

 

Dakle to je 5-6 linija koda, sretno :)

 

 

 

14 godina
neaktivan
offline
Visual Basic - dobivanje varijable sa neta

Evo ga, puno ljepše izgleda bez one 'if' kobasice.

 

Jedino mi nije baš jasno čemu služi webKlijent varijabla. Ostalo su više-manje pretvaranja iz stringa u decimal te provjere unosa. 

I nekako me smeta što u combo-boxevima mora biti HRK,EUR, USD i sl. umjersto prijašnjeg Američki dolar (USD), Britanska funta (GBP) itd.

 

 

I ono što ne radi, sada sam testirao, jest da ako pustim uneseni broj pazan, a odaberem valute iz combobox-eva, program se sruši.

ZOTAC: It's Time to Play.
Poruka je uređivana zadnji put sub 9.3.2013 13:27 (DmL).
Moj PC  
0 0 hvala 0
15 godina
offline
Re: Visual Basic - dobivanje varijable sa neta

WebClient ti je objekt koji ima metode za pristup webu.

 

Da bi koristio njegove metode moraš napraviti webclient objekt.

 

Ako želiš duge nazive u comboboxu onda jednostavno kada formiraš link iskoristiš funkciju substring (iz.Text.Substring())

 

Kao parametre funkciji substring daš lokaciju prve zagrada i pročitaš slijedeća 3 znaka iza nje da dobiješ kraticu valute.

 

Nekako ovako

 

iz.Text.Substring(iz.Text.indexOf('(') + 1, 3)

 

dakle uzimamo substring dužine 3 znaka (drugi parametar) a počinjemo ga uzimati na poziciji prvog pojavljaivanja otvorene zagrade (prvi parametar, indexOf) plus jedan znak. Taj dodatni znak je tu da ne uzmemo samu zagradu.

 

Ako ti nije jasno pogledaj funkcije substring i indexof :)

14 godina
neaktivan
offline
Visual Basic - dobivanje varijable sa neta

Puno hvala, evo sve radi!

 

Jako lijepo si objasnio indexOf, odmah sam shvatio o čemu je riječ. Hvala ti još jednom za pomoć.

 

 

ZOTAC: It's Time to Play.
Moj PC  
1 0 hvala 0
8 godina
neaktivan
offline
Re: Visual Basic - dobivanje varijable sa neta

cao druze.. Meni slicno treba za skolu, da li bi mogao da mi posaljes sliku ili nesto kako treba da izgleda uradjeno.. Hvala unapred

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice