public ListViewColumnSorter() { ColumnToSort = 0; OrderOfSort = SortOrder.None; ObjectCompare = new CaseInsensitiveComparer(); ElTipo = TipoComparacion.STRING; }
public void SetTipoComparacion(TipoComparacion Tipo) { ElTipo = Tipo; }
/// <summary> /// Método encargado de realizar una operacion según el tipo especificado. /// </summary> public string RealizarOperacion(string rutaFicheroA, string rutaFicheroB, string rutaSalida, TipoComparacion tipoComparacion) { string retorno; // Validacion ruta textbox tres. char caracter = (char)92; while (true) { if (rutaSalida.StartsWith(caracter.ToString())) { rutaSalida = rutaSalida.Remove(0, 1); } else { break; } } // Ordenamos utilizando como criterio de ordenamiento toda la línea. ArchivoHelper.Ordenar(rutaFicheroA, rutaFicheroA, x => x, encodingPrimerArchivo, encodingArchivoSalida); ArchivoHelper.Ordenar(rutaFicheroB, rutaFicheroB, x => x, encodingSegundoArchivo, encodingArchivoSalida); // Obtenemos los nombres de los archivos para asignar un nombre coherente al archivo de salida. var nombreFicheroB = ProcesoComparador.ObtenerNombreSinEspacios(rutaFicheroB); var nombreFicheroA = ProcesoComparador.ObtenerNombreSinEspacios(rutaFicheroA); // Formateamos la salida del archivo. if (!File.Exists(rutaSalida)) { if (Directory.Exists(rutaSalida)) { rutaSalida = rutaSalida + $"\\{nombreFicheroA}_comp_{nombreFicheroB}.txt"; } else { using (File.Create(rutaSalida)) { } } } using (StreamWriter escritorSalida = new StreamWriter(rutaSalida, true, encodingArchivoSalida)) using (StreamReader lectorB = new StreamReader(rutaFicheroB, encodingSegundoArchivo)) using (StreamReader lectorA = new StreamReader(rutaFicheroA, encodingPrimerArchivo)) { switch (tipoComparacion) { case TipoComparacion.Diferencia: retorno = DiferenciaEntre(escritorSalida, lectorA, lectorB); break; case TipoComparacion.XOR: retorno = XorEntre(escritorSalida, lectorA, lectorB); break; case TipoComparacion.AND: retorno = AndEntre(escritorSalida, lectorA, lectorB); break; default: return(null); } } ArchivoHelper.Ordenar(rutaSalida, rutaSalida, x => x, encodingArchivoSalida, encodingArchivoSalida); return(retorno); }