ich eine Anwendung haben, die ein ST-LINK Programme Firmware zu und dann einen Bericht über die Puffergröße hergestellt ist, Datenbits usw.kann nicht in einer Textdatei eine Nummer lokalisieren gefunden C#
ich eine Textdatei welche speichert diese Ergebnisse. Es kann jedoch viele Leiterplatten in einer Charge geben und jedes Mal müssen sie ihre Produktnummer um eins erhöhen. Also, was ich tun möchte, ist das Programm zu bekommen, um den letzten Board-Bericht zu sehen, um zu sehen, ob es die gleiche Chargennummer hat (wie alle Chargen auf einmal gemacht werden), und wenn es die Produktnummer um 1 erhöht hat nicht die gleiche Chargennummer, dann muss es eine neue Charge sein und die Produktnummer ist 1.
Im Moment wird die Produktnummer nicht aktualisiert. Jedes Mal, es ist 1. Hier Rückkehr ist mein Code:
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
}
}
Und hier ist die Textdatei für die Berichte:
kann man überall sehen, warum kann es nicht funktionieren werden? Ich habe das Gefühl, dass ich etwas merkwürdiger geworden bin, wenn du dir einen besseren Weg vorstellen kannst, wäre es sehr geschätzt!
Vielen Dank im Voraus, Lucy
perfekt danke Ihnen sehr! – lucycopp