예제 #1
0
        public Documentos(string Ruta)
        {
            TotalDocumentos = 0;
            if (File.Exists(Ruta))
            {
                string Aux;
                fichero = File.OpenText(Ruta);
                do
                {
                    Aux = fichero.ReadLine();
                    if (Aux != null)
                    {
                        if (Aux[0] == '.' && Aux[1] == 'I')
                        {
                            TotalDocumentos++;
                        }
                    }
                } while (Aux != null);

                Docs = new string[TotalDocumentos, 5];
                fichero.BaseStream.Seek(0, SeekOrigin.Begin);

                int i = 0, j = 0;
                Aux = fichero.ReadToEnd();

                string[] palabras = Aux.Split(new Char[] { 'A', 'T', 'I', 'B', 'W' });//Divide una cadena en subcadenas basadas en los caracteres de una matriz.

                foreach (string p in palabras)
                {
                    string palabra = p.Replace(".", "");
                    if (palabra.Trim() != "." && palabra.Trim() != "")//Trim() Quita todos los caracteres de espacio en blanco del principio y el final del objeto String actual.
                    {
                        Docs[j, i] = palabra;
                        i++;
                        if (i == 5)
                        {
                            j++;
                            i = 0;
                        }
                    }
                }

                fichero.Close();
                Cargado = true;
            }
            else
            {
                Cargado = false;
            }
        }
