[ jzarko @ 03.06.2010. 21:51 ] @
Kao sto u naslovu kažem potrebna mi je pomoc,dobrih ljudi :D, u vezi konkretnog problema koji zelim da resim. Nisam profesionalni programer vec onako time se bavim amaterski elem, da ne odugovlacim vec da predjem na stvar.

Napravio sam aplikaciju koja sluzi kao pomocno sredstvo u jednoj online strategiji koju igram.Prilažem slike aplikacije (ne zamerite na pravopisnim greskama u njoj)

http://s005.radikal.ru/i209/1006/13/c2d85a145912.jpg

http://i029.radikal.ru/1006/b5/9e941586e51c.jpg

E sad moj problem je u tome sto korisnik mora sam da ukuca svoje podatke a ja voleo da kalulator bude online tj. da korisnici ukucaju svoje ime i da aplikacija sama putem interneta dodje do neophodnih podataka za dalji proracun.

Da elaboriram:

1. korisnik ukuca svoje ime

2. aplikacija ide na htp://api.erepublik.com/v1/feeds/citizens/{USER_NAME}?by_username=true, za username npr. uzmemo "zarkoni" tj. http://api.erepublik.com/v1/fe...izens/zarkoni?by_username=true

3.aplikacija uzima neophodne podatke za dalji proracun,ako ste otvorili link podaci koji su mi potrebni su:
<wellness>94.49</wellness>
<damage>82208</damage>
<strength>19.04</strength>



Pa ako neko moze da mi pomogne u vezi ovog gore, u vidu dela koda ili literatute.
Hvala
[ t.marko016 @ 05.06.2010. 20:43 ] @
Svaka ti cast na konkretnosti, radis neki program a pricas kakvo ce vreme sutra biti.

Daj budi precizan, ja ne garantujem da znam ali niko te ne razume pa svi ignorisu temu.

Pozdrav
[ jzarko @ 06.06.2010. 11:34 ] @
@t.marko016
Slazem se sa tobom u potpunosti, moje okolisanje je proteklo iz nepoznavanja ove materije.
na formu ubacis ->components->microsoft internet control
za textBoxs multiline stavi na true i ScrollBars na 3-both
Code:
Private Sub Command1_Click()
Text1.Text = Inet1.OpenURL("http://api.erepublik.com/v1/feeds/citizens/1502411", icString)
End Sub


izlaz ove linije u textBox je:
Citat:
<?xml version="1.0" encoding="UTF-8"?>
<citizen>
<citizenship>
<country>Australia</country>
<c-id>50</c-id>
</citizenship>
<military-rank>Field Marshal</military-rank>
<wellness>100.0</wellness>
<damage>186143</damage>
<is-general-manager>false</is-general-manager>
<medals>
<medal>
<type>congressman</type>
<amount>1</amount>
</medal>
<medal>
<type>super trooper</type>
<amount>5</amount>
</medal>
<medal>
<type>hard worker</type>
<amount>9</amount>
</medal>
<medal>
<type>avatar change</type>
<amount>0</amount>
</medal>
</medals>
<country>Australia</country>
<strength>26.78</strength>
<is-party-member>false</is-party-member>
<is-president>false</is-president>
<region-id>333</region-id>
<experience-points>4432</experience-points>
<region>Western Australia</region>
<is-congressman>false</is-congressman>
<level>21</level>
<skills>
<skill>
<domain>manufacturing</domain>
<value>2.3</value>
</skill>
<skill>
<domain>land</domain>
<value>10.44</value>
</skill>
</skills>
<country-id>50</country-id>
<fights>1609</fights>
<sex>M</sex>
<name>Dimension</name>
<avatar-link>http://static.erepublik.com/up..._55x55.jpg</avatar-link>
<id>1502411</id>
<friends>
<friend>
<id>2</id>
</friend>
<friend>
<id>1221324</id>
...

</friends>
<date-of-birth>2009-05-24 16:49:48 UTC</date-of-birth>
</citizen>


