【发布时间】:2016-08-23 09:49:23
【问题描述】:
我有一个应用程序,ST-LINK 也对固件进行编程,然后报告缓冲区大小、数据位等。
我有一个存储这些结果的文本文件。但是,一个批次可能有很多电路板,每次都需要增加一个产品编号。所以我想做的是让程序查看最后一个板报告,看看它是否具有相同的批次号(因为批次将同时完成),如果它确实将产品编号增加 1。如果它没有相同的批号,则必须是新批次,产品编号为1。
目前产品编号没有更新。每次它返回 1。 这是我的代码:
public int previousNumber()
{
int pNumber = 0;
string line; //set string
int counter = 0; //create int
int numberOfLines = File.ReadLines("report.txt").Count();
System.IO.StreamReader file = new System.IO.StreamReader("report.txt"); //create streamreader
while ((line = file.ReadLine()) != null) //until no empty lines
{
string[] allLines = File.ReadAllLines("report.txt"); //read in report file
if (allLines[numberOfLines - 9] == batchNumberTextBox.Text)
{
pNumber = int.Parse(allLines[numberOfLines - 7]);
}
else
{
pNumber = 0;
}
}
file.Close();
pNumber = pNumber + 1;
return pNumber;
}
private void saveReport()
{
getValues();
int number = previousNumber();
BatchNumber = batchNumberTextBox.Text;
SerialNumber = serialNumberTextBox.Text;
ProductNumber = number;
string ProductNumberString = ProductNumber.ToString();
string inDate = DateTime.Now.ToString("f",
CultureInfo.CreateSpecificCulture("en-UK")); //set date in that format
try
{
board newBoard = new board(BatchNumber, SerialNumber, ProductNumberString, BufferSize, StopBits, Parity, DataBits, baudRate, inDate);
newBoard.Save("report.txt");
File.AppendAllText("batches.txt", "BATCH NUMBER: " + BatchNumber + " - DATE: " + inDate + Environment.NewLine);
System.Windows.MessageBox.Show("Report Saved");
}
catch
{
System.Windows.MessageBox.Show("Save failed"); //tell user save failed
}
}
这是报告的文本文件:
你能在任何地方看到它为什么不能工作吗?我觉得我可能对此采取了一种奇怪的方式,所以如果您能想到更好的方法,将不胜感激!
提前谢谢你, 露西
【问题讨论】: