public static XMLBuilder.XMLElement[] Remove(XMLBuilder.XMLElement[] arrElements, int iIndex) { XMLBuilder.XMLElement[] tmparr = new XMLBuilder.XMLElement[512]; for (int i = 0; i < Array.IndexOf(arrElements, null); i++) { if (i != iIndex) { tmparr[Array.IndexOf(tmparr, null)] = arrElements[i]; } } return(tmparr); }
public static XMLBuilder.XMLElement[] Add(XMLBuilder.XMLElement[] arrElements, int iIndex, XMLBuilder.XMLElement xmleElement) { XMLBuilder.XMLElement[] tmparr = new XMLBuilder.XMLElement[512]; for (int i = 0; i < Array.IndexOf(arrElements, null); i++) { if (i == iIndex) { tmparr[Array.IndexOf(tmparr, null)] = xmleElement; } tmparr[Array.IndexOf(tmparr, null)] = arrElements[i]; } if (tmparr[iIndex] == null) { tmparr[iIndex] = xmleElement; } return(tmparr); }
public int addElementAt(string strElement, string[,] arrAttributes, string strAttributes, string strText, int iElemIndex, int iElemLevel) { if (iElemIndex < 0) { iElemIndex = (Array.IndexOf(this.elements, null) > 0) ? Array.IndexOf(this.elements, null) - 1 : 0; } if (iElemLevel < 0) { iElemLevel = this.elements[iElemIndex - 1].level; } XMLElement Elem; int iAddIndex = iElemIndex; if (iElemIndex > 0) { for (int i = iElemIndex; i < Array.IndexOf(this.elements, null); i++) { Console.WriteLine(this.elements[i].level + " > " + (iElemLevel + 1)); if (this.elements[i].level > iElemLevel + 1) { iAddIndex++; } else if (this.elements[i].level <= this.elements[iElemIndex].level) { break; } } Elem = new XMLBuilder.XMLElement(strElement, strAttributes, arrAttributes, strText, iElemLevel + 1, this); } else { Elem = new XMLBuilder.XMLElement(strElement, strAttributes, arrAttributes, strText, 1, this); } this.elements = XMLUtilities.Add(this.elements, iAddIndex, Elem); for (int i = iAddIndex; i < Array.IndexOf(this.elements, null); i++) { this.elements[i].index = i; } return(iAddIndex); }
public int moveElement(int iElem1Index, int iElem2Index) { int i; int iNewIndex = -1; XMLBuilder.XMLElement[] arrElem1Elements = new XMLBuilder.XMLElement[512]; arrElem1Elements[0] = this.elements[iElem1Index]; XMLBuilder.XMLElement[] arrElem2Elements = new XMLBuilder.XMLElement[512]; arrElem2Elements[0] = this.elements[iElem2Index]; for (i = iElem1Index; i < Array.IndexOf(this.elements, null); i++) { if (this.elements[i].level > this.elements[iElem1Index].level) { arrElem1Elements[Array.IndexOf(arrElem1Elements, null)] = this.elements[i]; } else if (i > iElem1Index) { break; } } for (i = iElem2Index; i < Array.IndexOf(this.elements, null); i++) { if (this.elements[i].level > this.elements[iElem2Index].level) { arrElem2Elements[Array.IndexOf(arrElem2Elements, null)] = this.elements[i]; } else if (i > iElem2Index) { break; } } XMLBuilder.XMLElement[] arrMovedElements = new XMLBuilder.XMLElement[512]; if (iElem1Index < iElem2Index) { // start to the 1st element for (i = 0; i < iElem1Index; i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } // end of 1st element to end of 2nd element for (i = iElem1Index + Array.IndexOf(arrElem1Elements, null); i < iElem2Index + Array.IndexOf(arrElem2Elements, null); i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } // 1st element and all child elements iNewIndex = Array.IndexOf(arrMovedElements, null); for (i = 0; i < Array.IndexOf(arrElem1Elements, null); i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = arrElem1Elements[i]; } // end of 2nd element to end for (i = iElem2Index + Array.IndexOf(arrElem2Elements, null); i < Array.IndexOf(this.elements, null); i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } this.elements = arrMovedElements; } else { // start to the 2nd element for (i = 0; i < iElem2Index; i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } // 1st element and all child elements iNewIndex = Array.IndexOf(arrMovedElements, null); for (i = 0; i < Array.IndexOf(arrElem1Elements, null); i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = arrElem1Elements[i]; } // 2nd element to 1st element for (i = iElem2Index; i < iElem1Index; i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } // end of 1st element to end for (i = iElem1Index + Array.IndexOf(arrElem1Elements, null); i < Array.IndexOf(this.elements, null); i++) { arrMovedElements[Array.IndexOf(arrMovedElements, null)] = this.elements[i]; } this.elements = arrMovedElements; } for (i = 0; i < Array.IndexOf(this.elements, null); i++) { this.elements[i].index = i; } return(iNewIndex); }