예제 #1
0
        public void Leermemoria()
        {
            string       archivoDB = "../../db.json";
            StreamReader reader    = new StreamReader(archivoDB);
            var          dbJSON    = reader.ReadToEnd();
            var          dbObject  = JObject.Parse(dbJSON);

            // Prueba de lectura de archivo db.json
            //var result = dbObject.ToString();
            //var result = dbObject["arreglo"].ToString();
            //var result = dbObject["arreglo"][0].ToString();
            // Lectura de json iterable
            foreach (var item in dbObject)
            {
                // Iteración individual de cada grupo de datos del objeto json.
                Console.WriteLine("Dato en memoria:");
                MemoriaData memoriaData = new MemoriaData(DateTime.Now, item.Value["operacion"].ToString(), (int)item.Value["resultado"]);
                Console.WriteLine(item.Value.ToString());
            }
        }
예제 #2
0
        public int GetMemoriaData(String key)
        {
            // Encontrar el dato deseado con indice manual en el parseo del json.
            int index = int.Parse(key);
            // Opción Nativa:  para buscar de manera nativa en nuestro List db. Con el indice autogenerado.
            // En tres lineas de código encontramos y reutilizamos el valor que se busca.
            MemoriaData data = db[index];

            // Opción para buscar por medio de indice manual:
            // MemoriaData data = db.Find(item => item.key == index); // Damos un indice para que lo busque y al encontrarlo nos regresa el objeto deseado.
            // Encontrar el dato deseado por la fecha. Accedemos al json nuevamente y buscamos por fecha.
            // Ya que esta operación no asigna nuevos indices, respeta la estructura acutal.
            // string archivoDB = "../../../db.json";
            // StreamReader reader = new StreamReader(archivoDB);
            // var dbJSON = reader.ReadToEnd();
            // JObject dbObject = JObject.Parse(dbJSON);
            // JToken data = (dbObject as JObject)[key];
            // return (int)data["resultado"];
            return(data.resultado);
        }
예제 #3
0
        public void GuardarMemoria(MemoriaData data)
        {
            db.Add(data);
            int i = 0;

            db.ForEach((MemoriaData memoriaData) =>
            {
                Console.WriteLine("Dato en memoria: ({0})", i);
                Console.BackgroundColor = ConsoleColor.Green;
                Console.WriteLine("{0} - {1}", memoriaData.fecha.ToLongDateString(),
                                  memoriaData.fecha.ToLongTimeString());
                Console.ResetColor();
                Console.WriteLine("Operación: {0}", memoriaData.operacion);
                Console.WriteLine("Resultado: {0}", memoriaData.resultado.ToString());
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("----------------- \n");
                Console.ForegroundColor = ConsoleColor.White;
                i++;
            });
            string json      = JsonConvert.SerializeObject(db.ToArray(), Formatting.Indented);
            string archivoDB = "../../../db.json";

            File.WriteAllText(archivoDB, json);
        }
