Exemple #1
0
        private static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.Error.WriteLine("Error, no has indicado suficientes parámetros.");
                Console.Error.WriteLine("El formato es el siguiente: ExtraerEntidadesDeArchivos [archivo .bin a generar] [codigo 1]...[código n].");
                return;
            }

            var di       = new DirectoryInfo(Directory.GetCurrentDirectory());
            var archivos = di.GetFiles("*.bind");

            using (var archivoSalida = new BinDouble(args[0]))
            {
                foreach (var archivo in archivos)
                {
                    using (var archivoEntrada = new BinDouble(archivo.Name))
                    {
                        Console.WriteLine($"Analizando el archivo: {archivo.Name}");

                        var entidades = from entidad in archivoEntrada
                                        where entidad.TieneAlgúnCódigo(args.Skip(1))
                                        select entidad;

                        foreach (var entidad in entidades)
                        {
                            archivoSalida.Add(entidad.Clone());
                        }
                    }
                }
            }
        }
        private static void Main(string[] args)
        {
            if (args.Length < 4)
            {
                Console.Error.WriteLine("Error: No se han especificado parámetros.");
                Console.Error.WriteLine("El formato es: EliminaCodigoDeArchivoBin.exe [tabla de códigos] [archivo de entrada] [archivo de salida] [código a eliminar]");
                Console.Error.WriteLine("Ejemplo: EliminaCodigoDeArchivoBin.exe digiBCA.Tab.xml 29091711.bin salida.bin 201");
                return;
            }

            try
            {
                using (var archivoEntrada = new BinDouble(args[1]))
                {
                    using (var archivoSalida = new BinDouble(args[2], false))
                    {
                        foreach (var entidad in archivoEntrada)
                        {
                            var clonada = entidad.Clone();

                            // Eliminamos todos los códigos de la entidad clonada
                            clonada.Codes.Clear();

                            // Añadimos únicamente los códigos cuyo nombre no coincida con el pasado por parámetros
                            foreach (var código in entidad.Codes)
                            {
                                if (código.Name == args[3])
                                {
                                    continue;
                                }

                                clonada.Codes.Add(código);
                            }

                            if (entidad.Codes.Count == 0)
                            {
                                continue; // No almacenamos la entidad, pues al quitarle el código indicado por parámetros se ha quedado sin códigos. Era el único que tenía.
                            }
                            archivoSalida.Add(clonada);
                            Console.Write("*");
                        }
                    }
                }
            }
            catch (Exception excepción)
            {
                Console.Error.WriteLine("Se localizó el siguiente error:");
                Console.Error.WriteLine(excepción.Message);
            }
        }
Exemple #3
0
        private static void TransformaArchivo(string[] args)
        {
            try
            {
                ConicSensor sensorOriginal = new ConicSensor();
                sensorOriginal.Load(args[0], args[2], false);

                ConicSensor sensorNuevo = new ConicSensor();
                sensorNuevo.Load(args[1], args[2], false);

                double paralajeAlarma = double.Parse(args[5]);

                using (BinDouble archivoOriginal = new BinDouble(args[3]))
                {
                    using (BinDouble archivoNuevo = new BinDouble(args[4], 0, true, true))
                    {
                        int índiceEntidad = 0;
                        foreach (var entidad in archivoOriginal)
                        {
                            double paralajeEntidad;
                            var entidadTransformada = Transforma(sensorOriginal, sensorNuevo, entidad, out paralajeEntidad);
                            archivoNuevo.Add(entidadTransformada);

                            if (Math.Abs(paralajeEntidad) >= paralajeAlarma)
                            {
                                Console.WriteLine(string.Format("{0}\t{1}"),
                                    índiceEntidad,
                                    paralajeEntidad);
                            }
                        }
                    }
                }

                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }