Reputation: 224
Is it possible to validate a column based from a textfile?
DataGridView
:What I want to do is Validate the KPI column from a .txt file
As we can see, the notepad contains four items.
If a user inputs anything other than this 4, it would display an error. Saying "_____________ is not Valid".
What I am currently using is this:
public static void Validate_KPI(DataGridView dataGridView)
{
FileStream fs = new FileStream(@"C:\brandon\InvalidKPI.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.BaseStream.Seek(0, SeekOrigin.End);
StringBuilder sb = new StringBuilder();
//decimal num;
if (dataGridView.ColumnCount > 2)
{
sw.WriteLine("----------------------------");
sw.WriteLine("");
for (int i = 0; i < dataGridView.RowCount; i++)
{
//MessageBox.Show(dataGridView.Rows[i].Cells["KPI"].Value.ToString());
if (dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Total") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Revenue") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sales Volume") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Gross Con") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Brand Con") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Employees") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Payroll and Benefits") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of Absent") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("MANCOM") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sales") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Marketing") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Finance") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Logistics") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Manufacturing") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("HR") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("IT") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Resignation") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Turnover Rate") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sell in volumes") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sell out volumes") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Weekly recognized sales") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Average selling price per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Discounts per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("FTH per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Gross con per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Advertising expense") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Promotion expense") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Brand con per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Variable manufacturing cost per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Average selling price per HL") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Brand con") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Gross con") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Discounts") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("FTH") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Fixed Costs") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Operating Income") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("EBITDA") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Brewing Utilization") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Plant Efficiency") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Packaging Utilitization") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Product Quality Index (PQI)") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Cost of Non Conformance (CoNC) (in USD)") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Number of complaints from Trade") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of dealers") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of additions") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of resignations") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("% of active") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Inventory Days level") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Yield") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of active") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Average yield") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of sponsored/promo outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("yield of sponsored/promo outlets)") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of draught outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("yield of draught outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of dealers") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("% of active Draught Outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains(" Yield(Total)") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("yield of sponsored/promo outlets") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Wholesalers days level (where applicable)") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("# of wholesalers") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Total # of Sponsored") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("wholesaler total") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Total") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Past Due") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Within Terms") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Actual") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sell in volumes") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Sell out volumes") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Brand") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Adjuncts") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Hops - Asia") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Hops - Europe") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Malt - Asia") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Malt - Local") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Malt - Europe") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Finished Goods") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Slow Moving") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Obsoletes") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Container Rate of Return") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Container") ||
dataGridView.Rows[i].Cells["KPI"].Value.ToString().Contains("Adjuncts"))
{
//sb.AppendLine(dataGridView.Rows[i].Cells["KPI"].Value.ToString() + " is Valid.");
}
else if (dataGridView.Rows[i].Cells["KPI"].Value.ToString() == null || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "" || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "KPI" || dataGridView.Rows[i].Cells["KPI"].Value.ToString() == "Category")
{
}
else
{
//MessageBox.Show("Row not decimal:" + " [ " + dataGridView[h, i].Value.ToString() + "] in column " + dataGridView.Columns[h].Name);
sb.AppendLine(dataGridView.Rows[i].Cells["KPI"].Value.ToString() + " is **NOT** Valid.");
}
}
}
if (sb.ToString() == null || sb.ToString() == "" || sb.Length < 1)
{
sw.WriteLine("No Errors!");
sw.WriteLine("");
sw.WriteLine("----------------------------");
MessageBox.Show("No errors!");
Process.Start(@"C:\brandon\InvalidKPI.txt");
}
else if (sb.ToString() != null || sb.ToString() != "")
{
sw.WriteLine(sb.ToString());
sw.WriteLine("----------------------------");
MessageBox.Show(sb.ToString());
Process.Start(@"C:\brandon\InvalidKPI.txt");
}
sw.Flush();
sw.Close();
}
I want to validate a column from a .txt file.
Upvotes: 0
Views: 54
Reputation: 224
Managed to do it by using this.
List<string> fields = new List<string>();
var lines = File.ReadAllLines(@"\\SMITSHOME01\Home_Folder_1$\vhernandez\My Documents\Visual Studio 2013\validate.txt");
for (int i = 0; i < lines.Length; i++)
{
fields.Add(lines[i]);
}
Upvotes: 0
Reputation: 188
You can use enum which contains all string keys and then iterate throught each row and each enum element.
You can iterate throught enum using this:
foreach (DatagridViewRow row in dataGridView.Rows)
{
foreach (Code code in Enum.GetValues(typeof(Code)))
{
if(!row.Cells["KPI"].Value.ToString().Contains(code))
sb.AppendLine(dataGridView.Rows[i].Cells["KPI"].Value.ToString() + " is **NOT** Valid.");
}
}
You can also use foreach (var suit in ((Suit[])Enum.GetValues(typeof(Suit))).Distinct()))
if you have duplicates.
Upvotes: 1