using System; using System.Diagnostics; namespace FileHelpers { /// /// This class allows you to set some options of the fixed length records but at runtime. /// With this options the library is more flexible than never. /// public sealed class FixedRecordOptions: RecordOptions { internal FixedRecordOptions(RecordInfo info) :base(info) { } /// Indicates the behavior when variable length records are found in a []. (Note: nothing in common with [FieldOptional]) public FixedMode FixedMode { get { return ((FixedLengthField) mRecordInfo.mFields[0]).mFixedMode; } set { for(int i = 0; i < mRecordInfo.mFieldCount; i++) { ((FixedLengthField) mRecordInfo.mFields[i]).mFixedMode = value; } } } #if NET_2_0 [DebuggerDisplay("FileHelperEngine for type: {RecordType.Name}. ErrorMode: {ErrorManager.ErrorMode.ToString()}. Encoding: {Encoding.EncodingName}")] #endif private int mRecordLength = int.MinValue; /// /// The sum of the indivial field lengths. /// public int RecordLength { get { if (mRecordLength != int.MinValue) return mRecordLength; mRecordLength = 0; foreach (FixedLengthField field in mRecordInfo.mFields) { mRecordLength += field.mFieldLength; } return mRecordLength; } } } }