/// <summary> /// Genera una expresión para poder extraer el texto de cada página mediante regex. /// </summary> /// <returns>Patrón para regex inicio página</returns> private string GenerarPatronRegexInicioPagina() { RegistroCampo inicio = null; RegistroCampo modelo = null; RegistroCampo pagina = null; RegistroCampo final = null; foreach (var reg in RegistroCampos) { if (Regex.Match(reg.Value.Descripcion, @"\s*Inicio\s+del\s+identificador\s+de\s+modelo\s+y\s+p[^\d]{1}gina\s*").Success) { inicio = (reg.Value as RegistroCampo); } else if (reg.Value.Descripcion.Trim() == "Modelo") { modelo = (reg.Value as RegistroCampo); } else if (reg.Value.Descripcion.Trim() == "Página") { pagina = (reg.Value as RegistroCampo); } else if (Regex.Match(reg.Value.Descripcion, @"\s*Fin\s+de\s+identificador\s+de\s+modelo\s*").Success) { final = (reg.Value as RegistroCampo); } } string patronPagina = $"\\d{{{pagina.Longitud}}}"; string patronInicio = $"{inicio.ValorFichero}{modelo.ValorFichero}{patronPagina}{final.ValorFichero}"; return(patronInicio); }
/// <summary> /// Genera una expresión para poder extraer el texto de cada página mediante regex. /// </summary> /// <returns>Patrón para regex inicio página</returns> private string GenerarPatronRegexFinalPagina() { RegistroCampo final = null; foreach (var reg in RegistroCampos) { if (Regex.Match(reg.Value.Descripcion, @"\s*Indicador\s+de\s+fin\s+de\s+registro\s*").Success) { final = (reg.Value as RegistroCampo); } } return($"{final.ValorFichero}"); }
/// <summary> /// Devuelve el campo que se corresponde con la descripción facilitada /// o null si no lo encuentra. /// </summary> /// <param name="descripcion">Descipción del campo o clave del campo.</param> /// <returns>Devuelve el campo que se corresponde con la descripción facilitada /// o null si no lo encuentra.</returns> public RegistroCampo this[string descripcion] { get { foreach (var parClaveValor in RegistroCampos) { RegistroCampo campo = parClaveValor.Value as RegistroCampo; if (campo != null && campo?.Descripcion == descripcion) { return(campo); } if (campo != null && campo?.Clave != null && campo?.Clave == descripcion) { return(campo); } } return(null); } }