我有一个.txt文件,看起来像这样
因此,您可以看到没有特定的分隔符。在第一列之后存在相同数量的空格,但是所有名称都有不同的长度,因为下一列中的空格数是变化的。
我想添加一个迭代遍历名称的for循环,并且只要它检测到空格就会增加变量的值。一旦我得到两个空格,它就会移动到下一列。但是这个解决方案不起作用,因为有些人有中间名。有时他们的名字可能会非常长,而且它会填满整个专栏。
那么我应该使用什么算法来解决这个问题。我在C#btw上编码。
答案 0 :(得分:0)
你有什么是固定宽度的文件。它应该带有一个规范,详细说明每个字段的宽度。
因此,解析它就像枚举每行占用正确数量的字符并修剪每个字段中的任何空白一样简单。
例如,如果您知道您的4个字段的长度为20,25,10,20,那么您可以执行row
行
var field1 = row.Substring(0,20).Trim();
var field2 = row.Substring(20,25).Trim();
var field3 = row.Substring(45,10).Trim();
var field4 = row.Substring(55,20).Trim();
这里有更多信息
Read fixed width record from text file
https://codereview.stackexchange.com/questions/27782/how-to-read-fixed-width-data-fields-in-net