我需要阅读然后写出我当前记录的记录。
这是我到目前为止的代码:
private void ShipRecords()
{
using (TextReader tr = File.OpenText(appSettings.CreditCardTranFile))
{
var strLine = string.Empty;
string[] arrColumns = null;
while ((strLine = tr.ReadLine()) != null)
{
arrColumns = strLine.Split('\t');
if (arrColumns[0] == "A")
{
if (PublishRecord(arrColumns))
{
arrColumns[0] = "P";
// I need to save here
}
}
}
tr.Close();
}
}
此时如何通过我的更改将记录写回来?
答案 0 :(得分:0)
在这里,我没有对此进行测试,因为我不确定你要做什么,但是这样的事情......这就是我要做的。
private void ShipRecords()
{
StreamWriter writer;
StreamReader reader;
try
{
writer = new StreamWriter(outputFile);
reader = new StreamReader(inputFile);
string line;
string[] columns;
while ((line = reader.ReadLine()) != null)
{
columns = line.Split('\t'); // you may want to check that you get the correct number of columns etc.
if (columns[0] == "A" && PublishRecord(columns))
columns[0] = "P";
writer.WriteLine(String.Join("\t", columns));
}
}
catch { }
finally
{
try { writer.Close(); }
catch { }
try { reader.Close(); }
catch { }
}
}
我建议您避免使用匈牙利语案例样式。
答案 1 :(得分:0)
我不确定它是否是一个选项,但您也可以更改方法的签名以返回
IEnumerable<string>
并使用
yield return "stringValue";
你的循环中的。 然后调用者可以在常规的foreach循环中处理写作。