/// <summary>
        /// doorzoekt xml file naar eerste "rootbegin" text en vervangt dan "count"
        /// door nieuwe aantal. De tekst wordt "hard" overschreven. We gaan ervan uit dat we
        /// 00000000000 dus 11 cijfers kunnen wegschrijven!
        /// </summary>
        /// <param name="xmlFile"></param>
        /// <param name="rootBegin"></param>
        /// <param name="count"></param>
        public static void OverwriteCOUNTAttribute(string xmlFile, string rootBegin, int count)
        {
            long countPos = -1;

            using (TextPositionFileReader textReader = new TextPositionFileReader(xmlFile))
            {
                while (!textReader.EOF)
                {
                    long   linePosition;
                    string line = textReader.ReadLine(out linePosition);
                    if (line.Length > 0)
                    {
                        int index = line.IndexOf(rootBegin);
                        if (index >= 0)
                        {
                            // gevonden root
                            // Nu count opzoeken
                            index = line.IndexOf("count=\"");
                            if (index >= 0)
                            {
                                countPos = linePosition + index + 7;
                                // We zijn klaar
                                break;
                            }
                        }
                    }
                } //while
            }     //using

            if (countPos >= 0)
            {
                using (FileStream fs = new FileStream(xmlFile, FileMode.Open, FileAccess.ReadWrite))
                {
                    fs.Seek(countPos, SeekOrigin.Begin);
                    byte[] data = System.Text.Encoding.ASCII.GetBytes(string.Format("{0:00000000000}", count));
                    if (data.Length != 11)
                    {
                        // MOET 11 posities zijn!
                        return;
                    }
                    fs.Write(data, 0, data.Length);
                } //using
            }
        }
        public static bool ScanXMLFile(string xmlFile, string startText, string endText, out List <XMLLocationEntry> locationList, XMLPieceCompleted dXMLPieceCompleted)
        {
            bool result = false;

            locationList = new List <XMLLocationEntry>();

            try
            {
                using (TextPositionFileReader textReader = new TextPositionFileReader(xmlFile))
                {
                    XMLLocationEntry entry     = new XMLLocationEntry();
                    StringBuilder    textEntry = new StringBuilder(1024 * 50);

                    while (!textReader.EOF)
                    {
                        long   linePosition;
                        string line = textReader.ReadLine(out linePosition);
                        if (line.Length > 0)
                        {
                            if (entry.Location < 0)
                            {
                                // We zoeken een start
                                int startIndex = line.IndexOf(startText);
                                if (startIndex >= 0)
                                {
                                    // We hebben een start tag gevonden!
                                    entry.Location = linePosition + startIndex;

                                    // voeg data toe aan string
                                    textEntry.Append(line.Substring(startIndex));
                                }
                            }
                            else
                            {
                                // We zoeken een "eind punt"
                                int startIndex = line.IndexOf(endText);
                                if (startIndex >= 0)
                                {
                                    // We hebben een end tag gevonden!
                                    entry.Length = (linePosition + startIndex + endText.Length) - entry.Location;

                                    textEntry.Append(line.Substring(0, startIndex + endText.Length));

                                    // Kijk of we het "stuk naar xml kunnen converten (zoja, dan zal het een correct
                                    // stuk zijn)
                                    bool        addEntry = true;
                                    XmlDocument xmlDoc   = new XmlDocument();
                                    try
                                    {
                                        xmlDoc.LoadXml(textEntry.ToString());
                                        // Nu event afvuren zodat we wat mee gedaan kan worden
                                        if (dXMLPieceCompleted != null)
                                        {
                                            addEntry = dXMLPieceCompleted(xmlDoc, entry);
                                        }
                                    }
                                    catch
                                    {
                                        addEntry = false;
                                    }

                                    if (addEntry)
                                    {
                                        locationList.Add(entry);
                                    }

                                    // We gaan verder en begin met zoeken naar nieuwe begin tag
                                    entry     = new XMLLocationEntry();
                                    textEntry = new StringBuilder(1024 * 50);
                                }
                                else
                                {
                                    // We zitten ergens tussen begin en eind tag
                                    textEntry.Append(line);
                                }
                            }
                        }
                    } //while;
                }     //using

                result = true;
            }
            catch { }

            return(result);
        }