Beispiel #1
0
        public static void Prueba_Cola()
        {
            int? dato = 0;
            Cola cola = new Cola();

            cola.Encolar(10);
            cola.Encolar(20);
            dato = cola.Desencolar();                 //10
            Console.WriteLine($"Desencolado:{dato}"); //10
            dato = cola.Desencolar();                 //20
            Console.WriteLine($"Desencolado:{dato}"); //20

            Console.WriteLine($"y en la cola quedo:");
            cola.Mostrar();
        }
Beispiel #2
0
 private void desencolar()
 {
     ColaEspera.Desencolar();
     total--;
     primero.Image = segundo.Image;
     segundo.Image = tercero.Image;
     tercero.Image = cuarto.Image;
     cuarto.Image  = null;
     // ColaEspera.Mostrar();
 }
Beispiel #3
0
        /// <summary>
        /// Toma todas las colas y listas de la edición, y conforme el indiceEdicion, va editando el PDF
        /// de lo que contengan las colas y listas
        /// Algoritmo:
        ///		Cada una de los objeto alojados en las colas y listas, tiene un índice
        ///		ese indice va incrementando segun se vaya editado el PDF en general,
        ///		A la larga puede que los indices queden así:
        ///		-> Texto {1,4,8,9}
        ///		-> Imagen {2,3,5}
        ///		-> Tabla {6,7}
        ///		El ciclo for que contiene el metodo va recorriendo el indice de cada objeto alojado
        ///		en las listas/colas y las va agregando al PDF, en el orden en el que fue editado originalmente el PDF
        ///		a través de comandos
        ///		Conforme se vayan agregando las colas/listas, estas se van vaciando
        /// </summary>
        /// <param name="url"></param>
        /// <param name="indiceEdicion"></param>
        /// <param name="Textos"></param>
        /// <param name="Imagenes"></param>
        /// <param name="Tablas"></param>
        /// <param name="Filas"></param>
        /// <returns>Respuesta del sistema</returns>
        public String GenerarPDF(String url, int indiceEdicion, Cola Textos, Cola Imagenes, Cola Tablas, ListaSimple Filas)
        {
            //Se guardará la respuesta del sistema
            String respuesta = "";
            //Aquí se guardarán las intancias que ayudaran en la creación del PDF
            Document   doc    = null;
            FileStream fs     = null;
            PdfWriter  writer = null;

            //Edita el PDF en un entorno a prueba de idiotas :v
            try
            {
                //Crea el documento pdf (lo instancia)
                doc = new Document(PageSize.A4, 30f, 30f, 30f, 30f);
                //Prepara el documento para su escritura
                fs = new FileStream(url + "\\" + nombre + ".pdf", FileMode.Create, FileAccess.Write, FileShare.None);
                //Determina la localización del PDF dentro de
                writer = PdfWriter.GetInstance(doc, fs);
                if (!Textos.EsVacia() || !Imagenes.EsVacia() || !Tablas.EsVacia())
                {
                    //Abre el documento para editarlo
                    doc.Open();
                }
                for (int i = 1; i <= indiceEdicion; i++)
                {
                    //Verifica si la cola está vacía
                    if (!Textos.EsVacia())
                    {
                        //Castea a Texto
                        Texto text = (Texto)Textos.ShutearPrimero();
                        //Verifica que el indice guardado coincida con la <i>
                        if (text.indice == i)
                        {
                            //Agrega texto al PDF
                            doc.Add(text.texto);
                            //Elimna información de la lista
                            Textos.Desencolar();
                        }
                    }
                    //Verifica si la cola está vacía
                    if (!Imagenes.EsVacia())
                    {
                        //Esta instancia ayudara a agregar imagenes si las hubiera
                        iTextSharp.text.Image jpg;
                        //Caste a Imagen
                        Imagen image = (Imagen)Imagenes.ShutearPrimero();
                        //Verifica que el indice guardado coincida con la <i>
                        if (image.indice == i)
                        {
                            //Aloja la referencia guardada
                            jpg = image.imagen;
                            //Encaja la imagen en el documento
                            jpg.ScaleToFit(400f, 300f);
                            //Deja un espacio antes y despues de la imagen
                            jpg.SpacingBefore = 12f;
                            jpg.SpacingAfter  = 12f;
                            //Establece al alineacion
                            jpg.Alignment = image.alineacion;
                            //Agrega la imagen al PDF
                            doc.Add(jpg);
                            //Elimina infomación de la cola
                            Imagenes.Desencolar();
                        }
                    }
                    //Verifica si la cola está vacía
                    if (!Tablas.EsVacia())
                    {
                        //Esta instancia ayudara a agrega tablas si las hubiera
                        iTextSharp.text.pdf.PdfPTable pTable;
                        //Catea a Tabla
                        Tabla table = (Tabla)Tablas.ShutearPrimero();
                        //Verifica que el indice guardado coincida con la <i>
                        if (table.indice == i)
                        {
                            //Aloja la referencia guardada
                            pTable = new PdfPTable(1)
                            {
                                //Alinea la tabla
                                HorizontalAlignment = Element.ALIGN_CENTER,
                                //Espacio antes y despues
                                SpacingBefore = 12f,
                                SpacingAfter  = 12f
                            };
                            //Añade el encabezado
                            PdfPCell encabezado = new PdfPCell(new Phrase(table.encabezado))
                            {
                                Colspan             = 1,                            //Indica cuantas columna se combinan
                                HorizontalAlignment = 1                             //Indica la alineación de la tabla
                            };
                            //Añade el encabezado a la tabla
                            pTable.AddCell(encabezado);
                            //Busca en la lista de Filas todas las filas relacionadas
                            for (int j = 0; j < Filas.GetLargo(); j++)
                            {
                                //Busca una Fila (desde adelante hasta atrás) que tenga el nombre de la Tabla
                                Fila auxRow = Filas.BuscarFila(table.nombre);
                                //Verifica que auxRow no sea nulo
                                if (Filas.Buscar(auxRow))
                                {
                                    //Agrega la Fila almacenada en Filas que se relacionen con la tabla en cuestión :v
                                    pTable.AddCell(auxRow.textoplano);
                                    //Elimina la Fila de la Lista
                                    Filas.Remover(auxRow);
                                }
                            }
                            //Añade la tabla al documento
                            doc.Add(pTable);
                            //Elimina información de la Cola
                            Tablas.Desencolar();
                        }
                    }
                }
            }
            catch (Exception ex)            //Ocurre un error
            {
                respuesta += "La escritura de archivo PDF se detuvo. Posible pérdida de datos " + ex.Message;
            }
            finally
            {
                try
                {
                    //Si la instancia doc no es nula intentará cerrarla
                    if (doc != null)
                    {
                        doc.Close();
                        respuesta += "Archivo PDF creado con éxito. Absolute Path -> " + url + "\\" + nombre + ".pdf";
                    }
                }
                catch (Exception ex2)
                {
                    //Ocurre un error al cerrar
                    respuesta += Environment.NewLine + "No se pudo cerrar la escritura de PDF. " + ex2.Message;
                }
            }
            return(respuesta);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            Pila     pila = new Pila();
            Cola     cola = new Cola();
            Opciones op   = new Opciones();//Constructor de la clase Opciones


            Console.Write("\t\t\t\tTAREA TDA COLA TDA PILA");
            Console.WriteLine("\n\t\tIngrese el numero correspondiente al tipo de TDA con el que " +
                              "\n\t\tdesea trabajar" +
                              "\n\t\t\t (1).- PILA" +
                              "\n\t\t\t (2).- COLA" +
                              "\n\t\t\t (3).- SALIR");
            Console.Write("\t\t\t\tOpcion: ");
            op.Option = Convert.ToByte(Console.ReadLine());
            /*---------------------------------------------------------------------------------------------------------------------------------------*/
            if (op.Option == 1)
            {
                Console.Clear();
                do
                {
                    Console.WriteLine("\t\t-------------------------------------------------------");
                    Console.WriteLine("\t\t|\t\t\tTDA PILA ORIENTADA A OBJETOS");

                    Console.WriteLine("\t\t|Ingrese opcion:" +
                                      "\n\t\t|\t(1) Apilar datos (String) en la Pila" +
                                      "\n\t\t|\t(2) Imprimir datos (String) de la Pila:" +
                                      "\n\t\t|\t(3) Desapilar datos (String) de la pila" +
                                      "\n\t\t|\t(4) Mostrar la cima o tope (String) de la pila");
                    Console.Write("\t\t|\t\t\tOption: "); op.OptionPila = Convert.ToByte(Console.ReadLine());
                    Console.WriteLine("\t\t-------------------------------------------------------");
                    switch (op.OptionPila)
                    {
                    case 1: pila.Apilar();
                        break;

                    case 2: pila.Imprimir(); break;

                    case 3: pila.Desapilar(); break;

                    case 4:  pila.Cima();  break;
                    }
                } while (op.Option != 7);
            }
            /*---------------------------------------------------------------------------------------------------------------------------------------*/

            if (op.Option == 2)
            {
                Console.Clear();
                do
                {
                    Console.WriteLine("\t\t-------------------------------------------------------");
                    Console.WriteLine("\t\t|\t\t\tTDA COLA ORIENTADA A OBJETOS");

                    Console.WriteLine("\t\t|Ingrese opcion:" +
                                      "\n\t\t|\t(1) Encolar datos (String) en la Cola" +
                                      "\n\t\t|\t(2) Imprimir datos (String) de la Cola:" +
                                      "\n\t\t|\t(3) Desencolar datos (String) de la Cola" +
                                      "\n\t\t|\t(4) Mostrar la cima o tope de la Cola");

                    Console.Write("\t\t|\t\t\tOption: "); op.Optioncola = Convert.ToByte(Console.ReadLine());
                    Console.WriteLine("\t\t-------------------------------------------------------");


                    switch (op.Optioncola)
                    {
                    case 1: cola.Encolar(); break;

                    case 2: cola.Imprimir(); break;

                    case 3: cola.Desencolar(); break;

                    case 4: cola.Cima(); break;
                    }
                } while (op.Option != 5);
            }
            else
            {
                Console.ReadKey();
            }
        }