txt文件格式如下:[属性1]
参数=2210.3,12.65,115,25,420.66,445.69,0.569
[属性2]
9,0.018,2003-10,@
J01,1,3751508.5,39438683.65
J02,1,3751508.5,39438690.15
5,0.0247,2003-12,@
J01,1,3755389.7,39437380.2
怎样把属性1和属性2分离出来?属性一算是一段,属性2算是另一段,属性2中可能有多个以‘@’结尾的部分又需要分成多个小段。
我主要是想将txt分成3部分,一个是属性1和属性2之间的那一段,第二部分是以‘@’结尾的那一行到下一个以'@'结尾的那一行之前的那一段,就是示例中的第4、5、6三行,第三部分就是之后的7、8两行,也就是和第二部分差不多的,要求要是有多个‘@’结尾的部分的话要求能分成多段。不知道我说明白没有,不明白的一起讨论一下!

解决方案 »

  1.   


    using System; 
    using System.IO; 
    using System.Runtime.InteropServices; 
    using System.Text;
    namespace OperateIni
    {
     public class IniFile
     { 
      private string IniFileName;   [DllImport("kernel32")] 
      private static extern int GetPrivateProfileInt(string lpAppName, string lpKeyName, 
       int nDefault, string lpFileName);   [DllImport("kernel32")] 
      private static extern int GetPrivateProfileString(string lpAppName, string lpKeyName, 
       string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);   [DllImport("kernel32")] 
      private static extern bool WritePrivateProfileString(string lpAppName, 
       string lpKeyName, string lpString, string lpFileName);   public IniFile(string Filename) 
      {
       IniFileName = Filename; 
      } 
      
      public int ReadIni(string Section,string Key,int Default) 
      { 
       return GetPrivateProfileInt(Section,Key,Default,IniFileName); 
      }   public string ReadIni(string Section,string Key,string Default) 
      { 
       StringBuilder temp = new StringBuilder(1024); 
       int rec=GetPrivateProfileString(Section,Key,Default,temp,1024,IniFileName);
       return temp.ToString(); 
      }  public void WriteIni(string Section,string Key,int intValue) 
      { 
       WritePrivateProfileString(Section,Key,intValue.ToString(),IniFileName); 
      }   public void WriteIni(string Section,string Key,string strValue) 
      { 
       WritePrivateProfileString(Section,Key,strValue,IniFileName); 
      }
     } 
    }
      

  2.   

    没看太明白,“怎样把属性1和属性2分离出来?属性一算是一段,属性2算是另一段”,用indexof找一下“[属性2]”,再substring一下?
    剩下的部分再用indexof找一下“@”,继续substring,应该不难吧? 正则表达式都不必用到
      

  3.   

    建议楼主了解一下ini文件操作的相关知识
      

  4.   

    Section,Key 都是什么意思啊?
      

  5.   

    明白了 在这里 Section= 属性1;key=参数;得到的返回值应该就是2210.3,12.65,115,25,420.66,445.69,0.569 这一串。但是在属性2中key应该是多少呢?它没有“=”,怎么区分?该怎么办?
      

  6.   

    参考一下 GetPrivateProfileSection
    我也没用过,你研究一下试试