c# - 文本文件中的分隔行
问题描述
我有一个 .txt 文件。包含 INSERT 脚本。
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3) INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
and so on...
我想读取这个文件并分别输出每个 INSERT 语句。INSERT 脚本可能没有用新行分隔。它可以在同一行继续。正如最后一个 INSERT 脚本所见。
所以我想知道我是否可以阅读这个文本文件并在找到新的“插入”单词时分隔每一行?
解决方案
@Sayse 给出了一些答案提示。你可以在这里做的是:
- 在特定分隔符上拆分
- 对于每个值附加分隔符
public static void Main()
{
// search how to read content from a file in C# in case of doubt
var content = @"INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3) INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)";
// choose your delimiter
const string delimiter = "INSERT INTO TABLE ";
var inserts = content
.Split(new []{delimiter}, StringSplitOptions.RemoveEmptyEntries)
.Select(x => delimiter + x.TrimEnd());
foreach (var insert in inserts)
Console.WriteLine(insert);
}
输出
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
INSERT INTO TABLE (COL1, COL2, COL3) VALUES (1, 2, 3)
推荐阅读
- mysql - 为什么我不能在eclipse中连接到mysql数据库?
- shell - 詹金斯:字符串参数无法正常工作
- android - 以编程方式使用系统无法识别的 BTLE 设备
- laravel - 如何在 Laravel 的视图(刀片文件)中输出 Eloquent Eager Loading?
- reactjs - 无法从 React 中的道具从父级到子级设置状态
- android - Android资源链接失败
- php - 使用 Woocommerce 中的运输类删除重复的运输包裹
- bash - 基于视频音频编解码器的动作
- git - Git:在其他提交之上重放一系列提交
- windows - Windows 预览版破坏了事务文件系统?