zoukankan      html  css  js  c++  java
  • C#循环读取文件流,按行读取

    public Dictionary<string,string> GetSourceDisksElements(String section)
    {
            section = "[" + section;
            Dictionary<string, string> keyToValue = new Dictionary<string, string>();
            //打开文件流,开始读取文件
            using (StreamReader sin = new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)))
            {
                    for (String str = sin.ReadLine(); str != null; str = sin.ReadLine())
                    {
                        if (str.Trim().StartsWith(section, StringComparison.OrdinalIgnoreCase)) //some section has comment. 
                        {
                            for (str = sin.ReadLine(); str != null && !str.Trim().StartsWith("["); str = sin.ReadLine()) //loop for get string, until to next section or end of file.
                            {
                                if (!String.IsNullOrEmpty(str.Trim()) && !str.Trim().StartsWith(";"))  //drop the comment line and empty line. //去掉name-value对的限制,因为存在无=的情况。20100309.str.Contains('=') &&  only get the name-value pair line.
                                {   
                                    String[] keyValues = str.Split('=');
                                    if (section.Equals("[SourceDisksNames"))
                                    {
                                        string[] noCommentValues = keyValues[1].Split(';');
                                        string realValue = noCommentValues[0].Trim();
    
                                        String[] sourceDiskCfg = realValue.Split(',');  //disk-description[,[tag-or-cab-file],[unused],[path],[flags][,tag-file]]  (tag-file : Windows XP and later versions of Windows)
                                        String diskpath = String.Empty;
                                        if (sourceDiskCfg.Length > 3)
                                            diskpath = sourceDiskCfg[3].Trim();
    
                                        if (diskpath.StartsWith("""))
                                            diskpath = RemoveQuotes(diskpath);
    
                                        if (!String.IsNullOrEmpty(diskpath) && diskpath.StartsWith("."))
                                            diskpath = diskpath.Substring(diskpath.IndexOf('\'));
    
                                        //20150112
                                        if (!String.IsNullOrEmpty(diskpath) && !diskpath.StartsWith("\"))
                                            diskpath = "\" + diskpath;
    
                
                                        keyToValue.Add(keyValues[0].Trim(), diskpath);
                                    }
                                    else
                                    {
                          
                                        string[] noCommentValues = keyValues[1].Split(';');
                                        string realValue = noCommentValues[0].Trim();
                                        keyToValue.Add(keyValues[0].Trim(), realValue);
                                    }
                                }
                            }
                            break;
                        }
                    }
                }
                return keyToValue;
            }
    View Code
  • 相关阅读:
    vue之父子组件间通信实例讲解(props、$ref、$emit)
    jsp的内置对象
    一道关于类加载顺序的面试题
    web.xml中的load-on-startup
    静态代理、JDK动态代理和CGLib动态代理之前的区别
    有关于tomcat启动时,利用listener来执行某个方法
    有关于注解
    java 代码块,静态代码块,构造器等的执行顺序
    java容器的理解(collection)
    PHP常用的缓存技术汇总
  • 原文地址:https://www.cnblogs.com/tommy-huang/p/4220723.html
Copyright © 2011-2022 走看看