Exemple #1
0
        public override void Read(BinaryReaderWriter br, bool raw = false, uint headeroffset = 0, uint gapoffset = 0)
        {
            base.Read(br, raw, headeroffset, gapoffset);

            if (Locked != 0)
            {
                RawRead = true;
                return;
            }

            // Zoomlevel-Tabelle einlesen
            ZoomLevel = new List <Zoomlevel>();
            br.Seek(PtrZoomlevel);
            for (int i = 0; i < ZoomlevelCount; i++)
            {
                Zoomlevel zl = new Zoomlevel();
                zl.Read(br, ZoomlevelRecordSize);
                ZoomLevel.Add(zl);
            }

            // Subtile-Daten einlesen
            for (int i = 0; i < ZoomLevel.Count; i++)
            {
                Zoomlevel zl  = ZoomLevel[i];
                uint      end = PtrZoomlevel;
                if (i < ZoomLevel.Count - 1)
                {
                    end = ZoomLevel[i + 1].ZoomlevelItem.PtrSubtileTable;
                }
                br.Seek(ZoomLevel[i].ZoomlevelItem.PtrSubtileTable);
                zl.ReadData(br, end);
            }

            if (raw) // keine Entschlüsselung der Höhendaten
            {
                RawRead = true;
                return;
            }

            // Decodierung der Höhendaten
        }
Exemple #2
0
        /// <summary>
        /// Auswertung der Optionen
        /// </summary>
        /// <param name="args"></param>
        public void Evaluate(string[] args)
        {
            if (args == null)
            {
                return;
            }
            List <string> InputArray_Tmp = new List <string>();

            try {
                cmd.Parse(args);

                foreach (MyOptions opt in Enum.GetValues(typeof(MyOptions)))  // jede denkbare Option testen
                {
                    int optcount = cmd.OptionAssignment((int)opt);            // Wie oft wurde diese Option verwendet?
                    if (optcount > 0)
                    {
                        switch (opt)
                        {
                        case MyOptions.Input:
                            Input = cmd.StringValue((int)opt).Trim();
                            break;

                        case MyOptions.OutPath:
                            OutPath = cmd.StringValue((int)opt).Trim();
                            break;

                        case MyOptions.Symbolname:
                            Symbolname = cmd.StringValue((int)opt).Trim();
                            break;

                        case MyOptions.Zoomlevel:
                            for (int i = 0; i < cmd.OptionAssignment((int)opt); i++)
                            {
                                Zoomlevel.Add((int)cmd.UnsignedIntegerValue((int)opt, i));
                            }
                            break;

                        case MyOptions.OutputOverwrite:
                            if (cmd.ArgIsUsed((int)opt))
                            {
                                OutputOverwrite = cmd.BooleanValue((int)opt);
                            }
                            else
                            {
                                OutputOverwrite = true;
                            }
                            break;

                        case MyOptions.Help:
                            ShowHelp();
                            break;
                        }
                    }
                }

                //TestParameter = new string[cmd.Parameters.Count];
                //cmd.Parameters.CopyTo(TestParameter);

                if (string.IsNullOrEmpty(Symbolname))
                {
                    Symbolname = "Waypoint";
                }

                if (string.IsNullOrEmpty(OutPath))
                {
                    OutPath = ".\\gpx";
                }

                if (Zoomlevel.Count == 0)
                {
                    Zoomlevel.Add(0);
                }

                if (cmd.Parameters.Count > 0)
                {
                    throw new Exception("Es sind keine Argumente sondern nur Optionen erlaubt.");
                }
            } catch (Exception ex) {
                Console.Error.WriteLine(ex.Message);
                ShowHelp();
                throw new Exception("Fehler beim Ermitteln oder Anwenden der Programmoptionen.");
            }
        }