/// <summary> /// Extrae un campo ascii con formato. /// </summary> /// <param name="cmd"></param> /// <param name="length"></param> /// <param name="optional"></param> /// <returns></returns> protected string Extract_P(BinReader cmd, int length, bool optional) { _ = length; _ = optional; SkipFieldSep(cmd); var sb = new StringBuilder(); while (!cmd.EOC) { if (cmd.PeekNext() == FLD) { if (cmd.PeekNext(1) != FLD) { break; } cmd.ReadNext(); // Read the escaped FLD } sb.Append((char)cmd.ReadNext()); } return(sb.ToString()); }
/// <summary> /// Extrae un campo si/no. /// </summary> /// <param name="cmd"></param> /// <param name="length"></param> /// <param name="optional"></param> /// <returns></returns> protected bool Extract_Y(BinReader cmd, int length, bool optional) { _ = length; _ = optional; SkipFieldSep(cmd); if (!cmd.EOC && cmd.PeekNext() != FLD) { char ch = (char)cmd.ReadNext(); return(ch != 'n' && ch != 'N'); } return(false); }
/// <summary> /// Extrae un campo Binario. /// </summary> /// <param name="cmd"></param> /// <param name="length"></param> /// <param name="optional"></param> /// <returns></returns> protected byte[] Extract_B(BinReader cmd, int length, bool optional) { _ = length; _ = optional; var result = new List <byte>(); while (!cmd.EOC && cmd.PeekNext() != FLD) { result.Add(cmd.ReadNext()); } return(result.ToArray()); }
/// <summary> /// Extrae un campo de texto enriquecido. /// </summary> /// <param name="cmd"></param> /// <param name="length"></param> /// <param name="optional"></param> /// <returns></returns> protected string Extract_RT(BinReader cmd, int length, bool optional) { _ = length; _ = optional; SkipFieldSep(cmd); var sb = new StringBuilder(); while (!cmd.EOC && cmd.PeekNext() != FLD) { sb.Append((char)cmd.ReadNext()); } return(sb.ToString()); }