none
Ler caracter por caracter RRS feed

  • Pergunta

  • Boa tarde..

    Galera, to com um probleminha e conto com a ajuda de vcs, eu to enviando uma string paramentro para o meu "negócio" 

    if(NG_funcoes.validaCPF(Scgc))
    {
        //fazer algo
    }

    aqui esta a funcao no "negocio" que recebe o parametro

    public static bool validaCPF(string cgc)
            {           
                cgc = cgc.Replace(" ", "");
                cgc = cgc.Replace(".", "");
                cgc = cgc.Replace("-", "");
    
                int DF1 = 0, DF2 = 0, DF3 = 0, DF4 = 0, DF5 = 0, DF6 = 0, RESTO1 = 0, RESTO2 = 0, PRIDIG = 0, SEGDIG = 0;
                int[] D1 = new int[10];
    
                D1[0] = Convert.ToInt32(cgc[0]);
                D1[1] = Convert.ToInt32(cgc[1]);
                D1[2] = Convert.ToInt32(cgc[2]);
                D1[3] = Convert.ToInt32(cgc[3]);
                D1[4] = Convert.ToInt32(cgc[4]);
                D1[5] = Convert.ToInt32(cgc[5]);
                D1[6] = Convert.ToInt32(cgc[6]);
                D1[7] = Convert.ToInt32(cgc[7]);
                D1[8] = Convert.ToInt32(cgc[8]);
                D1[9] = Convert.ToInt32(cgc[9]);
                D1[10] = Convert.ToInt32(cgc[10]);

    Minha questão eh o seguinte, preciso ler caracter por caracter daquela minha string cgc, so que da maneira que eu fiz, ele esta atribuindo todo o valor cgc para o D1.

    O que estou fazendo errado ou existe outra maneira? Obrigado



    • Editado Vinih GF quarta-feira, 10 de junho de 2015 19:55
    • Editado Marcos SJ quinta-feira, 4 de fevereiro de 2016 16:59 Edição
    quarta-feira, 10 de junho de 2015 16:53

Respostas

  • Segue:

     public static bool validaCPF(string cgc)
            {
                cgc = cgc.Replace(" ", "");
                cgc = cgc.Replace(".", "");
                cgc = cgc.Replace("-", "");
    
                int DF1 = 0, DF2 = 0, DF3 = 0, DF4 = 0, DF5 = 0, DF6 = 0, RESTO1 = 0, RESTO2 = 0, PRIDIG = 0, SEGDIG = 0;
                int[] D1 = new int[10];
                char[] c = cgc.ToCharArray();
    
                D1[0] = Convert.ToInt32(c[0].ToString());
                D1[1] = Convert.ToInt32(c[1].ToString());
                D1[2] = Convert.ToInt32(c[2].ToString());
                D1[3] = Convert.ToInt32(c[3].ToString());
                D1[4] = Convert.ToInt32(c[4].ToString());
                D1[5] = Convert.ToInt32(c[5].ToString());
                D1[6] = Convert.ToInt32(c[6].ToString());
                D1[7] = Convert.ToInt32(c[7].ToString());
                D1[8] = Convert.ToInt32(c[8].ToString());
                D1[9] = Convert.ToInt32(c[9].ToString());
                D1[10] = Convert.ToInt32(c[10].ToString());


    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 10 de junho de 2015 17:54

Todas as Respostas

  • Segue:

     public static bool validaCPF(string cgc)
            {
                cgc = cgc.Replace(" ", "");
                cgc = cgc.Replace(".", "");
                cgc = cgc.Replace("-", "");
    
                int DF1 = 0, DF2 = 0, DF3 = 0, DF4 = 0, DF5 = 0, DF6 = 0, RESTO1 = 0, RESTO2 = 0, PRIDIG = 0, SEGDIG = 0;
                int[] D1 = new int[10];
                char[] c = cgc.ToCharArray();
    
                D1[0] = Convert.ToInt32(c[0].ToString());
                D1[1] = Convert.ToInt32(c[1].ToString());
                D1[2] = Convert.ToInt32(c[2].ToString());
                D1[3] = Convert.ToInt32(c[3].ToString());
                D1[4] = Convert.ToInt32(c[4].ToString());
                D1[5] = Convert.ToInt32(c[5].ToString());
                D1[6] = Convert.ToInt32(c[6].ToString());
                D1[7] = Convert.ToInt32(c[7].ToString());
                D1[8] = Convert.ToInt32(c[8].ToString());
                D1[9] = Convert.ToInt32(c[9].ToString());
                D1[10] = Convert.ToInt32(c[10].ToString());


    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 10 de junho de 2015 17:54
  • Valeeeeu, resolveu... abraço
    quarta-feira, 10 de junho de 2015 19:39
  • Dá pra fazer em uma unica linha (usando o Linq)

    int[] digits = Regex.Replace(cpf, "[^0-9]", "").Select(x => (int)Char.GetNumericValue(x)).ToArray();
    


    isso elimina a necessidade de fazer o replace

      cgc = cgc.Replace(" ", "");
                cgc = cgc.Replace(".", "");
                cgc = cgc.Replace("-", "");
    

    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    quarta-feira, 10 de junho de 2015 19:57
    Moderador