我得到很多行字符串作为输入,看起来像这样。输入是一个字符串,来自
theObjects.Runstate;
每个@VAR;****;@ENDVAR;代表循环中的一条线和一步。
@VAR;Variable=Speed;Value=Fast;Op==;@ENDVAR;@VAR;Variable=Fabricator;Value=Freescale;Op==;@ENDVAR;
我拆分它,以删除不需要的字段,例如@VAR、@ENDVAR 和 Op==。最佳输出将是:
Speed = Fast;
Fabricator = Freescale; and so on.
我可以删除@VAR 和@ENDVAR。删除“Op==”不会那么难,所以这不是问题的主要焦点。我现在最担心的是,我想将输出打印为文本文件。要打印一个数组,我必须循环它。但是在每次迭代中,当我得到一个新行时,我会用当前拆分的字符串覆盖数组。我认为 Inputfile 的最后一行是一个空字符串,所以我得到的输出只是一个空的文本文件。如果有人可以帮助我,那就太好了。
string[] w;
Textwriter tw2;
foreach (EA.Element theObjects in myPackageObject.Elements)
{
theObjects.Type = "Object";
foreach (EA.Element theElements in PackageHW.Elements)
{
if (theObjects.ClassfierID == theElements.ElementID)
{
t = theObjects.RunState;
w = t.Replace("@ENDVAR;", "@VAR;").Replace("@VAR;", ";").Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string s in w)
{
tw2.WriteLine(s);
}
}
}
}