问题描述
文件名:ketuConfig.ini内容:如下-----------------------------;图书馆名称Title=第三代图书馆集群管理系统;是否一卡通用户(Y:是N:否)IsAllInCard=Y-----------------------------用C#代码如何读取ketuConfig.ini文件中的文本(要求读取Title,IsAllInCard这两个"="后面的文本";"这个字符后面的作为注释不操作)详细代码怎么写,非常感谢
解决方案
解决方案二:
using(System.IO.FileStreamstream=newSystem.IO.FileStream(FileName)){System.IO.TextReaderr=newSystem.IO.StreamReader(stream);while(true){strings=r.ReadLine();if(s==null)break;if(s.Length>0){if(s[0]==';')continue;stringss=s.Split('=');if(ss.Length==2){if(ss[0]=="Title"){stringTitle=ss[1];}elseif(ss[0]=="IsAllInCard"){stringIsAllInCard=ss[1];}}}}}
解决方案三:
读INI用API
解决方案四:
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;usingSystem.Collections;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){stringstrPath=@"c:ketuConfig.ini";stringsLine="";ArrayListarrTitle=newArrayList();ArrayListarrText=newArrayList();if(File.Exists(strPath)==false){return;}try{StreamReaderobjReader=newStreamReader(strPath,Encoding.Default);string[]arrTemp;while(sLine!=null){sLine=objReader.ReadLine();if(sLine!=null&&sLine[0]!=';'){arrTemp=sLine.Split('=');arrTitle.Add(arrTemp[0]);arrText.Add(arrTemp[1]);}}objReader.Close();for(inti=0;i<arrTitle.Count;i++){Console.WriteLine(arrTitle[i]);Console.WriteLine(arrText[i]);Console.WriteLine();}}catch{}Console.ReadLine();}}}
解决方案五:
正则表达式!
解决方案六:
学习
解决方案七:
有个api函数可以使用
解决方案八:
学习!!
解决方案九:
4楼正解!if(sLine!=null&&sLine[0]!=';')增加对‘=’是否存在的判断就OK了!if(sLine!=null&&sLine[0]!=';'&&sLine.IndexOf('=')>=0)
解决方案十:
可以用while(sr.Peek()>=0)来判断是否存在,每读一行取第几个就行了,文件格式已固定char[]ch=newchar[]{',','='};tempPath=Application.StartupPath+@"*.txt";if(File.Exists(tempPath)){StreamReadersr=newStreamReader(tempPath);try{while(sr.Peek()>=0){stringstrTemp=sr.ReadLine();strTemp.Split(ch);string[]strArray=strTemp.Split(ch);//取数据如下:Console.writeline(strArray[0].trim());Console.writeline(strArray[1].trim());//等等}}}