none
Eliminar prefijo numero y letras RRS feed

  • Pregunta

  • buen día a todos !!!

    había realizado una aplicación de escritorio donde escaneaban un numero de lote el cual contenía un prefijo "A", yo estaba usando la función Trim para quitarlo, pero ahora el prefijo cambio a 15K, como podría modificar mi código para omitir este prefijo.

    private void txtNumRan_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == Convert.ToChar(Keys.Return))
                {
                    this.txtNumRan.Text = this.txtNumRan.Text.Trim('A', 'a'); 
    
                    if (this.consultarRan(this.txtNumRan.Text) == true)
                    {
                        int numeroFilas = DGVRanes.Rows.Count;
                        if (numeroFilas == 0)
                        {
                            agregaDatosRan();
                            this.inicializa();
                        }
                        else
                        {
                            bool existe = false;
                            string numLote = txtNumLote.Text;
                            string numRan = txtNumRan.Text;
    
                            for (int i = 0; i < numeroFilas; i++)
                            {
                                string numLoteRow = DGVRanes.Rows[i].Cells[0].Value.ToString();
                                string numRanRow = DGVRanes.Rows[i].Cells[6].Value.ToString();
    
                                if (numLote.Equals(numLoteRow))
                                {
                                    existe = true;
                                }
                                if (numRan.Equals(numRanRow))
                                {
                                    existe = true;
                                    break;
                                }
                            }
                            if (existe)
                            {
                                this.muestraMensaje(Color.Red, "El numero de lote o el numero de ran ya fueron agregados a la lista");
                                this.txtNumRan.BackColor = Color.Red;
                            }
                            else
                            {
                                this.agregaDatosRan();
                                this.inicializa();
    
                            }
                        }
                    }
                }
            }

    Saludos !!


    miércoles, 20 de marzo de 2019 16:18

Todas las respuestas

  • No veo que esa parte del código estés tratando el inicio de la cadena ni buscando el carácter "A". Puede que esa parte la tengas en la función consultarRan o en otra parte.

    Saludos, Javier J

    • Propuesto como respuesta Carlos_Ruiz_M jueves, 21 de marzo de 2019 16:05
    miércoles, 20 de marzo de 2019 18:22
  • Creo que tu problema esta en las lineas de codigos

    if(numLote.Equals(numLoteRow))
    if(numRan.Equals(numRanRow))

    porque el Equals te devuelve true cuando lo que buscas es exactamente lo mismo, o sea, que si buscas 15K te devuelve true, pero si la entrada es 15k te devuelve false....deberías probar 

    if(numLote.Contains(15K))
    if(numRan.Contains(15K))

    o


    if(numLote.Exist(t=>t=="15K"))
    if(numRan.Exist(t=>t=="15k"))

    esto es para si sabes expresiones regulares...mas rápido aun

    saludos y me dices luego



    • Editado NelsonGarcia miércoles, 20 de marzo de 2019 18:40
    • Propuesto como respuesta Carlos_Ruiz_M jueves, 21 de marzo de 2019 16:05
    miércoles, 20 de marzo de 2019 18:27
  • hola

    si quires obtener solo la parte numerica podrias hacerlo con expresiones regulares

     Extraer valor númerico de un string

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Carlos_Ruiz_M jueves, 21 de marzo de 2019 16:05
    miércoles, 20 de marzo de 2019 19:21