Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
End While
'Если мы оказались в этом месте программы, не покинув
'XML-дескриптора UserInfo, то с XML-данными, которые мы считываем,
'что-то не так
Throw New Exception("He найден элемент UserInfo в XML-документе!")
finished reading_wanted_data:
'Закрыть файл, поскольку работа с ним закончена!
xmlReader.Close
End Sub
'--------------------------------------------------------
'Вспомогательный код, ответственный за принятие решения
'относительно того, в какое состояние необходимо перейти,
'когда встречается закрывающий дескриптор
'--------------------------------------------------------
Private Shared Function LoadHelper_EndElementEncountered( _
ByRef currentReadLocation As ReadLocation) As Boolean
Select Case (currentReadLocation)
'Если мы покидаем узел Name, то должны вернуться
'обратно в узел UserInfo
Case ReadLocation.inName
currentReadLocation = ReadLocation.inUserInfo
'Если мы покидаем узел FirstName, то должны вернуться
'обратно в узел Name
Case ReadLocation.inFirstName
currentReadLocation = ReadLocation.inName
'Если мы покидаем узел LastName, то должны вернуться
'обратно в узел Name
Case ReadLocation.inLastName
currentReadLocation = ReadLocation.inName
'Если мы покидаем узел UserID, то должны вернуться
'обратно в узел UserInfo
Case ReadLocation.inUserID
currentReadLocation = ReadLocation.inUserInfo
'Если мы покидаем узел UserInfo, то мы только что
'закончили чтение данных в узлах UserID, FirstName
'и LastName
'
'Можно выйти из цикла, поскольку у нас уже есть вся
'информация, которую мы хотели получить!
Case ReadLocation.inUserInfo
Return False 'Анализ должен быть прекращен
End Select
Return True
'Продолжить анализ
End Function
Private Shared Sub LoadHelper_NewElementEncountered( _
ByVal nodeName As String, _
ByRef currentReadLocation As ReadLocation)
'----------------------------------------------------
'Мы вошли в новый элемент!
'В какое состояние переход возможен, зависит от того,
'в каком состоянии мы находимся в данный момент
'----------------------------------------------------
Select Case (currentReadLocation)
'Если мы находимся в узле AllMyData, то переход возможен
'в узлы, которые указаны ниже
Case (ReadLocation.inAllMyData)
If (nodeName = XML_USERINFO_TAG) Then
currentReadLocation = ReadLocation.inUserInfo
End If
'Если мы находимся в узле UserInfo, то переход возможен
'в узлы, которые указаны ниже
Case (ReadLocation.inUserInfo)
If (nodeName = XML_USERID_TAG) Then
currentReadLocation = ReadLocation.inUserID
ElseIf (nodeName = XML_NAMEINFO_TAG) Then
currentReadLocation = ReadLocation.inName
End If
'Если мы находимся в узле Name, то переход возможен
'в узлы, которые указаны ниже
Case (ReadLocation.inName)
If (nodeName = XML_FIRSTNAME_TAG) Then
currentReadLocation = ReadLocation.inFirstName
ElseIf (nodeName = XML LASTNAME_TAG) Then
currentReadLocation = ReadLocation.inLastName
End If
End Select
End Sub
End Class
Примеры к главе 11 (производительность и графика)
Листинг 11.1. Заполнение данными и очистка от них элементов управления TreeView с использованием альтернативных стратегий
'----------------------------------------------------------------------------
'Примечание #1: В этом примере используется класс PerformanceSampling,
' определённый ранее в данной книге. Убедитесь в том, что
' вы включили этот класс в свой проект.
'Примечание #2: Этот код необходимо включить в класс Form, содержащий элемент
' управления TreeView и кнопки Button, к которым подключены
Поделиться:
Популярные книги
Я снова князь. Книга XXIII
23. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Наследие Маозари 7
7. Наследие Маозари
Фантастика:
боевая фантастика
юмористическое фэнтези
постапокалипсис
рпг
фэнтези
эпическая фантастика
5.00
рейтинг книги
Эволюционер из трущоб. Том 5
5. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Вернувшийся: Новая жизнь. Том I
1. Вернувшийся
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Французская новелла XX века. 1900–1939
Проза:
классическая проза
6.25
рейтинг книги
Менталист. Эмансипация
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Я уже царь. Книга XXIX
29. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Травница Его Драконейшества
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Я до сих пор князь. Книга XXII
22. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.00
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Лабиринт Сумерек
2. Квадрат мироздания
Фантастика:
фэнтези
6.00
рейтинг книги
Кодекс Охотника. Книга XV
15. Кодекс Охотника
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Иной. Том 1. Школа на краю пустыни
1. Иной в голове
Фантастика:
боевая фантастика
рпг
аниме
5.75
рейтинг книги
Цикл романов "Целитель". Компиляция. Книги 1-17
Целитель
Фантастика:
попаданцы
альтернативная история
5.00