public class MyClass { [Start] public void MyVoid() { string sPages = string.Empty; ActionCallingContext oCTX1 = new ActionCallingContext(); CommandLineInterpreter oCLI1 = new CommandLineInterpreter(); oCTX1.AddParameter("TYPE", "PAGES"); oCLI1.Execute("selectionset", oCTX1); oCTX1.GetParameter("PAGES", ref sPages); string[] sarrPages = sPages.Split(';'); string sPageName = sarrPages[0]; //ensure unique level codes: //Funktionale Zuordnung -> $ //Aufstellungsort -> % sPageName = sPageName.Replace("==", "$").Replace("++", "%"); //get location from pagename string sAnlage = ExtractLevelName(sPageName, "="); string sEinbauort = ExtractLevelName(sPageName, "+"); MessageBox.Show(String.Format("Seitenname: {0}\nAnlage: {1}\nEinbauort: {2}", sPageName, sAnlage, sEinbauort)); } private string ExtractLevelName(string sPage, string sLevel) { string sLevelName = string.Empty; if (sPage.Contains(sLevel)) { //check existing level codes (remove all text of following level code) #region Funktionale Zuordnung if (sLevel == "$") { if (sPage.Contains("=")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("=") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("%")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("%") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("+")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("+") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("&")) { //check if document type is at beginning if (sPage.StartsWith("&")) { //no extracting needed, when document type at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("&") - sPage.IndexOf(sLevel)); goto DONE; } } if (sPage.Contains("#")) { //check if user-defined is at beginning if (sPage.StartsWith("#")) { //no extracting needed, when user-defined at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } #endregion #region Anlage if (sLevel == "=") { if (sPage.Contains("%")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("%") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("+")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("+") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("&")) { //check if document type is at beginning if (sPage.StartsWith("&")) { //no extracting needed, when document type at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("&") - sPage.IndexOf(sLevel)); goto DONE; } } if (sPage.Contains("#")) { //check if user-defined is at beginning if (sPage.StartsWith("#")) { //no extracting needed, when user-defined at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } #endregion #region Aufstellungsort if (sLevel == "%") { if (sPage.Contains("+")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("+") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("&")) { //check if document type is at beginning if (sPage.StartsWith("&")) { //no extracting needed, when document type at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("&") - sPage.IndexOf(sLevel)); goto DONE; } } if (sPage.Contains("#")) { //check if user-defined is at beginning if (sPage.StartsWith("#")) { //no extracting needed, when user-defined at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } #endregion #region Einbauort if (sLevel == "+") { if (sPage.Contains("&")) { //check if document type is at beginning if (sPage.StartsWith("&")) { //no extracting needed, when document type at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("&") - sPage.IndexOf(sLevel)); goto DONE; } } if (sPage.Contains("#")) { //check if user-defined is at beginning if (sPage.StartsWith("#")) { //no extracting needed, when user-defined at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } #endregion #region Dokumentenart if (sLevel == "&") { //check if document type is at beginning if (sPage.StartsWith("&")) { //check further existing structures if (sPage.Contains("$")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("$") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("=")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("=") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("%")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("%") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("+")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("+") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("#")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); goto DONE; } else { //document typ NOT at beginning if (sPage.Contains("#")) { if (sPage.StartsWith("#")) { //no extracting needed, when user-defined at beginning } else { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("#") - sPage.IndexOf(sLevel)); goto DONE; } } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } } #endregion #region Benutzerdefiniert if (sLevel == "#") { //check if user defined is at beginning if (sPage.StartsWith("#")) { //check further existing structures if (sPage.Contains("$")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("$") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("=")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("=") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("%")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("%") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("+")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("+") - sPage.IndexOf(sLevel)); goto DONE; } if (sPage.Contains("&")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("&") - sPage.IndexOf(sLevel)); goto DONE; } //no further structure identifier existing sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); goto DONE; } else { //document typ NOT at beginning if (sPage.Contains("#")) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); goto DONE; } } } #endregion } DONE: //remove page no if (sLevelName == string.Empty && sPage.Contains(sLevel)) { sLevelName = sPage.Substring(sPage.IndexOf(sLevel), sPage.IndexOf("/") - sPage.IndexOf(sLevel)); } if (sLevelName != string.Empty) { sLevelName = sLevelName.Replace(sLevel, string.Empty); } return sLevelName; } }