Jump to content

[VB.Net] While, Until, Loop, etc


Ivo Pereira

Recommended Posts

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

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

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.