如何读取文本文件中的文本块

Posted

技术标签:

【中文标题】如何读取文本文件中的文本块【英文标题】:How To read Block of text in a text file 【发布时间】:2022-01-07 20:17:16 【问题描述】:

我有一个文件,我必须在其中读取 startscriptexpression$ 和 Finish scriptExpression$ 之间的文本,并且还要读取 startupdatedescription$ 和 startupdatedescription$[

问题是我想以更简洁的格式重新编写代码。

My Code:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace Vesrion

    class Program
    
        static void Main(string[] args)
        
            string path = @"C:\Users\Development\Desktop\Read\Test.txt";
            using (var reader = new StreamReader(path))
            
                var textInBetween = new List<string>();
                var ListOFDescription = new List<string>();
                string NewString = "";

                while (!reader.EndOfStream)
                
                    var line = reader.ReadLine();
                  //Reads First line,
                    switch (line)
                    
                        case "StartScriptExpression$":
                            continue;
                        case "FinishScriptExpression$":
                            if (line.Contains("FinishScriptExpression$"))
                            
                                line = "";
                            
                            string Something = string.Join("", textInBetween);
                            textInBetween = line.Split(',').ToList();
                            string[] lines = Something.Split(
                             new string[]  Environment.NewLine ,
                                 StringSplitOptions.None);
                            foreach (var S in lines)
                            
                                ListOFDescription.Add(S);
                                Console.WriteLine(S);
                            

                            NewString += ListOFDescription;
                           
                        break;
                        case "StartUpdateDescription$":
                            //Console.WriteLine(Environment.NewLine);
                            continue;
                        case "FinishUpdateDescription$":
                           // Console.WriteLine(Environment.NewLine);
                            continue;
                        default:
                            textInBetween.Add(line);
                            //Console.WriteLine(line);
                            break;
                           
                    
                

            

        

    

开始和结束表达式中的文本必须在字符串数组列表中。

startupdatedescription 和 finishupdatedescription 中的文本必须是字符串。

.

【问题讨论】:

不确定,但使用很少的 LINQ 方法和正则表达式似乎可以按预期工作。在这里试试:dotnetfiddle.net/pxBAMv 看起来很棒,但我希望来自 foreach 的 sql 命令位于单个字符串中,例如 [0] 创建表..... [1] 创建表..... [2 ]更改表注册...... [3]添加自动编号...... 您想将 4 个字符串(命令)合并为 1 个字符串吗? 列表中 startscriptexpression 和 finishscriptexpression 之间的最终输出必须如下: [0]- CREATE TABLE [CompanyBranch]([CompanyBranchID] [int] IDENTITY(1,1) ..... [ 1]- CREATE TABLE [CompanyBranchDept]([CompanyBranchDeptID] [int] IDENTITY(1,1) .. [2]-ALTER TABLE REGISTRATION_FILE_REFERENCING ADD BranchLink bit [3]-ALTER TABLE EASY_FILE ADD Remarks varchar(250) 我想将所有开始和结束表达式连接成 1 个字符串。 【参考方案1】:

一种方法是使用正则表达式https://dotnetfiddle.net/pxBAMv

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何读取文本文件中的文本块的主要内容,如果未能解决你的问题,请参考以下文章

java如何读取压缩包中的文本文件

awk文本处理工具

如何编写文本文件,然后在同一个 Bash 脚本中读取它?

将文本写入文件后的mfc c++奇怪的块字符

在C++中如何读取文本中的数据存储为数组变量?

如何避免使用 Python re 库删除文本文件中正则表达式标志之间的文本块?