none
Ajuda com Lógica RRS feed

  • Pergunta

  • Galera, não to sabendo uma lógica  pra fazer uma coisa.

    seguinte eu tenho txtcep

    Eu preciso que quando a pessoa digite um CEP na txtcep entre 01002-020 a 09912-900, apareça na txtseção "São Paulo";

    Eu pensei em fazer um if pra ver se o usuário digitou um numero entre esses dois informados, se sim txtsecão preenche com São Paulo, se não preenche com outra coisa ou deixa a caixa seção vazia. 

    Mas não sei como comparar dois CEPs (lembrando que to usando uma maskedbox pra preencher CEP) então tenho que transformar essa maskedbox em integer.

    Alguém pode me ajudar com essa lógica?
    Agradecido desde já.


    • Editado Marcos SJ sexta-feira, 7 de agosto de 2015 17:52 Ortografia
    sexta-feira, 7 de agosto de 2015 17:04

Respostas

  • Desculpe estou muito apertado com meu projeto, vou ficar te devendo. Como você é iniciante e eu também sou rs, vou te dar duas dicas:

    Dica 1 : Não perca muito tempo com coisas simples, isto que você esta querendo fazer é legal, mas as vezes o tempo que você vai gastar para desenvolver isto acaba não valendo tanto a pena. Falo isso porque no começo eu ficava muito tempo em pequenos detalhes assim, por um lado foi bom porque aprendi muito, mas por outro acabei atrasando demais para entregar o software para o cliente.

    Dica 2: Agora sobre o que esta tentando fazer, lembre que você ainda vai ter que fazer uns tratamentos de erros, por exemplo, e se o usuário não digitar o cep inteiro, vai dar erro no seu código (talvez se verificar o tamanho com length antes com um if para tratar isso primeiro de certo). Outra coisa seria deixar o (txtseção.Enable = false) após o cliente digitar um cep dentro do intervalo, senão vc teria feito tudo isto em vão.

    abs e bons códigos

    • Marcado como Resposta Marcos SJ sexta-feira, 7 de agosto de 2015 20:02
    sexta-feira, 7 de agosto de 2015 18:27

Todas as Respostas

  • Acho q esta tranquilo, utilize o evento textchanged ou textleave no textbox CEP

    depois vai ter que utilizar um sbstring para separar o a primeira parte do CEP da segunda

    Substring(Posição Inicial,Qtde de caracteres)

    string cep = txtcep.Text;
    
    string cep1 = cep.substring(6,3); //Resultado 3 ultimos digitos
    
    string cep2 = cep.substring(0,5);// Resultado 5 digitos iniciais
    
    int intcep1 = ConvertToint32(cep1);
    int intcep2 = ConvertToint32(cep2);
    
    //Faça um for para cada e veja se esta dento do 
    //intervalo, se os dois retornarem sim altere para "SP"

    Material muito bom para pesquisar sobre como tratar strings

    https://www.codigofonte.net/dicas/csharp/317_manipulando-strings-no-c




    sexta-feira, 7 de agosto de 2015 17:53
  • vou testar, mas vc poderia fazer o for pra eu ver como ficaria?
    sou iniciante c#
    sexta-feira, 7 de agosto de 2015 18:01
  • Você pode usar a seguinte logica.

    Converter o cep informado em um inteiro e fazer a comparação se ele esta entre os ceps 01002-020 e 099120-900

    int cepDigitado = Convert.ToInt32(txtcep.Text.Replace("-",""));
    
    if(cepDigitado>= 01002020 && cepDigitado <=09912900)
    {
    	MessageBox.Show("SP");
    }
    else
    {
    	MessageBox.Show("NÃO É SP");
    }

    sexta-feira, 7 de agosto de 2015 18:16
  • Desculpe estou muito apertado com meu projeto, vou ficar te devendo. Como você é iniciante e eu também sou rs, vou te dar duas dicas:

    Dica 1 : Não perca muito tempo com coisas simples, isto que você esta querendo fazer é legal, mas as vezes o tempo que você vai gastar para desenvolver isto acaba não valendo tanto a pena. Falo isso porque no começo eu ficava muito tempo em pequenos detalhes assim, por um lado foi bom porque aprendi muito, mas por outro acabei atrasando demais para entregar o software para o cliente.

    Dica 2: Agora sobre o que esta tentando fazer, lembre que você ainda vai ter que fazer uns tratamentos de erros, por exemplo, e se o usuário não digitar o cep inteiro, vai dar erro no seu código (talvez se verificar o tamanho com length antes com um if para tratar isso primeiro de certo). Outra coisa seria deixar o (txtseção.Enable = false) após o cliente digitar um cep dentro do intervalo, senão vc teria feito tudo isto em vão.

    abs e bons códigos

    • Marcado como Resposta Marcos SJ sexta-feira, 7 de agosto de 2015 20:02
    sexta-feira, 7 de agosto de 2015 18:27
  • Desculpe estou muito apertado com meu projeto, vou ficar te devendo. Como você é iniciante e eu também sou rs, vou te dar duas dicas:

    Dica 1 : Não perca muito tempo com coisas simples, isto que você esta querendo fazer é legal, mas as vezes o tempo que você vai gastar para desenvolver isto acaba não valendo tanto a pena. Falo isso porque no começo eu ficava muito tempo em pequenos detalhes assim, por um lado foi bom porque aprendi muito, mas por outro acabei atrasando demais para entregar o software para o cliente.

    Dica 2: Agora sobre o que esta tentando fazer, lembre que você ainda vai ter que fazer uns tratamentos de erros, por exemplo, e se o usuário não digitar o cep inteiro, vai dar erro no seu código (talvez se verificar o tamanho com length antes com um if para tratar isso primeiro de certo). Outra coisa seria deixar o (txtseção.Enable = false) após o cliente digitar um cep dentro do intervalo, senão vc teria feito tudo isto em vão.

    abs e bons códigos

    obrigado pelas dicas

    eu preciso desse código porque minha chefe exigiu no programa que estou fazendo para empresa.

    agradecido

    sexta-feira, 7 de agosto de 2015 20:07
  • Você pode usar a seguinte logica.

    Converter o cep informado em um inteiro e fazer a comparação se ele esta entre os ceps 01002-020 e 099120-900

    int cepDigitado = Convert.ToInt32(txtcep.Text.Replace("-",""));
    
    if(cepDigitado>= 01002020 && cepDigitado <=09912900)
    {
    	MessageBox.Show("SP");
    }
    else
    {
    	MessageBox.Show("NÃO É SP");
    }

    testei seu código e creio que funciono do jeito que eu queria gustavo, mt obrigado.
    sexta-feira, 7 de agosto de 2015 20:07