Jump to content
Sign in to follow this  
Sergio990

Parar e retomar um For sem ser do zero

Recommended Posts

Sergio990

Boas, eu tenho uma duvida

eu tenho um for em que eu ao clicar num botao ele deveria de correr o for e ir parando do tipo:

dr2.Read();
            byte a =1;
            uint ipMin =  Convert.ToUInt32(IpStringToIpBits(dr2["gamaIp"].ToString()));
            string gamaIp= dr2["gamaIp"].ToString();
            uint ipMax = IpStringToIpBits(iprange(gamaIp));

            for (uint i = ipMin+a; i < ipMax; i++)
                {
                    string ip = IpBitsToString(Convert.ToUInt32(i));
                    SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["cadastramentoGlobalConnectionString"].ConnectionString);
                    SqlCommand ip2 = new SqlCommand();
                    ip2.CommandText = ("SELECT ip From IP where ip='" + ip + "' and idVlan='" +idVlan(DDL_idVlanIP.SelectedItem.Text)+ "'");
                    ip2.Connection = con;
                
                    con.Open();
                    SqlDataReader dr = ip2.ExecuteReader();
                    if (!dr.Read())
                    {
                        txt_ip.Text = ip;
                        i = IpStringToIpBits(txt_ip.Text);
                        BREAK;
                    }
                    
                 
                    con.Close();
                    //
                }
            
            

            }

Onde eu tenho o Break eu queria que ele parasse o for para eu poder inserir na pagina o ip.

So que ele ao parar o for depois quando clico no botao para ver novamente os ips disponiveis ele vai sempre começar o for do inicio dando i = ipMin+a; o que eu nao queria queria que ele continua-se com o ip que estava ja seleccionado

alguem sabe como?

Com os melhores cumprimentos,

Sérgio Rodrigues

Share this post


Link to post
Share on other sites
M6

Tens de guardar o estado para quando retomares o for arrancares apenas do local onde estavas.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
M6

Podes tão simplesmente guardar o valor da variável do ciclo para que da próxima vez ele comece a partir desse valor.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Sergio990

So que eu queria que ele entrasse a 1º vez no for com a variavel:  uint ipMin

E depois quando entrasse no for e fizesse break guarda-se: uintMin = IpStringToIpBits(txt_ip.Text);

So que ele ao fazer isso depois sai do for e quando chamo o for ele entra sempre em:  uint ipMin =  Convert.ToUInt32(IpStringToIpBits(dr2["gamaIp"].ToString()));

E coloca sempre esse valor no uintMin --'

Desculpa a burrice (A)

Share this post


Link to post
Share on other sites
M6

É por isso que tens de guardar o estado.

Quando entras da segunda vez não podes arrancar com os mesmos valores mas sim com o valor onde paraste antes.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
iniciante

Fazer um if antes do for para "escolheres" a variavel com que queres entrar no for nao resolvia? =s


RC

Share this post


Link to post
Share on other sites
M6

Sim.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Sergio990

boas

Eu arranjei uma solução ,mas para fazer como quero, tenho que saber o ip anterior a este:3238002687(isto é um ip passado para bits),como faço para saber o ip anterior em bits?

obrigado

Share this post


Link to post
Share on other sites
M6

Calculas o valor como fazes para esse e de novo guardas esse valor para usar na próxima iteração.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
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
Sign in to follow this  

×
×
  • 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.