コード例 #1
0
        /// <summary>
        /// Este metodo inserta en una lista de contactos los que saca del archivo info.txt.txt
        /// </summary>
        public void LeerContactos()
        {
            int      counter = 0;
            string   line;
            Contacto contacto;

            string nombre   = "";
            int    edad     = 0;
            string nif      = "";
            string ruta     = "ControlesUsuario.Assets.Info.txt.txt";
            var    assembly = typeof(MainPage).GetTypeInfo().Assembly;
            Stream stream   = assembly.GetManifestResourceStream(ruta);


            //Leer el fichero y mostrarlo línea a línea.
            System.IO.StreamReader fichero = new System.IO.StreamReader(stream);

            /*Bucle encargado de leer el fichero, ir almacenando los valores correspondientes
             * a nombre, edad y nif e ir almacenándolos en un nuevo contacto.*/
            while ((line = fichero.ReadLine()) != null)
            {
                counter++;

                switch (counter)
                {
                case 1:
                    nombre = line;
                    break;

                case 2:
                    int.TryParse(line, out edad);
                    break;

                case 3:
                    nif      = line;
                    contacto = new Contacto(nombre, edad, nif);
                    contactos.Add(contacto);
                    counter = 0;
                    break;
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Metodo que comprueba si el nombre del contacto tiene alguna coincidencia con el filtro de busqueda.
        /// </summary>
        /// <param name="contacto">El contacto a analizar.</param>
        /// <param name="filtro">La cadena que queremos usar como filtro. Puede estar vacia. En ese caso, devolveremos siempre true.</param>
        /// <returns> Devuelve true si se ha encontrado coincidencia, devuelve false si no la encuentra.</returns>
        public Boolean comprobarNombre(Contacto contacto, string filtro)
        {
            Boolean ok  = false;
            Regex   rgx = new Regex("%", RegexOptions.IgnoreCase);

            matches = rgx.Matches(filtro);

            /// Primero tenemos que controlar que en el filtro no hemos introducido mas de un %.
            if (matches.Count > 1)
            {
                inputControl(EntryBuscarPorNombre, "No puede indicar más de un % en una busqueda.");
            }
            else
            {
                /// Si no se ha escrito nada en el patron de busqueda, o solo se ha escrito %...
                if (filtro.Trim().Equals("") || filtro.Trim().Equals("%"))
                {
                    if (EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length == 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), true);
                    }
                    else if (EntryEdadMinima.Text.Trim().Length == 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMaxima.Text.Trim(), false);
                    }
                    else if (EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), EntryEdadMaxima.Text.Trim());
                    }
                    else
                    {
                        ok = true;
                    }
                }
                /// Si el ultimo caracter es %...
                else if (filtro.Substring(filtro.Length - 1).Equals("%"))
                {
                    /// Quitamos el caracter % para poder usarlo como patron de busqueda.
                    filtro  = filtro.Replace("%", "");
                    rgx     = new Regex(String.Format("^" + filtro + ".*"), RegexOptions.IgnoreCase);
                    matches = rgx.Matches(contacto.Nombre);
                    /// Si encuentra alguna coincidencia, devolvemos true siempre y cuando la edad tambien coincida.
                    if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length == 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), true);
                    }
                    else if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length == 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMaxima.Text.Trim(), false);
                    }
                    else if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), EntryEdadMaxima.Text.Trim());
                    }
                    else if (matches.Count > 0)
                    {
                        ok = true;
                    }
                }
                /// Si en el patron de busqueda no hemos puesto como ultimo caracter un %...
                else
                {
                    rgx     = new Regex("^" + filtro + "$", RegexOptions.IgnoreCase);
                    matches = rgx.Matches(contacto.Nombre);
                    /// Si encuentra alguna coincidencia, devolvemos true siempre y cuando la edad tambien coincida.
                    if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length == 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), true);
                    }
                    else if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length == 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMaxima.Text.Trim(), false);
                    }
                    else if (matches.Count > 0 && EntryEdadMinima.Text.Trim().Length > 0 && EntryEdadMaxima.Text.Trim().Length > 0)
                    {
                        ok = comprobarEdad(contacto, EntryEdadMinima.Text.Trim(), EntryEdadMaxima.Text.Trim());
                    }
                    else if (matches.Count > 0)
                    {
                        ok = true;
                    }
                }
            }

            return(ok);
        }