Ivo Pereira Posted November 13, 2007 at 06:13 PM Report Share #147167 Posted November 13, 2007 at 06:13 PM Boas pessoal, gostaria aqui de requisitar um pequeno tutorial simples e bem explicadinho em português de preferência sobre: While Until Loop For Each E mais algum deste tipo 😞 [glow=red,2,300]Cumps[/glow] Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 13, 2007 at 06:28 PM Report Share #147174 Posted November 13, 2007 at 06:28 PM Bom, posso-te ajudar com alguns... dim i as integer i = 0 Do while i < 20 Msgbox("Estás na posição " & i & " do while") i += 1 'Podes usar também i = i + 1, mas eu prefiro assim Loop 'vai repetir o while enquanto o i for menor que 20, ou seja, até 19 o For: dim i as integer for i = 0 to 20 Msgbox("Estás na posição " & i & " do for") Next i Bem o ultimo não tens de adicionar nada, ele vai repetir a condição até chegar a 20, depois avança no código, até agora foi o k apanhei disso. Espero ter ajudado, e em português... 😞 *Editado* Podes fazer cenas mais elaboradas, tenta perceber o código abaixo Public Sub seller() If lblstatus.Text <> "Logged In" Then 'Isto é práticamente para ver se o user está connectado (PRECISAS DO WRAPPER QUE POSTEI NOUTRA THREAD PARA CORRER ISTO) MsgBox("You have to be logged in") Exit Sub Else Dim currentheight As Integer = Me.Height 'Aqui gravo a informação do tamanho da form para mais tarde a voltar a pôr no sitio. mandarformb(300) ' aki mando a form para baixo de forma a mostrar o que está escondido... (já vou postar o código disto) PictureBox2.Visible = True fishname.Visible = True fishquantity.Visible = True sold.Visible = True wait.Visible = True 'Aqui entro na parte do site para receber a informação dos itens que há no "Inventory" Dim strHtml As Object = wrap.GetWrapper("http://www.gaiaonline.com/gaia/shopping.php?key=alpltfbdnxgowsfn&showall=true&utab=all", , Proxy, Porta) Dim position_i As Integer = InStr(1, strHtml, "// group 3: primary user sellback") 'nesta parte tou a definir a posição inicial de onde o programa vai começar a contar (isto está na source do site em cima) Dim position_f As Integer = InStr(position_i, strHtml, "// npc dialog & interaction") 'aki defino a final. (Isto é só pa dizer em que parte eh k ele vai começar a ver os itens do inventory do utilizador) Dim fishi(3) As String 'defino a array para 4 posições Dim fishid(26) As String 'defino a array para 27 posições Dim curgold As String 'até ap fishid(26) estou a definir quais os itens k kero obter do inventory fishid(0) = "100004" fishid(1) = "100005" fishid(2) = "100006" fishid(3) = "100007" fishid(4) = "100009" fishid(5) = "100010" fishid(6) = "100011" fishid(7) = "100012" fishid(8) = "100014" fishid(9) = "100015" fishid(10) = "100016" fishid(11) = "100017" fishid(12) = "100022" fishid(13) = "100023" fishid(14) = "100024" fishid(15) = "100025" fishid(16) = "100026" fishid(17) = "100027" fishid(18) = "100034" fishid(19) = "100035" fishid(20) = "100036" fishid(21) = "100037" fishid(22) = "100038" fishid(23) = "100039" fishid(24) = "100040" fishid(25) = "100041" fishid(26) = "100042 'agora vem a parte do filtro, enquanto a posição inicial for menor que a final ele vai procurar os valores. Do While position_i < position_f If InStr(position_i, strHtml, "store.register_item(") Then 'ele vê a posição inicial e vê se a partir daí encontra novos valores para store.register_item(, é isto que no source conta os items position_i = InStr(position_i, strHtml, "store.register_item(") 'se encontrou define a posição inicial para a posição do novo item k encontrou. fishi(0) = wrap.iB(strHtml, "'", "',", position_i) 'Obtém a ID do objecto (o fishi(0) guarda a informação do id do objecto 'em baixo vou ver se o fishi(0) se encontra na lista de id's que defini acima If InStr(1, fishi(0), fishid(0)) _ Or InStr(1, fishi(0), fishid(1)) _ Or InStr(1, fishi(0), fishid(2)) _ Or InStr(1, fishi(0), fishid(3)) _ Or InStr(1, fishi(0), fishid(4)) _ Or InStr(1, fishi(0), fishid(5)) _ Or InStr(1, fishi(0), fishid(6)) _ Or InStr(1, fishi(0), fishid(7)) _ Or InStr(1, fishi(0), fishid(8)) _ Or InStr(1, fishi(0), fishid(9)) _ Or InStr(1, fishi(0), fishid(10)) _ Or InStr(1, fishi(0), fishid(11)) _ Or InStr(1, fishi(0), fishid(12)) _ Or InStr(1, fishi(0), fishid(13)) _ Or InStr(1, fishi(0), fishid(14)) _ Or InStr(1, fishi(0), fishid(15)) _ Or InStr(1, fishi(0), fishid(16)) _ Or InStr(1, fishi(0), fishid(17)) _ Or InStr(1, fishi(0), fishid(18)) _ Or InStr(1, fishi(0), fishid(19)) _ Or InStr(1, fishi(0), fishid(20)) _ Or InStr(1, fishi(0), fishid(21)) _ Or InStr(1, fishi(0), fishid(22)) _ Or InStr(1, fishi(0), fishid(23)) _ Or InStr(1, fishi(0), fishid(24)) _ Or InStr(1, fishi(0), fishid(25)) _ Or InStr(1, fishi(0), fishid(26)) Then 'vê se a id está dentro das id's dos peixes fishi(1) = wrap.iB(strHtml, "', '7', '', '", "'", position_i) 'obtém a quantidade de peixe (aqui vou buscar ao codigo de javascript a quantidade dos itens que estava a procurar) fishi(2) = wrap.iB(strHtml, "', '", "'", position_i) 'obtém o valor entre o id e o nome do peixe fishi(3) = wrap.iB(strHtml, "'" & fishi(0) & "', '" & fishi(2) & "', '", "'", position_i) 'Encontra o nome do peixe (O código é qq coisa como isto ('1000001', '3', 'Nome do peixe'), então eu para ir buscar o nome do peixe faço fishi(0) k contém o valor do peixe, mais as quotes + o valor entre o nome do peixe e o fishid e depois obtenho o nome entre esta quote> ' e esta ' PictureBox2.ImageLocation = "images/" & fishi(0) & ".png" 'aqui defini uma lista de imagens com o id do peixe em referencia, e então vou apresenta-lo fishname.Text = fishi(3) 'já expliquei o k é o fishi(3) Label2.Visible = True fishquantity.Text = "x" & fishi(1) sellthatfish(fishi(0), fishi(1), fishi(3)) 'isto é a função que criei pra vender o peixe, ela recebe o nome do peixe pra apresentar na form, a quantidade a vender, e o id dele End If position_i += 1 'acabado o if acrescento ah posiçãi inicial +1 de forma a ele na proxima busca saltar a posição inicial Else position_i += 1000 'se nenhum id foi encontrado na busca adiciono 1000 para acabar rápidamente com o loop End If Loop strHtml = wrap.GetWrapper("http://gaiaonline.com/", (wrap.LastPage), Proxy, Porta) 'aki vou ao site inicial curgold = wrap.iB(strHtml, "Gold: </span>", "<") 'aki obtenho a quantidade de dinheiro na conta gldacc.Text = curgold mandarformc(currentheight) 'aqui mando a form outra vez pra cima PictureBox2.Visible = False fishname.Visible = False Label2.Visible = False fishquantity.Visible = False sold.Visible = False wait.Visible = False MsgBox("You made " & made.Text & "g.") End If End Sub agora os códigos de mandar a form para cima e para baixo: Public Sub mandarformb(ByRef formheight As Integer) Dim currentheight As Integer currentheight = Me.Height Do While currentheight < formheight currentheight += 1 Me.Height() = currentheight Loop End Sub Public Sub mandarformc(ByRef formheight As Integer) Dim currentheight As Integer currentheight = Me.Height Do While currentheight > formheight currentheight -= 1 Me.Height() = currentheight Loop End Sub Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 13, 2007 at 06:43 PM Author Report Share #147182 Posted November 13, 2007 at 06:43 PM entao praticamente o For faz o mesmo que o While mas de outra forma? ? e nao... nao percebi o exemplo mais complexo :nono1: :dontgetit: ? :fartnew2: Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 13, 2007 at 07:06 PM Report Share #147191 Posted November 13, 2007 at 07:06 PM Bom, adicionei comentários, tenta agora. Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 13, 2007 at 07:16 PM Author Report Share #147195 Posted November 13, 2007 at 07:16 PM hmm ja está mais perceptivel.. nao percebi isto: position_i += 1000 'se nenhum id foi encontrado na busca adiciono 1000 para acabar rápidamente com o loop porque é que hás-de adicionar 1000? e porque é que isso acaba logo com o loop? ? Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 13, 2007 at 07:38 PM Report Share #147203 Posted November 13, 2007 at 07:38 PM O source tem cerca de 500000 caracteres, o Instr() guarda a posição da tua busca, se o id que eu kero não está na busca e a posição_f está uns 10000 caracteres abaixo, ao adicionar 1000 à posição_i vou fazer com k este avance mais rapido até ao acontecimento posição_i < posição_f Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 13, 2007 at 07:41 PM Author Report Share #147208 Posted November 13, 2007 at 07:41 PM ah... ok 😞 o problema é que eu depois para utilizar isto em programas, nem me lembro como se faz, nem da utilidade nem de nada disso ? Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 13, 2007 at 07:49 PM Report Share #147217 Posted November 13, 2007 at 07:49 PM mas, eu posso-te arranjar os sources. 😞 Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 13, 2007 at 09:42 PM Author Report Share #147236 Posted November 13, 2007 at 09:42 PM que sources? :dontgetit: Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 13, 2007 at 11:21 PM Report Share #147257 Posted November 13, 2007 at 11:21 PM :| ok, talvez noutra lingua, isso eh um projecto, queres o projecto pra testar? Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 14, 2007 at 02:40 PM Author Report Share #147325 Posted November 14, 2007 at 02:40 PM ya sff Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 15, 2007 at 08:40 PM Report Share #147612 Posted November 15, 2007 at 08:40 PM Aqui está... Nota, pra testares isso precisas de criar uma conta no site e de ter peixes pra vender... http://buahaha.no.sapo.pt/Fish%20Seller.rar *editado* De uma vez k não gosto muito de comentar o meu código (podes-me chamar um picasso de programação se quiseres) qualquer duvida que tenhas posta aí o código que eu ajudo-te a decifrar. Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 15, 2007 at 09:30 PM Author Report Share #147633 Posted November 15, 2007 at 09:30 PM isto é suposto ser um bot para o jogo, pelo que percebi, certo? Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 15, 2007 at 11:31 PM Report Share #147690 Posted November 15, 2007 at 11:31 PM Exacto... É suposto não, é mesmo 😄 Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Ivo Pereira Posted November 15, 2007 at 11:45 PM Author Report Share #147697 Posted November 15, 2007 at 11:45 PM explica-me exactamente o que faz sff 😄 Link to comment Share on other sites More sharing options...
Cybernavigator Posted November 15, 2007 at 11:58 PM Report Share #147701 Posted November 15, 2007 at 11:58 PM Alright, primeiro o jogo eh bastante lame, mas tou a curtir fazer bots pra ele pk ajuda a perceber um bocado de interacção com erb no vb.net. Dito isto prossigo: há um jogo no site k é uma pesca, e há bots pra pescar sozinho, e é bastante irritante pescar e vender o peixe manualmente. Então o k fiz no código foi defenir os id's do peixe lá do site, e automáticamente os vender. O programa tem também mais funções, como gravar a password e a conta, parte de login, mexer na form, e adicionar imagens automáticamente. 😉 Tens alguma dúvida mais concreta em relacção a alguma parte do código? É só postares. (btw, se tiveres duvidas na parte do wrapper eskece, não percebo essa parte tbm 😄 , mas gostava) Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico*** Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now