18. Теперь можно создать процедуру обработчика события загрузки формы, код которой приведен в листинге 6.7. Листинг 6.7
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
\'Если файл с данными отсутствует в текущем каталоге, мы его создаем, для
\'этого сначала получаем полный путь каталога, в котором расположена
\'программа, в строковую переменную dirStr
dirStr = IO.Path.GetDirectoryName_
(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString)
\'Проверяем, есть ли файл c заданным именем по полученному пути
If Not System.IO.File.Exists(dirStr + «\2005.xml») Then
\'Если файла нет – создаем его
\'Создаем экземпляр XmlDocument
Dim myxmlDoc As New Xml.XmlDocument
\'Создаем корневой тег и добавляем его к документу
Dim oROOT As Xml.XmlElement = myxmlDoc.CreateElement(«Y2005»)
myxmlDoc.AppendChild(oROOT)
\'Получаем текущую дату в переменную myDate
Dim myDate As Date = Date.Now
myDate = DateAdd(DateInterval.Day, – 1, myDate)
\'Заполняем файл тегами Data от сегодняшнего дня до конца текущего года
While Not myDate.ToShortDateString = «31.12.2005»
myDate = DateAdd(DateInterval.Day, 1, myDate)
Dim oData As Xml.XmlElement = myxmlDoc.CreateElement(«Data»)
oROOT.AppendChild(oData)
Dim oValue As Xml.XmlAttribute = _ myxmlDoc.CreateAttribute(«value»)
Dim oIndex As Xml.XmlAttribute = _ myxmlDoc.CreateAttribute(«Cnt»)
oValue.InnerText = myDate.ToShortDateString
oIndex.InnerText = «-1»
oData.SetAttributeNode(oValue)
oData.SetAttributeNode(oIndex)
End While
\'Создаем заголовочную часть XML файла
Dim myPI As Xml.XmlProcessingInstruction = _
myxmlDoc.CreateProcessingInstruction_
(«xml», "version= 1.0 encoding=\'windows-1251 ")
myxmlDoc.InsertBefore(myPI, myxmlDoc.ChildNodes(0))
\'Сохраняем созданный документ
myxmlDoc.Save(dirStr + «\2005.xml»)
End If
\'Если файл со списком категорий отсутствует в текущем каталоге, мы его
\'создаем с пятью категориями Work1, Work2, Work3, Misc, Trash
If Not System.IO.File.Exists(dirStr + «\Category.xml») Then
If Not System.IO.File.Exists(dirStr + «\Category.xml») Then
Dim myxmlDoc As New Xml.XmlDocument
Dim oROOT As Xml.XmlElement = myxmlDoc.CreateElement(«Categoty»)
myxmlDoc.AppendChild(oROOT)
Dim oWork1 As Xml.XmlElement = myxmlDoc.CreateElement(«Work1»)
oROOT.AppendChild(oWork1)
Dim oWork2 As Xml.XmlElement = myxmlDoc.CreateElement(«Work2»)
oROOT.AppendChild(oWork2)
Dim oWork3 As Xml.XmlElement = myxmlDoc.CreateElement(«Work3»)
oROOT.AppendChild(oWork3)
Dim oMisc As Xml.XmlElement = myxmlDoc.CreateElement(«Misc»)
oROOT.AppendChild(oMisc)
Dim oTrash As Xml.XmlElement = myxmlDoc.CreateElement(«Trash»)
oROOT.AppendChild(oTrash)
Dim myPI As Xml.XmlProcessingInstruction = _
myxmlDoc.CreateProcessingInstruction_
(«xml», "version= 1.0 encoding=\'windows-1251 ")
myxmlDoc.InsertBefore(myPI, myxmlDoc.ChildNodes(0))
myxmlDoc.Save(dirStr + «\Category.xml»)
End If
D = DateTime.Now
Label1.Text = System.DateTime.Today.ToShortDateString
\'Вызываем процедуру загрузки данных в ListView
Data_Load(System.DateTime.Today.ToShortDateString)
End Sub