繁体   English   中英

通过指定起点和终点从文件中读取

[英]Reading from a file in by specifying start point and end point

我想从C#中的输入文件中读取。 下面是我的代码。

public string ReadFromNewEntityFile()
    {
        string template=null;
        StringBuilder s = new StringBuilder();
        //char[] sourcesystemhost=null;
        string inputFileName = ConfigurationManager.AppSettings["inputNewEntityFilePath"].ToString();
        System.IO.StreamReader myFile;
        try
        {
            myFile = new System.IO.StreamReader(inputFileName);
            myFile.ReadLine();
            while ((template = myFile.ReadLine()) != "[[END SourceSystemHost]]")
            {
                s.AppendLine(template);
            }
        }
        catch (Exception ex)
        {
            log.Error("In Filehandler class :" + ex.Message);
            throw new Exception("Input file not read" + ex.Message);
        }
        return template;
    }

问题是要指定读取内容的起点和终点。 在这里,我只能指定终点。 如何指定起点?

请帮忙

假设起点/终点实际上是直线,则基本上需要从头开始阅读并跳过直线,直到到达正确的直线。 这是使用File.ReadLines的一种简单方法:

var lines = File.ReadLines(inputFileName)
                .SkipWhile(line => line != "[[START SourceSystemHost]]")
                .Skip(1) // Skip the intro line
                .TakeWhile(line => line != "[[END SourceSystemHost]]");

您可以使用File.ReadLines ,它执行相同的操作但更易读。 然后使用LINQ查找起点和终点:

var range = File.ReadLines(inputFileName)
   .SkipWhile(l => !l.TrimStart().StartsWith("[[Start SourceSystemHost]]"))
   .TakeWhile(l => !l.TrimStart().StartsWith("[[END SourceSystemHost]]"));

string result = string.Join(Environment.NewLine, range);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM