Okay, new version is about to go up. I have not discovered whats causing issues for certain users unable to load specific files in question instead, I have done the following to make the program a little more robust on errors.
StreamReader strRead = new StreamReader(this.fileNamePath);
if (strRead != null)
while ((Line = strRead.ReadLine()) != null)
if ((Line != null) && (Line != ""))
//Ignore the first line.
this.ROWS = this.ROWS - 1;
stringFeedback = "File imported: " + fileNamePath + System.Environment.NewLine +
"Imported " + this.ROWS + " points of data." + System.Environment.NewLine +
"Frames: " + this.framesTossed + " points of bad data tossed." +
"CPU Frames: " + this.cpuframesTossed + " points of bad data tossed." +
"GPU Frames: " + this.gpuframesTossed + " points of bad data tossed.";
FileLoaded = true;
tabPage2.Enabled = true;
tabPage3.Enabled = true;
tabPage4.Enabled = true;
catch (Exception bug)
String temp = "";
temp = "Exception: " + bug.ToString() + System.Environment.NewLine +
"Exception Message: " + bug.Message + System.Environment.NewLine +
"Exception Source: " + bug.Source + System.Environment.NewLine;
MessageBox.Show("An exception occured performing the calculations." +
System.Environment.NewLine + temp);
MessageBox.Show("Nothing was read from the file, quite possibly due to the FILE" +
" having READ access blocked." + System.Environment.NewLine +
"Try running the program as Administrator to see if that helps or ensure" +
" the file is not locked by Battlefield 4 or another program such as Notepad or Excel.");
catch (Exception bug)
MessageBox.Show("An exception occured during the reading." + System.Environment.NewLine +
"Exception: " + bug.ToString());
Basically, three things have changed.
You can't use any of the other tabs until the log file has been loaded. Just to rule out some one is going straight to graphing or frame smoothing.
There are potentially two different Exceptions occurring, one at file loading/reading, the other is possibly during the math. I have now separated them into two separate outputs to the user.
Secondly, the program will not continue to load now with a third redundant check to see if any data was stored.
Theoretically, one could load a file with zero lines, I had not anticipated that issue, and would have passed successfully through all my other Boolean tests.
I am just putting some final touches on graph outputs, then the release should be in main shortly.
Also note, frame times under 1.0 ms are not counted, nor are frame times above 500 ms. This is to drive down terribly bad data on averages or insanely low minimum/maximum FPS. These are now additionally tossed data points. I am sure it is understood, but as a bit of a scientist, I want to disclose exactly whats going on behind the scenes with tossed datapoints. I will post additional information in Main.Edited by RagingCain - 2/27/14 at 1:08pm