Dear All,
I am Trying the code below.
input in textbox
[12-A
12-B]3 =======> IF I WANT TO CHANGE TWO DIGITS OR THREE DIGITS IN PLACE OF 3 (ONE DIGIT ) THEN NOT GET CORRECT SUM.
---------
72
Below is my code
private void btnWpApply_Click(object sender, EventArgs e) { try { int combinedSum = 0; for (char letter = 'A'; letter <= 'F'; letter++) { sum = 0; var stack = new Stack<string>(); int stackSum = 0; foreach (string line in txtWpPattern.Lines) { string temp = line.Replace(".", "").Replace(" ", ""); // remove dots and spaces if (temp == "") continue; // ignore blank line bool containsLetter = (line.IndexOf(letter) > -1); char first = temp[0]; char last = temp[temp.Length - 1]; if (Char.IsDigit(first)) { string numStr = temp.Split('-')[0]; if (!containsLetter) numStr = "0"; if (stack.Count == 0) { sum += int.Parse(numStr); } else { stack.Push(numStr); } if (Char.IsDigit(last)) { int multiplier = last - 48; char bracket = temp[temp.Length - 2]; int total = 0; char openChar = '\0'; string tempStr; if (bracket == '}') openChar = '{'; else if (bracket == ']') openChar = '['; else if (bracket == ')') openChar = '('; else if (bracket == '>') openChar = '<'; do { tempStr = stack.Pop(); int num; if (int.TryParse(tempStr, out num)) total += num; } while (tempStr[0] != openChar); stackSum = (stackSum + total) * multiplier; if (stack.Count == 0) { sum += stackSum; stackSum = 0; } } } else { stack.Push(first.ToString()); int index = 1; while (true) { if (Char.IsDigit(temp[index])) break; stack.Push(temp[index].ToString()); index++; } string numStr2 = temp.Substring(index).Split('-')[0]; if (!containsLetter) numStr2 = "0"; stack.Push(numStr2); if (Char.IsDigit(last)) { int multiplier = last - 48; char bracket = temp[temp.Length - 2]; int total = 0; char openChar = '\0'; string tempStr; if (bracket == '}') openChar = '{'; else if (bracket == ']') openChar = '['; else if (bracket == ')') openChar = '('; else if (bracket == '>') openChar = '<'; do { tempStr = stack.Pop(); int num; if (int.TryParse(tempStr, out num)) total += num; } while (tempStr[0] != openChar); stackSum += (stackSum + total) * multiplier; if (stack.Count == 0) { sum += stackSum; stackSum = 0; } } } } combinedSum += sum; } txtWpResult.Text = String.Format(combinedSum + " = E/R".ToString()); label1.Text = String.Format(combinedSum.ToString()); } catch (Exception ex) { MessageBox.Show("Please Enter Correct Inpit Strng Like 2-A"); } }
Please help i want correct sum of textbox input methord wherre i can change multi timing with two/three digits.like between 10-999
Varta