예제 #1
0
        public void detectarDominio(bool cargar)//carga dominio o crea uno nuevo
        {
            string[] filePath = ruta.Split('\\', '.');
            string   fileName = "Dominio_" + filePath[filePath.Length - 2] + ".bin";

            if (File.Exists(fileName) && cargar)
            {
                using (Stream SP = File.Open(fileName, FileMode.Open))
                {
                    var formatter = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                    dominios = (Dominios)formatter.Deserialize(SP);
                    SP.Close();
                }
            }
            else
            {
                dominios = new Dominios();
                for (int i = 0; i < dataGridView.ColumnCount; i++)
                {
                    List <string> aux     = new List <string>();
                    string        dominio = "";
                    for (int j = 0; j < dataGridView.RowCount; j++)
                    {
                        if (dataGridView[i, j].Value == null)
                        {
                            dataGridView[i, j].Value = "?";
                        }
                        if (dataGridView[i, j].Value.ToString() != "?")
                        {
                            if (!aux.Contains(dataGridView[i, j].Value.ToString()))
                            {
                                aux.Add(dataGridView[i, j].Value.ToString());
                                if (j > 0)
                                {
                                    dominio += ",";
                                }
                                dominio += dataGridView[i, j].Value.ToString();
                            }
                        }
                    }
                    if (tipoColumna[i] != "Numérico")
                    {
                        dominios.Add(dominio);
                    }
                    else
                    {
                        dominios.Add("Numeric");
                    }
                }
            }
        }
예제 #2
0
        private void abrirArchivoData(string ruta)
        {
            string[] lineas = File.ReadAllLines(ruta);


            double numeroInstancias = 0;

            bool obtuvoInformacion = false;
            bool obtuvoAtributos   = false;

            string aux;

            foreach (var linea in lineas)
            {
                if (!obtuvoInformacion)
                {
                    //Buscamos la información del dataset dentro del string
                    aux = linea[0].ToString() + linea[1].ToString();

                    if (aux == "%%")
                    {
                        string valor = "";
                        for (int i = 2; i < linea.Length; i++)
                        {
                            valor += linea[i];
                        }

                        informacionDataSet += valor;
                    }
                    else
                    {
                        obtuvoInformacion = true;
                    }
                }

                if (obtuvoInformacion && !obtuvoAtributos)
                {
                    //Buscamos la información de los atributos

                    if (linea.Contains("@relation"))
                    {
                        //Es la especificación de la relación
                        string[] auxRelacion = linea.Split(' ');
                        relacion = auxRelacion[1];
                    }
                    else if (linea.Contains("@attribute"))
                    {
                        string cadena = "";

                        for (int i = 11; i < linea.Length; i++)
                        {
                            cadena += linea[i];
                        }

                        string[] cadenaSplit = cadena.Split(' ');

                        dataGridView.Columns.Add(cadenaSplit[0], cadenaSplit[0]);
                        tipoColumna.Add(cadenaSplit[1]);
                        dominios.Add(cadenaSplit[2]);
                    }
                    else if (linea.Contains("@missingValue"))
                    {
                        //Ver que hacer con los valores perdidos
                        string[] auxMissinValue = linea.Split(' ');
                        caracterValorFaltante = auxMissinValue[1][0];
                    }
                    else
                    {
                        obtuvoAtributos = true;
                    }
                }
                else if (obtuvoAtributos && obtuvoInformacion)
                {
                    //Si ya encontró la información del dataset y de los atributos

                    if (!linea.Contains("@data"))
                    {
                        string[] fila = linea.Split(',');

                        dataGridView.Rows.Add(fila);
                        numeroInstancias++;
                    }
                }
            }

            InstanciasLabel.Text = numeroInstancias.ToString();
            //ColorearRows();
        }