2011-04-28 31 views
0

我想創建記錄格式的文件。如何根據長度格式化屬性值?

實施例:輸出文件: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獲取字段長度爲每個記錄

sample.xml中

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

現在,任何人都可以告訴我,我在哪裏可以格式化字段的方式嗎?

1.after讀取輸入文本,並將其填充到相應的類對象

2.before寫OUTPUTFILE

告訴我正確的解決方案(必須使用sample.xml中識別領域長度)

+0

有什麼問題嗎? – 2011-04-28 10:42:18

回答

0

如果我正確理解你的問題,你想知道如何輸出固定字段寬度的數據?如果是這樣,你可以創建一個函數來填充字符串,如下所示:

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

並且在寫出值時調用它。我猜測Sample.xml中的第二個元素應該是ED而不是SD?將它加載到XmlDocument中並閱讀屬性應該足夠簡單,然後將該屬性值作爲長度參數傳遞給該函數。