ono sto meni treba su podaci, oznaceni crvenom bojom. kako da dodjem do njih da ih sacuvam u varijablu?



[Ovu poruku je menjao jzarko dana 06.06.2010. u 13:43 GMT+1]
[ vuchko.vuchko @ 06.06.2010. 13:37 ] @
Evo ja cu ti dati ideju, a ti razradi kod, ja bi to ovako odradio....

Sadrzaj text boxa sa ovim textom bi stavio u neku varijablu...npr

Code:
Dim CeoText as String
CeoText=Text1.Text


Zatim bi taj string iscitavao...U tvom slucaju bi iscitavao po 10 karaktera i trazio kada ce se tih 10 karaktera biti identicno sa <wellness>

Code:
For i=1 to len(CeoText)
PrivTxt=mid(CeoText,i,10)

If PrivTxt="<wellness>" Then StartBr= i+10

PrivTxt1=mid(CeoText,i,11)
If PrivTxt1="</wellness>" Then StoptBr= i
next i


A zatim bi izvadio sadrzaj izmedju <wellness> i </wellness> ovako

Code:
VellnesTxt=mid(CeoText,StartBr,StopBr-StartBr)



To ti je ideja i sigurno bi radila... A ti to malo bolje razradi samo i javi jesi li uspio
[ Eurora3D Team @ 07.06.2010. 12:11 ] @
Mozes da napravis malu funkciju za ocitavanje vrednosti XML elemenata.
Imas komentare u kodu.
Inace, ovaj pogram radi to sto ti treba ...
Code:

Private Sub Command1_Click()
Text1.Text = Inet1.OpenURL("http://api.erepublik.com/v1/feeds/citizens/1502411", icString)
'...
Dim SXML As String ' ceo XML
SXML = Text1.Text
Dim wellness As String, damage As String, strength As String
wellness = GetElement(SXML, "wellness")
damage = GetElement(SXML, "damage")
strength = GetElement(SXML, "strength")
' posto su ovo sve brojevi pretvoricemo stringove u brojeve
Dim d_wellness As Double, l_damage As Long, d_strength As Double ' nisu svi iste vrste ...
d_wellness = CDbl(wellness)
l_damage = CLng(damage)
d_strength = CDbl(strength)
End Sub

Private Function GetElement(XML As String, Element As String) As String
GetElement = "" ' porvatna vrednost funkcije je prazan string, u slucaju neke greske funkcija ce da vrati prazan string
Dim b As Integer, e As Integer ' intovi za trazenje pocetka reci
Dim bs As String, es As String ' stringovi koji se traze
bs = "<" + Element + ">" ' formiramo prvi string, za parametar Element "wellness" dobicemo "<wellness>"
es = "</" + Element + ">" ' formiramo drugi string, za parametar Element "wellness" dobicemo "</wellness>"
b = InStr(1, XML, bs) ' trazimo pocetak prvog stringa
If b < 1 Then Exit Function ' ako nismo nasli izlazimo iz funkcije
b = b + Len(bs) ' dodajemo duzinu prvog stringa na b, sad b pokazuje na podatke posle prvog stringa
e = InStr(b, XML, es) ' trazimo pocetak drugog stringa, pocinjemo trazenje od mesta na koje pokazuje b
If e < 1 Or e < b Then Exit Function ' ako nismo nasli ili je pocetak drugog pre prvog izlazimo iz funkcije
GetElement = Mid(XML, b, e - b) ' povratna vrednost ce da bude string koji je izmedju mesta b i e
End Function

[ jzarko @ 08.06.2010. 15:37 ] @
hvala vam, puno ste mi pomogli. zahvaljujem vam se @vuchko.vuchko @Eurora3D Team -Nebojša
oba koda rade super bez greske ;)
oba koda su elagantni na svoj nacin!





[Ovu poruku je menjao jzarko dana 08.06.2010. u 17:06 GMT+1]

[Ovu poruku je menjao jzarko dana 08.06.2010. u 17:11 GMT+1]

[Ovu poruku je menjao jzarko dana 08.06.2010. u 22:44 GMT+1]