Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 读取文件并根据C中的标志拆分为多个部分#_C#_Asp.net_Text Files_Delimiter_Text Processing - Fatal编程技术网

C# 读取文件并根据C中的标志拆分为多个部分#

C# 读取文件并根据C中的标志拆分为多个部分#,c#,asp.net,text-files,delimiter,text-processing,C#,Asp.net,Text Files,Delimiter,Text Processing,我有一个文本文件,我想处理和导入。行包含一个团队,其下有与其相关的数据。然后,当另一行包含时,它会重复该过程。我的问题是,是否有办法读取标志(),并在下一个之前将其下的所有数据以字符串形式存储在C#?我想以后一个接一个地处理这个字符串列表。下面的代码可以工作,但我希望保留字符串中的 var teams = file.ReadToEnd().Split(new [] { "< TEAM >" }, StringSplitOptions.RemoveEmptyEntries); &l

我有一个文本文件,我想处理和导入。
行包含一个团队,其下有与其相关的数据。然后,当另一行包含
时,它会重复该过程。我的问题是,是否有办法读取标志(
),并在下一个
之前将其下的所有数据以字符串形式存储在C#?我想以后一个接一个地处理这个字符串列表。下面的代码可以工作,但我希望保留字符串中的

var teams = file.ReadToEnd().Split(new [] {  "< TEAM >" }, StringSplitOptions.RemoveEmptyEntries);

< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206
< COACHES >
DUTY    NAME    ADDRESS CITY    STATE   PROVINCE    COUNTRY ZIP PHONE   EMAIL   APPROVAL NUM    BBCS APPROVED

< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206
< COACHES >
DUTY    NAME    ADDRESS CITY    STATE   PROVINCE    COUNTRY ZIP PHONE   EMAIL   APPROVAL NUM    BBCS APPROVED
var teams=file.ReadToEnd().Split(新[]{“”},StringSplitOptions.RemoveEmptyEntries);

姓名地址城市州国家邮政编码
斯波坎遗产16U 1111 S美国华盛顿州斯波坎罗文露台巷99206

职务名称地址城市州省国家邮政电话电子邮件批准数量BBCS批准

姓名地址城市州国家邮政编码
斯波坎遗产16U 1111 S美国华盛顿州斯波坎罗文露台巷99206

职务名称地址城市州省国家邮政电话电子邮件批准数量BBCS批准

有点像黑客,但应该可以

string[] splitTeams = teams.Replace("< TEAM >", "|< TEAM >").Split(new [] { '|' }, StringSplitOptions.RemoveEmptyEntries);
string[]splitTeams=teams.Replace(“”,“|”).Split(新[]{'|'},StringSplitOptions.removeMptyEntries);

只要文件中的其他地方没有使用
|
,就可以使用。如果是,那么就用一个唯一的字符或字符串替换它。

可能类似,不是很优雅,但是如果
只需要它下面的两行(标题和数据)就可以了

var lines=File.ReadAllLines(“c:\\stackoverflow.txt”);
var结果=行。选择((s,i)=>s.Equals(”)行。跳过(i)。获取(3):null)。其中(x=>x!=null);
返回:

< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206

< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206

姓名地址城市州国家邮政编码
斯波坎遗产16U 1111 S美国华盛顿州斯波坎罗文露台巷99206

姓名地址城市州国家邮政编码
斯波坎遗产16U 1111 S美国华盛顿州斯波坎罗文露台巷99206

您可以将它添加回团队中的每个项目中。我知道,但我想知道是否有更优雅的东西……哈哈
< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206

< TEAM >
NAME    ADDRESS CITY    STATE   COUNTRY ZIP
Spokane Legacy 16U  1111 S Rowan Terrace Lane   Spokane Washington  US  99206