Beispiel #1
0
        public String codificar(string linea, List<Valor> valores)
        {
            String enviado = "";
            int i, j, total, tam;
            Valor valor = new Valor();
            for (i = 0; i < linea.Length; i++)
            {
                for (j = 0; j < valores.Count; j++)
                {
                    valor = valores[j];
                    if (linea[i].Equals(valor.nombre) == true)
                    {
                        enviado = enviado + valor.codigo + " ";
                    }
                }
            }
            String enviado2;
            enviado2 = enviado.Replace(" ", String.Empty);
            tam = (enviado2.Length)/5;
            total = linea.Length;

            if (tam == total)
            {
                return enviado;
            }
            return enviado;
        }
Beispiel #2
0
 public String enviar(string linea, List<Valor> valores, Double alfa)
 {
     String recibido = "";
     int i, j;
     Random rand = new Random();
     Valor valor = new Valor();
     for (i = 0; i < linea.Length; i++)
     {
         for (j = 0; j < valores.Count; j++)
         {
             valor = valores[j];
             if (linea[i].Equals(valor.nombre) == true)
             {
                 recibido = recibido + valor.codigo + " ";
             }
         }
     }
     char x0 = '0', x1 = '1';
     for (i = 0; i < recibido.Length; i++)
     {
         if (recibido[i] == '1' || recibido[i] == '0')
         {
             if (alfa > rand.NextDouble())
             {
                 if (recibido[i] == '1')
                 {
                     StringBuilder sb = new StringBuilder(recibido);
                     sb[i] = x0;
                     recibido = sb.ToString();
                 }
                 else
                 {
                     StringBuilder sb = new StringBuilder(recibido);
                     sb[i] = x1;
                     recibido = sb.ToString();
                 }
             }
         }
     }
     return recibido;
 }
Beispiel #3
0
        public List<Valor> llenarvector(string linea)
        {
            int i, j, tam, aux, cont, validar = 0;
            List<Valor> valores = new List<Valor>();//Lista de valores
            List<String> codigos = new List<String>();//Lista del codigo

            //Inicializamos el codigo
            codigos.Add("11111");
            codigos.Add("11110");
            codigos.Add("11101");
            codigos.Add("11100");
            codigos.Add("11011");
            codigos.Add("11010");
            codigos.Add("11001");
            codigos.Add("11000");
            codigos.Add("10111");
            codigos.Add("10110");
            codigos.Add("10101");
            codigos.Add("10100");
            codigos.Add("10011");
            codigos.Add("10010");
            codigos.Add("10001");
            codigos.Add("10000");
            codigos.Add("01111");
            codigos.Add("01110");
            codigos.Add("01101");
            codigos.Add("01100");
            codigos.Add("01011");
            codigos.Add("01010");
            codigos.Add("01001");
            codigos.Add("01000");
            codigos.Add("00111");
            codigos.Add("00110");
            codigos.Add("00101");
            codigos.Add("00100");
            codigos.Add("00011");
            codigos.Add("00010");
            codigos.Add("00001");
            codigos.Add("00000");

            //Calcular los valores
            for (i = 0; i < linea.Length; i++)
            {
                //El primero se mete porque no hay datos aun
                if (valores.Count == 0)
                {
                    validar = validar + 1;
                    Valor valor = new Valor();
                    valor.nombre = linea[i];
                    valor.codigo = codigos[0];
                    codigos.Remove(valor.codigo);
                    cont = 0;
                    for (j = 0; j < valor.codigo.Length; j++)
                    {
                        if (valor.codigo[j].Equals('1') == true)
                        {
                            cont = cont + 1;
                        }

                    }
                    if (cont % 2 == 0)
                    {
                        valor.control = '0';
                    }
                    else
                    {
                        valor.control = '1';
                    }
                    valores.Add(valor);
                    if (validar == 32)
                    {
                        MessageBox.Show("Error! Supera el tamaño.");
                        return valores;
                    }
                }
                else
                {
                    //Se valida por medio de una bandera si el dato ya esta
                    tam = valores.Count;
                    aux = 0;
                    for (j = 0; j < tam; j++)
                    {
                        if (valores[j].nombre.Equals(linea[i]) == true)
                        {
                            aux = 1;
                            break;
                        }
                    }
                    //Si no esta el dato entra
                    if (aux == 0)
                    {
                        validar = validar + 1;
                        Valor valor = new Valor();
                        valor.nombre = linea[i];
                        valor.codigo = codigos[0];
                        codigos.Remove(valor.codigo);
                        cont = 0;
                        for (j = 0; j < valor.codigo.Length; j++)
                        {
                            if (valor.codigo[j].Equals('1') == true)
                            {
                                cont = cont + 1;
                            }

                        }
                        if (cont % 2 == 0)
                        {
                            valor.control = '0';
                        }
                        else
                        {
                            valor.control = '1';
                        }
                        valores.Add(valor);
                        if (validar == 32)
                        {
                            MessageBox.Show("Error! Supera el tamaño.");
                            return valores;
                        }
                    }
                }
            }

            return valores;
        }