Ejemplo n.º 1
0
        public static int extraerPuntosYLineas(string[] fid, List <PuntoDosis> puntos, List <Linea> lineas, int lineaInicio = 0)
        {
            int inicio = buscarSubStringEnFid(fid, "Reference point", lineaInicio);

            inicio = buscarSubStringEnFid(fid, "x [cm] y [cm] z [cm] Total dose [cGy]", inicio);
            int fin = Array.IndexOf(fid, "", inicio);

            while (inicio < fin)
            {
                inicio++;
                string   aux    = fid[inicio];
                string[] partes = aux.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                if (partes.Length == 5)
                {
                    PuntoDosis punto = PuntoDosis.extraer(partes);
                    puntos.Add(punto);
                }
                else if (partes.Length == 0)
                {
                    inicio = fin;
                }
                else
                {
                    int finLinea = buscarSubStringEnFid(fid, "x [cm] y [cm] z [cm] Total dose [cGy]", inicio + 2) - 2;
                    if (finLinea == -2)
                    {
                        finLinea = fin - 1;
                    }
                    Linea linea = Linea.extraer(fid, inicio, finLinea);
                    lineas.Add(linea);
                    inicio = finLinea;
                }
            }
            return(inicio);
        }