public static string GetItem(string lin, string ch, int pos, string brackets) { if (lin.Length == 0 || ch.Length == 0) { return(""); } string bracketarray = ""; string part = ""; int foundnum = 0; for (int i = 1; i <= lin.Length; i++) { string c = VbX.Mid(lin, i, 1); if (c == ch & string.IsNullOrEmpty(bracketarray)) { if (foundnum == pos) { return(part); } else { part = ""; foundnum = foundnum + 1; } } else { part = part + c; } // MsgBox(c) if (c == VbX.Chr(34) & VbX.InStr(brackets, VbX.Chr(34)) > 0) { if (VbX.Right(bracketarray, 1) == VbX.Chr(34) & !string.IsNullOrEmpty(bracketarray)) { bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1); } else { bracketarray = bracketarray + VbX.Chr(34); } //part = part + c } else if ((c == "(" | c == ")") & VbX.InStr(brackets, "(") > 0) { if (VbX.Right(bracketarray, 1) == "(" & c == ")" & !string.IsNullOrEmpty(bracketarray)) { bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1); } else { bracketarray = bracketarray + "("; } //part = part + c } else if ((c == "{" | c == "}") & VbX.InStr(brackets, "{") > 0) { if (VbX.Right(bracketarray, 1) == "{" & c == "}" & !string.IsNullOrEmpty(bracketarray)) { bracketarray = VbX.Left(bracketarray, VbX.Len(bracketarray) - 1); } else { bracketarray = bracketarray + "{"; } //part = part + c } } if (foundnum == pos) { return(part); } if (pos == -1) { return(foundnum.ToString()); } return(""); }