Ich fange eine Ausnahme in meinem Code für einen falschen Dateityp. Dann möchte ich meine Datei ändern und die richtige Datei verwenden. Wie schließe ich die Ausnahme, um in der neuen Datei frisch auszusehen und sie zu verarbeiten?Wie starte ich mit einer neuen Datei
unten ist mein Code. Eins ist eine Hauptfunktion. die zweite ist eine aufgerufene Funktion.
Hauptfunktion.
//data file process button
private void button9_Click(object sender, EventArgs e)
{
try
{
panel1.Visible = false; // File paths (Admin Access))
panel3.Visible = true; // File process status
label6.Visible = true; // label - File process status
panel4.Visible = false; // Admin authenticate
InitializeFile();
ParseListFileData();
ListArrayFileData();
CleanDesiredData();
GetRRData();
GetLecoData();
//cleanup();
textBox5.Text += "All RR & Leconum data processing from file - " + textfilename + " completed." + "\r\n";
textBox5.Text += "Please click EXIT to close HORIBA program" + "\r\n";
}
catch(IndexOutOfRangeException)
{
//cleanup();
textBox5.Text += "Bad File" + "\r\n";
datafilepath = "";
textBox5.Text += "Select correct file" + "\r\n";
}
}
Die aufgerufene Funktion ParseListFileData();
public void ParseListFileData()
{
//Opens file and uses for processing
System.IO.StreamReader sr = new
System.IO.StreamReader(datafilepath);
try
{
//while loop to read file till end of file
while (!sr.EndOfStream)
{
//split data in file into differend fields
var Row = sr.ReadLine();
var values = Row.Split(',');
ColmnA.Add(values[0]);
ColmnB.Add(values[1]);
ColmnC.Add(values[2]);
ColmnD.Add(values[3]);
ColmnE.Add(values[4]);
ColmnF.Add(values[5]);
ColmnG.Add(values[6]);
ColmnH.Add(values[7]);
ColmnI.Add(values[8]);
ColmnJ.Add(values[9]);
ColmnK.Add(values[10]);
ColmnL.Add(values[11]);
ColmnM.Add(values[12]);
ColmnN.Add(values[13]);
}
sr.Close();
sr.Dispose();
}
catch (IndexOutOfRangeException e)
{
sr.Close();
sr.Dispose();
datafilepath = "";
//cleanup();
//print(e.Message.("Error encountered");
textBox5.Text += "File type not correct or missing data in file "+ e + "\r\n";
}
}
Sobald ich eine neue gute Arbeitsdatei auswählen, scheint die alte Ausnahme geschlossen, aber die alte Datei bleibt nach wie vor im Einsatz und zeigt eine Ausnahme auf einem anderen Funktion. Obwohl ich benutze dispose(), um die Streamreader-Ressourcen zu schließen.
Wie kann ich mit einer neuen Datei neu beginnen.
Was meinen Sie mit dem Schließen der Ausnahme? Sie öffnen oder schließen niemals eine Ausnahme. Sie können sich auf die Datei beziehen. Was wäre geschlossen, wenn Sie die sr.Close() aufrufen. Wenn der Datafile-Pfad nicht gültig ist, behandeln Sie die Ausnahme nicht. Sie sollten die Stream-Deklaration im try-Block verschieben. –
Wenn Sie das Gleiche zweimal machen wollen, aber eine Variable ändern, setzen Sie das Ganze in eine Funktion und übergeben Sie die Variable als Parameter. Dann rufe die Funktion an. O/T, Ihre Kommentare zu dem Code, der auf Ihre Steuerelemente verweist, sind sehr schön zu sehen, aber Sie können noch besser gehen: Im Formular-Designer können Sie die Namen der Steuerelemente selbst ändern: 'panel1' kann in' filePathsPanel' umbenannt werden , beispielsweise. –
Wenn ich eine Ausnahme bekomme, drucke ich einen schlechten Dateityp. Ich möchte, dass der Benutzer den richtigen Dateityp auswählt und es erneut versucht. Wenn jedoch eine neue korrekte Datei verwendet wird, scheint das Programm immer noch auf die alte Datei zu schauen. Wenn ich also das Programm nicht schließe und neu beginne, kann ich keine neue Datei verwenden und sie verarbeiten, selbst nachdem ich die Ausnahme abgefangen habe. Deshalb wollte ich wissen, wie ich mit einer neuen Datei neu anfangen kann, nachdem ich eine Ausnahme gefangen habe – habeebsiddique