我是c#的新手 在此之前,我尝试使用streamreader读取文本框中的结束数据。 现在......我试图逐行将数据从文本框移动到另一个流读取器 我试试这段代码
String filename = ContentBox.Text;
if (File.Exists(filename))
{
using (StreamReader fileReader = new StreamReader(filename))
{
String fileRow = "";
while ((fileRow = fileReader.ReadLine()) != null)
{
String[] fileDataField = fileRow.Split(new string[] { "\r\n\t", " " }, StringSplitOptions.RemoveEmptyEntries);
String ListSplitLineByLine = "";
//line = line.Replace("\r\n", " ");
//String[] SplitItemLineByLine1 = (line).Split(' ');
foreach (string lineByLine in fileDataField)
{
ListSplitLineByLine += "\r\n" + lineByLine;
}
txtCaseInputs.Text = ListSplitLineByLine.Trim();
GenCombItems();
}
//Close the StreamReader
fileReader.Close();
}
}
这不是错误但是当我跑的时候什么都没有...... 是我的编码错误吗?
答案 0 :(得分:0)
在每次迭代中,您将该迭代的结果分配给txtCaseInputs.Text
,将“结束”写入上一次迭代的结果。
如果您希望文本框包含文件中所有字段的串联,则应附加每次迭代而不是分配:
txtCaseInputs.Text += ListSplitLineByLine.Trim();
在开始整个过程之前,不要忘记清除文本框的内容。
答案 1 :(得分:0)
在那里放几个调试语句,直到你正常工作。
您可以随时将其删除。
public string ZTest(string contentBoxText) {
string retValue = null;
string filename = contentBoxText;
if (File.Exists(filename)) {
using (StreamReader fileReader = new StreamReader(filename)) {
string fileRow;
while ((fileRow = fileReader.ReadLine()) != null) {
string[] fileDataField = fileRow.Split(new string[] { "\r\n\t", " " }, StringSplitOptions.RemoveEmptyEntries);
string ListSplitLineByLine = "";
foreach (string lineByLine in fileDataField) {
ListSplitLineByLine += "\r\n" + lineByLine;
}
if (!String.IsNullOrEmpty(ListSplitLineByLine)) {
retValue = ListSplitLineByLine.Trim();
GenCombItems();
} else {
MessageBox.Show("No data");
}
}
// Line below is not necessary. Handled by the "using" clause.
// fileReader.Close();
}
} else {
MessageBox.Show("File Not Found");
}
return retValue;
}