예제 #2
0
        public Indice(int Docs, string Ruta)
        {
            if (File.Exists(Ruta))
            {
                string Aux;
                fichero        = File.OpenText(Ruta);
                Aux            = fichero.ReadToEnd();
                PalabrasIndice = LimpiarPalabras(Aux, StopWords.Palabras);

                DocsIndice = new int[PalabrasIndice.Length, Docs];
                string[] palabras = Aux.Split(new Char[] { (char)13, (char)10, ' ', ',', '.', ':', '\t', '\"', '/', '-', 'A', 'T', 'I', 'B', 'W' });//Divide una cadena en subcadenas basadas en los caracteres de una matriz.
                bool     stopW    = false;
                int      j        = -1;
                foreach (string palabra in palabras)
                {
                    if (palabra.Trim() != "")//Trim() Quita todos los caracteres de espacio en blanco del principio y el final del objeto String actual.
                    {
                        stopW = Comparar(palabra, StopWords.Palabras);
                        if (stopW == false)//si las palabras de Stopword no es igual a la palabra del Indice, ingresa a este scope
                        {
                            if (palabra == Convert.ToString(j + 2))
                            {
                                j++;
                            }
                            for (int k = 0; k < PalabrasIndice.Length; k++)
                            {
                                if (palabra == PalabrasIndice[k])
                                {
                                    DocsIndice[k, j]++;
                                }
                            }
                        }
                        else
                        {
                            stopW = false;
                        }
                    }
                }
            }
        }
        //
        //FORMATO
        //[0]= Fecha [1]=Hora [2]=ID Proyector
        //Boton para ingresar
        private void btnIngresar_Click(object sender, EventArgs e)
        {
            //Auxiliar para mandar mensaje de aviso que se agrego correctamente
            int Auxiliar = 0;

            if (ListaApartados.Count == 0)
            {
                // Mensaje  de error, indicando conflicto, sugiriendo seleccionar un dispositivo
                MessageBox.Show("Selecciona un dispositivo", "Conflicto", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //
                //RESTRICCION DE APARTADO
                //
                //1.Revisar que
                string AuxAntiguo  = "";
                bool   Advertencia = false;
                ListaApartados.Sort();

                //Bucle para recorrer elementos de lista de apartados
                foreach (var owo in ListaApartados)
                {
                    string[] separado = owo.Split('/');
                    if (AuxAntiguo == "")
                    {
                        AuxAntiguo = separado[1];
                    }
                    else
                    {
                        if ((Convert.ToInt32(AuxAntiguo) + 1) == Convert.ToInt32(separado[1]))
                        {
                            Advertencia = true;
                        }
                    }
                }

                // si advertencia es falso iniciara un bucle foreach
                if (Advertencia == false)
                {
                    foreach (var Aux in ListaApartados)
                    {
                        string[] separado = Aux.Split('/');
                        Conexion Conex    = new Conexion();
                        Conex.Conexiones.Open();

                        //Conversion a Hora Inicial
                        TimeSpan AuxHoraInicial = TimeSpan.FromHours(Convert.ToDouble(separado[1]));
                        AuxHoraInicial.ToString("hh':'mm':'ss");

                        //Conversion a Hora Final
                        TimeSpan AuxHoraFinal = TimeSpan.FromHours(Convert.ToDouble(separado[1]) + 1);
                        AuxHoraFinal.ToString("hh':'mm':'ss");

                        //Condicion para confirmar que no este apartado esta fecha
                        string AuxCadena;
                        if (LocalTipo == "Laboratorio")
                        {
                            // Seleccion de la tabla Prestamo_Lab  cuando la hora y fecha y ID sean las definidas.
                            AuxCadena = "select * from Prestamo_Lab where Hora_Entrada='" + AuxHoraInicial.ToString("hh':'mm':'ss") + "' and Fecha='" + separado[0] + "' and ID_Lap=" + separado[2];
                        }
                        else
                        {
                            // Seleccion de la tabla Prestamo_Proyectores  cuando la hora y fecha y ID sean las definidas.
                            AuxCadena = "select * from Prestamo_Proyectores where Hora_Entrada='" + AuxHoraInicial.ToString("hh':'mm':'ss") + "' and Fecha='" + separado[0] + "' and ID_Proyector=" + separado[2];
                        }

                        // Se crea una instancia SqlCommand pasando el string con el comando SQL y la referencia a la conexión
                        SqlCommand cmd = new SqlCommand(AuxCadena, Conex.Conexiones);
                        // Recuperacion de los datos generados
                        SqlDataAdapter dr = new SqlDataAdapter(cmd);
                        DataTable      dt = new DataTable();
                        dr.Fill(dt);
                        // Se cierra la conexion de la base de datos
                        Conex.Conexiones.Close();
                        if (dt.Rows.Count > 0)
                        {
                            // Mensaje de error que indica que el proyector se encuentra ya se encuentra apartado, mostrando la hora y fel proyector marcando conflicto
                            MessageBox.Show("Esta hora ya se encuentra apartada.\r\nFavor de escoger otra hora. \r\n[Conflicto => Hora:" + AuxHoraInicial.ToString("hh':'mm':'ss") + " Proyector: " + separado[2], "Conflicto", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            break;
                        }
                        else
                        {
                            Auxiliar = 1;
                            // Abrir conexion con la base de datos
                            Conex.Conexiones.Open();
                            string Cadena;
                            // En caso de elegir Local tipo laboratorio
                            if (LocalTipo == "Laboratorio")
                            {
                                // Cadeba donde se insertan los valores en la tabla Prestamo_Lab
                                Cadena = "insert into Prestamo_Lab values (" + LocalNumUsuario + "," + separado[2] + ",'" + separado[0] + "','" + AuxHoraInicial.ToString("hh':'mm':'ss") + "','" + AuxHoraFinal.ToString("hh':'mm':'ss") + "','" + GeneradorCodigo() + "')";
                            }
                            else
                            {
                                // Cadeba donde se insertan los valores en la tabla Prestamo_Proyectores
                                Cadena = "insert into Prestamo_Proyectores values (" + LocalNumUsuario + "," + separado[2] + ",'" + separado[0] + "','" + AuxHoraInicial.ToString("hh':'mm':'ss") + "','" + AuxHoraFinal.ToString("hh':'mm':'ss") + "','" + GeneradorCodigo() + "')";
                            }

                            // Se crea una instancia SqlCommand pasando el string con el comando SQL y la referencia a la conexión
                            cmd = new SqlCommand(Cadena, Conex.Conexiones);
                            //Llamamos ExecuteNonQuery para enviar comandos
                            cmd.ExecuteNonQuery();
                            // Se cierra la conexion de la base de datos
                            Conex.Conexiones.Close();
                        }
                    }
                    if (Auxiliar == 1)
                    {
                        // Mensaje que confirma que se ha llevado con exito el apartado del proyector
                        MessageBox.Show("Se han apartado los proyectores correctamente.", "Listo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();
                    }
                }
                else
                {
                    // Mensaje en caso de error, indicando conflicto y sugerirendo no pedir el mismo proyector 2 horas seguidas
                    MessageBox.Show("Recuerda que no puedes pedir el mismo proyector dos horas seguidas.\r\nFavor de escoger otra proyector.", "Conflicto", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }