【问题标题】:How to format the property value based up on the length?如何根据长度格式化属性值?
【发布时间】:2011-04-28 09:35:53
【问题描述】:

我想创建记录格式的文件。

示例:输出文件:Record.txt

      SD raj       ,kumar     ,27/04/2011
      DD male  ,single         ,27/04/2011
      ED 27/04/2011

RecordName  Fieldname   FieldLength

SD             FirstName          10
SD           LastName           10
SD          date               15
DD           Sex                 6
DD           maritalstatus      15
DD          date               15
ED          date

InputFile 是 Input.txt,其内容是

  raj,kumar,27/04/2011
  male,single,27/04/2011
  27/04/2011

我读取了这个输入文件并将数据填充到下面的类对象中。逗号 , 是用于分隔记录中的字段值的分隔符。

class SD
    {

            private string fName;
            private string lName;
            private DateTime date;


            #region Properties
            public string FName
            {
             get { return fName;}
             set { fName= value; }
            }
            public DateTime Date
            {
             get { return date; }
                    set { date = value; }
            }
            public string LName
            {
             get { return lName;}
             set { lName= value; }
            }
            #endregion
    }



    class DD
    {

            private string sex;
         private string mStatus;
         private DateTime date;


         #region Properties
         public string SEX
         {
             get { return sex;}
             set { sex= value; }
            }
            public string Date
            {
                get { return date; }
                set { date = value; }
         }
         public string Mstatus
            {
             get { return mStatus;}
                    set { mStatus= value; }
         }
         #endregion
    }

    class ED
    {

         private DateTime date;


            #region Properties

            public string Date
            {
              get { return date; }
             set { date = value; }
            }       
            #endregion
    }

我还创建了 xml 来获取每条记录的字段长度

示例.xml

    <Data>
        <SD Fname="10" Lname="10" Date="15/>
        <DD SEX="6" mStatus="15" Date="15/>
        <ED Date="15/>
    <Data/>

现在任何人都可以告诉我在哪里可以格式化字段?

1.读取输入文本后填充到对应的类对象中

2.在写入输出文件之前

告诉我正确的解决方案(必须使用sample.xml来识别字段长度)

【问题讨论】:

    标签: c# xml .net-2.0


    【解决方案1】:

    如果我正确理解您的问题,您想知道如何以固定字段宽度输出数据吗?如果是这样,您可以创建一个函数来填充这样的字符串:

        string GetFixedLengthString(string value, int length)
        {
            return (value ?? "").Length > length ? (value ?? "").Substring(0, length) : (value ?? "").PadRight(length);
        }
    

    并在您写出值时调用它。我猜 Sample.xml 中的第二个元素应该是 ED 而不是 SD?将其加载到 XmlDocument 并读取属性应该很简单,然后将属性值作为长度参数传递给函数。

    【讨论】:

      猜你喜欢
      • 2012-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 2014-03-08
      • 2016-07-05
      • 1970-01-01
      相关资源
      最近更新 更多