コード例 #1
0
        public bool cargaUsuarios(string direccion, Binario <Persona> arbol_usuarios)//codigo basico para leer un archivo
        {
            bool         todo_bien;
            StreamReader archivo = new StreamReader(direccion);
            string       entrada = "";

            string[] split;
            Persona  actual;

            try
            {
                if (archivo.Peek() > -1)
                {
                    entrada = archivo.ReadLine();//me como la primera linea porque por lo visto es una cabezera
                }
                while (archivo.Peek() > -1)
                {
                    entrada = archivo.ReadLine();
                    if (!string.IsNullOrEmpty(entrada))
                    {
                        split  = entrada.Split(',');
                        actual = new Persona(split[1], split[2], split[3]);
                        //actual.setConectado(split[3]);
                        arbol_usuarios.insertar(actual, split[0]);
                    }
                }
                todo_bien = true;
            }
            catch (Exception e)
            {
                todo_bien = false;
            }
            archivo.Close();
            return(todo_bien);
        }
コード例 #2
0
        public static bool graficarArbolBinario(Binario <Persona> mi_arbol, string ruta_destino, string nombre_dot, string nombre_png)
        {
            string path_principal = string.Format(@"{0}Dots\", AppDomain.CurrentDomain.BaseDirectory);//path donde se instale el coso
            string ruta_dot       = Path.Combine(path_principal, nombre_dot);
            string ruta_png       = Path.Combine(ruta_destino, nombre_png);

            limpiarFiles(ruta_dot, ruta_png);
            bool bandera;

            if (guardarDot(codigoArbol(mi_arbol), nombre_dot))//1.guardamos el codigo
            {
                string comando;
                comando = "dot " + "-Tpng \"" + ruta_dot + "\" -o \"" + ruta_png + "\"";
                if (llamarCMD(comando))
                {
                    bandera = true;
                }
                else
                {
                    bandera = false;
                }
            }
            else
            {
                bandera = false;
            }
            return(bandera);
        }
コード例 #3
0
        /// <summary>
        /// Guarda en un archivo binario un turno
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnGuardarBinario_Click(object sender, EventArgs e)
        {
            try
            {
                var auxTurno    = (Turnos)lstBoxTurnosTerminados.SelectedItem;
                var auxPaciente = PacientesDAO.TraerPorId(auxTurno.IdPaciente);
                if (auxPaciente is null)
                {
                    auxPaciente = Paciente.BuscarPacienteEnListaXmlPorId(AgregarTurnoForm.ListaPacientesXml, auxTurno.IdPaciente);
                }

                Binario binarioTurno = new Binario();
                binarioTurno.Ruta = String.Format("{0}\\SegundoParcialUtn\\TurnosClinica\\{1}-{2}-{3}.bin", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), auxPaciente.Apellido, auxPaciente.Nombre, auxTurno.FechaTurno.ToString("MMMM dd"));
                bool success = binarioTurno.Guardar(auxTurno);
                if (!success)
                {
                    MessageBox.Show("No se pudo binarizar el turno");
                }
            }
            catch (Exception ex)
            {
                Texto error = new Texto();
                error.Guardar($"{ex.Message} - Metodo: btnGuardarBinario_Click()");
            }
        }
コード例 #4
0
        private static string codigoArbol(Binario <Persona> mi_arbol)//funcion para generar el codigo del arbol binario de busqueda
        {
            string         salida = "digraph g{\n";
            Nodo <Persona> aux    = mi_arbol.raiz;

            salida += codigoNodos(aux);
            salida += "}";
            return(salida);
        }
コード例 #5
0
        public void ValidarBinario()
        {
            Paciente           paciente        = new Paciente(1, "Joe", "Morello", 7, "masculino", "Avellaneda 123", Cobertura.CoberturaCompleta);
            Binario <Paciente> pacienteBinario = new Binario <Paciente>();
            string             archivo         = "SerilizarBinario.Paciente";
            string             ruta            = (Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + ".\\SegundoParcialUtn\\ArchivosClinica\\");

            Assert.IsTrue(pacienteBinario.Escribir(archivo, ruta, paciente));
        }
