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"); } } } }
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(); }