gpt4 book ai didi

c# - 如何在 C# 中解析文本文件中的特定行

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:35 24 4
gpt4 key购买 nike

我需要解析文本文件中以特定单词开头的特定行,如下图所示:

enter image description here

我只需要解析以“Level”开头的行,并且只提取“Row”和“Col”的值。请注意,文本文件将包含 6 组此类数据,其中每组以

开头

---------------- chromosome : # ------------------

请参阅以下示例:Sample

我需要将每个组的行和列保存在单独的列表中!有什么办法可以执行此操作吗?

我尝试了以下方法:

public List<int[,]> getValuesFromTextFile(String filePath ) {

IEnumerable<string> allLines = Enumerable.Empty<string>();

List<int[,]> path = new List<int[,]>();

int[,] item = new int[2,1];

if (File.Exists(filePath))

{
//Read all content of the files and store it to the list split with new line
allLines = File.ReadLines(filePath);
}
 
//all Level lines
IEnumerable<string> levelLines = allLines.Where(d => d.StartsWith("Level", StringComparison.CurrentCultureIgnoreCase));
 
foreach(string line in levelLines)

{
string[] values= line.Split(':');//either space or tab or others as your file contain seperator

for(int i=1; i <values.Length;i++) {

string value = values[i];// skip index 0,it contains label, remaining are point data

if (i == 3) item[1,0] = Int32.Parse(value);

if (i == 5 && item[1,0] != null ) { item[0,0] = Int32.Parse(value);
path.Add(item);

}

}

}



return path;

}

我在行 ( if (i == 3) item[1,0] = Int32.Parse(value); ) 处遇到以下错误:

Input string was not in a correct format.

当我在此行放置一个断点时,我看到字符串“value”的值等于 null!!。

当我添加一个断点以查看所有行列表内容时,我得到如下图所示:

enter image description here

以上方法需要分别解析每一组关卡!!.

最佳答案

罗斯,你有两个问题。首先,将文本分成几组,然后解析每一行。第二个可以使用正则表达式轻松完成,但我将使用 Json.Net 使用 json 技巧:)

int groupInx = 0;
var groupLines = File.ReadLines(@"d:\temp\a.txt")
.GroupBy(x => x.Contains("Chromosome") ? ++groupInx : groupInx);

foreach(var group in groupLines)
{
var lines = group.Skip(2) //skip ----- lines
.Select(x => JObject.Parse($"{{{x}}}"))
.ToList();

//use a loop for each lines here
int level = (int)lines[0]["Level"]; //for example
int col = (int)lines[0]["Col"]; //for example

}

关于c# - 如何在 C# 中解析文本文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com