コード例 #6
0
        public void TestDeserializarTurnoEnBinario()
        {
            //arrange
            Turnos  auxTurno   = new Turnos();
            Binario auxBinario = new Binario();

            //act
            auxBinario.Ruta = String.Format("{0}\\SegundoParcialUtn\\TurnosClinica\\TurnoBinarioTest.bin", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
            auxTurno        = auxBinario.Leer();
            //assert
            Assert.AreEqual(1, auxTurno.IdTurno);
        }
コード例 #7
0
        public void TestSerializarTurnoEnBinario()
        {
            //arrange
            Turnos  auxTurno   = new Turnos(1, 2, 3, "Prueba", DateTime.Now);
            Binario auxBinario = new Binario();

            //act
            auxBinario.Ruta = String.Format("{0}\\SegundoParcialUtn\\TurnosClinica\\TurnoBinarioTest.bin", Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
            bool success = auxBinario.Guardar(auxTurno);

            //assert
            Assert.IsTrue(success);
        }
コード例 #8
0
        private void Converte(object sender, RoutedEventArgs e)
        {
            //da binario a decimale


            if (Binario.Text == "" && Decimale.Text == "")
            {
                MessageBox.Show("Devi inserire un valore in una delle due caselle di testo!");
            }

            else if ((Binario.Text != "" && Decimale.Text == "") || focusBin)
            {
                int decimale = 0;

                for (int i = Binario.Text.Length - 1; i >= 0; i--)
                {
                    //la stringa in C# può essere gestita anche come array di caratteri
                    if (Binario.Text[i] == '1')
                    {
                        decimale = decimale + (int)Math.Pow(2, i); //ho fatto il casting perchè Math.pow() restituisce un double
                    }
                }
                Decimale.Text = decimale.ToString();
                Decimale.Focus();
            }

            //Fine da binario a decimale

            //da decimale a binario
            else if ((Binario.Text == "" && Decimale.Text != "") || focusDec)
            {
                Binario.Text = "";
                for (int i = Convert.ToInt32(Decimale.Text); i >= 1; i = i / 2)
                {
                    Binario.Text += (i % 2).ToString();
                }
                String s = Binario.Text;
                Binario.Text = "";
                for (int i = s.Length - 1; i >= 0; i--)
                {
                    Binario.Text = Binario.Text + s[i];
                }
                //fine da decimale a binario
                Binario.Focus();
            }

            /*var b = (Button)sender;
             * b.IsEnabled = false;*/
        }
コード例 #9
0
        public bool cargaJuegos(string direccion, ref Binario <Persona> arbol_usuarios)
        {
            bool         todo_bien;
            StreamReader archivo = new StreamReader(direccion);
            string       entrada = "";

            string[] split;
            Juego    actual;

            try
            {
                if (archivo.Peek() > -1)
                {
                    entrada = archivo.ReadLine();//me como la primera linea porque por lo visto es una cabezera
                }
                Nodos.Nodo <Persona> aux;
                while (archivo.Peek() > -1)
                {
                    entrada = archivo.ReadLine();
                    if (!string.IsNullOrEmpty(entrada))
                    {
                        split = entrada.Split(',');
                        aux   = arbol_usuarios.buscar(split[0]);
                        if (aux != null)
                        {
                            actual = new Juego(split[0], split[1], int.Parse(split[2]), int.Parse(split[3]), int.Parse(split[4]), split[5]);
                            aux.Item.juegos.pushTop(actual);
                            //arbol_usuarios.modificar(aux.Item, aux.Key);//nuevo
                        }

                        //actual.setConectado(split[3]);
                        //arbol_usuarios.insertar(actual, split[0]);
                    }
                }
                todo_bien = true;
            }
            catch (Exception e)
            {
                todo_bien = false;
            }
            archivo.Close();
            return(todo_bien);
        }
コード例 #10
0
ファイル: Class1.cs プロジェクト: areyram/cursos
 public static void Test()
 {
     Binario suma = (a, b) => a + b;
     var     x    = suma(10, 20);
 }
コード例 #11
0
 public IProcessadorDeBinario Obter(Binario binario)
 {
     PopulaSeNecessario();
     return(processadoresBinario[binario]);
 }
コード例 #12
0
        static void Main(string[] args)
        {
            //Xml<Item> archivosXml = new Xml<Item>();
            //Texto archivosTexto = new Texto();
            IArchivo <Item>   archivosXml     = new Xml <Item>();
            IArchivo <string> archivosTexto   = new Texto();
            IArchivo <Item>   archivosBinario = new Binario <Item>();

            string rutaArchivoXml = AppDomain.CurrentDomain.BaseDirectory + "xmlfile.xml";

            if (archivosXml.Guardar(rutaArchivoXml, new Item("Olga", 32, 1.5f)))
            {
                Console.WriteLine("El archivo XML se guardó con éxito");
            }
            else
            {
                Console.WriteLine("El archivo XML NO se guardó");
            }

            string rutaArchivoTexto = AppDomain.CurrentDomain.BaseDirectory + "txtfile.txt";

            if (archivosTexto.Guardar(rutaArchivoTexto, new Item("Olga", 32, 1.5f).ToString()))
            {
                Console.WriteLine("El archivo de texto se guardó con éxito");
            }
            else
            {
                Console.WriteLine("El archivo de texto NO se guardó");
            }

            string rutaArchivoBinario = AppDomain.CurrentDomain.BaseDirectory + "data.bin";

            if (archivosBinario.Guardar(rutaArchivoBinario, new Item("María", 23, 1.2f)))
            {
                Console.WriteLine("El archivo de binario se guardó con éxito");
            }
            else
            {
                Console.WriteLine("El archivo de binario NO se guardó");
            }

            Console.ReadKey();
            Console.Clear();

            Item item;

            Console.WriteLine("XML:");
            if (archivosXml.Leer(rutaArchivoXml, out item))
            {
                Console.WriteLine(item.ToString());
            }
            else
            {
                Console.WriteLine("El archivo XML NO se leyó");
            }

            Console.WriteLine("<==========================================>");
            Console.WriteLine("TXT:");
            string contenido;

            if (archivosTexto.Leer(rutaArchivoTexto, out contenido))
            {
                Console.WriteLine(contenido);
            }
            else
            {
                Console.WriteLine("El archivo de texto NO se leyó");
            }

            Console.WriteLine("<==========================================>");
            Console.WriteLine("BINARIO:");
            if (archivosBinario.Leer(rutaArchivoBinario, out item))
            {
                Console.WriteLine(item.ToString());
            }
            else
            {
                Console.WriteLine("El archivo de binario NO se leyó");
            }

            Console.ReadKey();
        }
コード例 #13
0
        public void Descomprimir(string RutaOriginal, string RutaDestino)
        {
            byte[] SizeMetaData = new byte[4];
            byte[] Metadata;
            byte[] LengthByte = new byte[4];
            int    PosVector  = 0;
            int    Posicion   = 0;

            ArchivoDestino   = new FileStream(RutaDestino, FileMode.OpenOrCreate);
            ArchivoOriginal  = new FileStream(RutaOriginal, FileMode.Open);
            using var reader = new BinaryReader(ArchivoOriginal);
            var buffer = new byte[500];
            Dictionary <string, int> DicByte    = new Dictionary <string, int>();
            Dictionary <int, string> DicValores = new Dictionary <int, string>();

            //Obtener Cantidad de Datos para la tabla
            ArchivoOriginal.Seek(0, SeekOrigin.Begin);
            ArchivoOriginal.Read(SizeMetaData, 0, 4);
            int Size  = BitConverter.ToInt32(SizeMetaData, 0);
            int Total = Size / 4;

            Metadata = new byte[Size];
            //Tamaño del bit comprimido
            ArchivoOriginal.Seek(4, SeekOrigin.Begin);
            ArchivoOriginal.Read(LengthByte, 0, 2);
            int AutoCompletar = BitConverter.ToInt32(LengthByte, 0);

            // Realizar tabla
            ArchivoOriginal.Seek(8, SeekOrigin.Begin);
            ArchivoOriginal.Read(Metadata, 0, Size);
            string Variables = "";
            string Binario;

            foreach (var Item in Metadata)
            {
                Binario    = Convert.ToString(Item, 2).PadLeft(8, '0');
                Variables += Convert.ToChar(Item) + ",";
                if (!DicByte.ContainsKey(Binario))
                {
                    DicByte.Add(Binario, ++Posicion);
                    DicValores.Add(Posicion, Binario);
                }
            }
            string AuxTexto = "";

            Binario = "";
            int    PosicionArchivo = 0;
            int    CodigoAnterior  = 0;
            int    CodigoNuevo     = 0;
            string CadenaActual    = "";
            string Caracter        = "";
            string TextoWrite      = "";
            bool   PrimeraPos      = true;

            while (ArchivoOriginal.Position < ArchivoOriginal.Length)
            {
                buffer = reader.ReadBytes(500);
                foreach (var Item in buffer)
                {
                    Binario += Convert.ToString(Item, 2).PadLeft(8, '0');
                    byte[] BufferW = new byte[500];
                    while (Binario.Length >= AutoCompletar)
                    {
                        AuxTexto = Binario.Substring(0, AutoCompletar);
                        Binario  = Binario.Substring(AutoCompletar);
                        if (!PrimeraPos)
                        {
                            CodigoNuevo = Convert.ToInt32(AuxTexto, 2);
                            if (!DicValores.ContainsKey(CodigoNuevo))
                            {
                                CadenaActual  = DicValores[CodigoAnterior];
                                CadenaActual += Caracter;
                            }
                            else
                            {
                                CadenaActual = DicValores[CodigoNuevo];
                            }
                            int Limite = CadenaActual.Length / 8;
                            TextoWrite = CadenaActual;
                            for (int i = 0; i < Limite; i++)
                            {
                                string VecByte = TextoWrite.Substring(0, 8);
                                TextoWrite           = TextoWrite.Substring(8);
                                BufferW[PosVector++] = Convert.ToByte(VecByte, 2);
                                PosicionArchivo++;
                            }
                            Caracter = CadenaActual.Substring(0, 8);
                            DicByte.Add(DicValores[CodigoAnterior] + Caracter, ++Posicion);
                            DicValores.Add(Posicion, DicValores[CodigoAnterior] + Caracter);
                            CodigoAnterior = CodigoNuevo;
                        }
                        else
                        {
                            CodigoAnterior       = Convert.ToInt32(AuxTexto, 2);
                            Caracter             = DicValores[CodigoAnterior];
                            BufferW[PosVector++] = Convert.ToByte(Caracter, 2);
                            PosicionArchivo++;
                            PrimeraPos = false;
                        }
                        ArchivoDestino.Write(BufferW, 0, PosVector);
                        ArchivoDestino.Flush();
                        PosVector = 0;
                    }
                }
            }
            ArchivoDestino.Close();
        }