예제 #4
0
        static void Main(string[] args)

        {
            Memoria memoria = new Memoria();
            bool    cerrar  = true;
            //Variables

            int    resultado  = 0;
            int    resultado1 = 0;
            int    resultado2 = 0;
            int    cantidad1  = 0;
            int    cantidad2  = 0;
            string continuar2 = "";
            string opcion     = "";


            while (cerrar)
            {
                Console.WriteLine("Escriba la opcion de operacion que guste realizar:");

                Console.WriteLine("(+) Sumar");
                Console.WriteLine("(-) Restar");
                Console.WriteLine("(*) Multiplicar");
                Console.WriteLine("(/) Dividir");
                Console.WriteLine("(m) Memoria");
                Console.WriteLine("(mr) Borrar Memoria");
                Console.WriteLine("(e) Para salir \n");
                opcion = Console.ReadLine();


                Console.WriteLine("Ingrese la primera cantidad");
                cantidad1 = int.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese la segunda cantidad");
                cantidad2 = int.Parse(Console.ReadLine());


                switch (opcion)
                {
                case "+":
                    Console.WriteLine("El resultado de la suma es:");
                    resultado = cantidad1 + cantidad2;
                    Console.WriteLine("resultado {0} + {1} = {2}", cantidad1, cantidad2, resultado);
                    Console.WriteLine("¿Desea utilizar el resultado para otra operacion? si/no");
                    continuar2 = Console.ReadLine();
                    /*_ = continuar2 == "si";*/
                    Console.WriteLine("El resultado anterior es:" + resultado + "\n");
                    Console.WriteLine("Agregue un nuevo dato para sumar");
                    resultado1 = int.Parse(Console.ReadLine());
                    resultado2 = resultado + resultado1;
                    Console.WriteLine("El resultado es:" + resultado2 + "\n");
                    String      o    = cantidad1 + "+" + cantidad2;
                    MemoriaData data = new MemoriaData(DateTime.Now.ToString(), o, resultado.ToString());
                    memoria.GuardarMemoria(data);
                    resultado = 0;
                    break;

                case "-":
                    Console.WriteLine("El resultado de la resta es:");
                    resultado = cantidad1 - cantidad2;
                    Console.WriteLine("{0} - {1} = {2}", cantidad1, cantidad2, resultado);
                    Console.WriteLine("¿Desea utilizar el resultado para otra operacion? si/no");
                    continuar2 = Console.ReadLine();
                    _          = continuar2 == "si";
                    Console.WriteLine("El resultado anterior es:" + resultado + "\n");
                    Console.WriteLine("Agregue un nuevo dato para restar");
                    resultado1 = int.Parse(Console.ReadLine());
                    resultado2 = resultado - resultado1;
                    Console.WriteLine("El resultado es:" + resultado2 + "\n");
                    break;

                case "*":
                    Console.WriteLine("El resultado de la suma es:");
                    resultado = cantidad1 * cantidad2;
                    Console.WriteLine("{0} * {1} = {2}", cantidad1, cantidad2, resultado);
                    Console.WriteLine("¿Desea utilizar el resultado para otra operacion? si/no");
                    continuar2 = Console.ReadLine();
                    _          = continuar2 == "si";
                    Console.WriteLine("El resultado anterior es:" + resultado + "\n");
                    Console.WriteLine("Agregue un nuevo dato para sumar");
                    resultado1 = int.Parse(Console.ReadLine());
                    resultado2 = resultado * resultado1;
                    Console.WriteLine("El resultado es:" + resultado2 + "\n");
                    break;

                case "/":
                    Console.WriteLine("El resultado de la suma es:");
                    resultado = cantidad1 / cantidad2;
                    Console.WriteLine("{0} / {1} = {2}", cantidad1, cantidad2, resultado);
                    Console.WriteLine("¿Desea utilizar el resultado para otra operacion? si/no");
                    continuar2 = Console.ReadLine();
                    _          = continuar2 == "si";
                    Console.WriteLine("El resultado anterior es:" + resultado + "\n");
                    Console.WriteLine("Agregue un nuevo dato para sumar");
                    resultado1 = int.Parse(Console.ReadLine());
                    resultado2 = resultado / resultado1;
                    Console.WriteLine("El resultado es:" + resultado2 + "\n");
                    break;


                case "m":
                    Console.WriteLine("Accediendo a Memoria \n");
                    Console.WriteLine("-----------------\n");
                    memoria.multidimensional();
                    String key = Console.ReadLine();
                    //Console.WriteLine(data.ToString());
                    // Elegir la opcion de resultado en nuestra memoria
                    // y reutilizarla en alguna operación.
                    // 1. Crear metodo que nos regrese el resultado seleccionado.
                    resultado = memoria.GetMemoriaData(key);
                    // 2. Utilizar el resultado en una nueva operación.
                    Console.WriteLine(resultado);
                    // 3. Guardar la nueva operación en nuestra db.json.
                    // memoria.GuardarMemoria();
                    break;

                case "mr":
                    Console.WriteLine("Memoria Temporal Reiniciada! \n");
                    resultado = 0;
                    break;

                case "e":
                    Console.WriteLine("--------------------\n");
                    Console.WriteLine("Cerrando Calculadora\n");
                    cerrar = false;
                    break;

                default:
                    Console.WriteLine("Opción desconocida: {0}, intenta de nuevo \n", opcion);
                    break;
                }
            }
        }