public void AgregandoNuevasCombinaciones() { var Palabra = ""; var TextoCompartir = ""; var i = 0; var numero = TablaCaracteres.Count; bool FinLinea = false; foreach (var item in ListaTexto) { while (i < item.Length) { if (TablaCaracteres.ContainsKey(item[i].ToString()) == true) { Palabra = item[i].ToString(); while (TablaCaracteres.ContainsKey(Palabra) == true && (FinLinea == false)) { i++; if (i < item.Length) { Palabra += item[i]; } else { FinLinea = true; //Almacena la posicion del ultimo caracter de la linea leida TextoCompartir += TablaCaracteres[item[i - 1].ToString()]; } } if (TablaCaracteres.ContainsKey(Palabra) == false) { numero++; TablaCaracteres.Add(Palabra, numero); //Almacena la posicion del caracter o cadena, que si se encuentra en el diccionario, para comprimir TextoCompartir += TablaCaracteres[Palabra.TrimEnd(item[i])].ToString() + ","; } } } FinLinea = false; i = 0; } TextoComprimir = TextoCompartir; }
public void mostrarLetrasVeces(string nombreOficinaTabla) { /*Contiene la lógica revisar y contrar las letras y las veces que se repite*/ // colocar en minuscula. (Para evitar que compare una S y s como diferentes. nombreOficinaTabla = nombreOficinaTabla.ToLower(); // Elimino los caracteres repetidos usando linq Distinct(). string nombreOficinaTablaDistinct = new string(nombreOficinaTabla.Trim().ToCharArray().Distinct().ToArray()); // eliminar los espacios y colocar en minuscula. nombreOficinaTablaDistinct = nombreOficinaTablaDistinct.Trim().Replace(" ", "").ToLower(); tablaOficina.Rows.Clear(); tablaOficina.Caption = ""; // obtener la longitud de la cadena sin caractres repetidos int l = nombreOficinaTablaDistinct.Length; //Crear array de TablaCaracteres para guardar las letras y las veces que aparece repetida. TablaCaracteres[] tablaCaracteres = new TablaCaracteres[l]; int countCaract = 0; for (int i = 0; i < l; i++) { string letra = nombreOficinaTablaDistinct.Substring(i, 1); //contar veces que aparece la letra en el string long veces = nombreOficinaTabla.LongCount(sletra => sletra.ToString() == letra); tablaCaracteres[countCaract] = new TablaCaracteres(); tablaCaracteres[countCaract].letra = letra; tablaCaracteres[countCaract].veces = veces.ToString(); //tablaOficina.Caption = tablaOficina.Caption + ", " + tablaCaracteres[countCaract].letra + "=" + tablaCaracteres[countCaract].veces.ToString(); countCaract++; } tabla(tablaCaracteres); }
public void ObtenerCaracteresBase() { var i = 0; var num = 1; foreach (var item in ListaTexto) { while (i < item.Length) { if (TablaCaracteres.ContainsKey(item[i].ToString()) == false) { TablaCaracteres.Add(item[i].ToString(), num); num++; } i++; } i = 0; } }
public void MostrarCaracteres(string nombreOficinaTabla) { nombreOficinaTabla = nombreOficinaTabla.ToLower(); string nombreOficinaTablaDistinct = new string(nombreOficinaTabla.Trim().ToCharArray().Distinct().ToArray()); nombreOficinaTablaDistinct = nombreOficinaTablaDistinct.Trim().Replace(" ", "").ToLower(); tablaOficina.Rows.Clear(); tablaOficina.Caption = ""; int l = nombreOficinaTablaDistinct.Length; TablaCaracteres[] tablaCaractes = new TablaCaracteres[l]; int countCaracteres = 0; for (int i = 0; i < l; i++) { string letra = nombreOficinaTablaDistinct.Substring(i, 1); long veces = nombreOficinaTabla.LongCount(sletra => sletra.ToString() == letra); tablaCaractes[countCaracteres] = new TablaCaracteres(); tablaCaractes[countCaracteres].letra = letra; tablaCaractes[countCaracteres].veces = veces.ToString(); countCaracteres++; } }