c# - C# 文本文件到字符串数组以及如何删除特定字符串?
问题描述
我需要阅读一个文本文件 (10mb) 并转换为 .csv。请参见下面的代码部分:
string DirPathForm = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);'
string[] lines = File.ReadAllLines(DirPathForm + @"\file.txt");
文本文件的某些部分具有模式。所以,使用如下:
string[] lines1 = lines.Select(x => x.Replace("abc[", "ab,")).ToArray();
Array.Clear(lines, 0, lines.Length);
lines = lines1.Select(x => x.Replace("] CDE ", ",")).ToArray();
有些部分没有模式可以直接使用替换。问题是如何删除这部分的字符、数字和空格。请看下面?
string[] lines = {
"a] 773 b",
"e] 1597 t",
"z] 0 c"
};
得到以下结果:
string[] result = {
"a,b",
"e,t",
"z,c"
};
obs:删除的项目需要用“,”替换。
解决方案
首先,您不应该使用 ReadAllLines,因为它是一个巨大的文件操作。它将所有数据加载到 RAM 中,这是不正确的。相反,请在循环中逐行阅读。
其次,您绝对可以使用正则表达式将数据从第一个条件替换为第二个条件。
推荐阅读
- python - 如何在python中制作pytorch张量列表?
- c++ - 在设置条件变量之前,我是否必须锁定以检查与条件变量一起使用的工作可用标志,如果是,为什么?
- javascript - 谷歌地图 API JSON 响应各不相同
- python - 如何让 Python 识别 Shaka Streamer?
- firebase - Firebase Deploy 在“=>”上获取解析错误
- javascript - 如何链接objectId mongoose
- powershell - 为什么括号会改变迭代类型?
- tableau-api - 下拉 Tableau 表上的每一行
- vba - 如何在电子邮件的“收件人”行中输入一个电子邮件地址(可以有更多地址)?
- reactjs - Firebase 和 Shopify - 保护数据库问题