So, while I am really working with VBA for the latest months, I have decided to upgrade a little and to take a look what can be done with VB .Net, hoping that some better ideas would come and I would be able to become more and more productive.
So, thus today the idea is the following – generate XML into a file, if possible, make it random. Thus, let’s imagine that we need a XML file with the following
- DateAndTime
- Grade
- Name
- University Education
- City
To make it more interesting, I have decided to make the names random and the city is a number from 1 to 4, each letter meaning something, using enumeration in my code. The result is a file, looking like this:
Yes, names like “RTYUUL” and “STVJF” are not really popular, and due to some reason the Date and Time are quite in the same date and tiem, but still, it is quite good random XML list.
So here comes .Net VB code, that generated this “beauty”:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
Imports System.Xml.Serialization Imports System.Xml Imports System.Runtime.Serialization.Formatters.Binary Imports System.IO Public Enum BulgarianCities Sofia Plovdiv Varna Rousse End Enum Public Class GradesAtSchool Public DateAndTime As Date Public Grade As Double Public Name As String Public UniversityEducation As Boolean Public City As String End Class Module Module1 Public Function generate_name(l_seed As Long) As String Dim grandom As New Random(l_seed) Dim l_counter As Long Dim s_result As String Dim l As Long = grandom.Next(3, 10) For l_counter = 0 To l s_result &= CStr(Chr(grandom.Next(70, 90))) Next generate_name = s_result End Function Sub Main() Dim values As New List(Of GradesAtSchool)() Dim random As New Random() For l_counter As Long = 0 To 25 Dim my_unit As New GradesAtSchool() my_unit.DateAndTime = Date.Now my_unit.Grade = random.Next(2, 6) my_unit.Name = generate_name(l_counter * 10) my_unit.UniversityEducation = l_counter Mod 2 = 0 Select Case l_counter Mod 4 Case 0 my_unit.City = BulgarianCities.Sofia Case 1 my_unit.City = BulgarianCities.Plovdiv Case 2 my_unit.City = BulgarianCities.Varna Case 3 my_unit.City = BulgarianCities.Rousse End Select values.Add(my_unit) Next l_counter Dim settings As New XmlWriterSettings() settings.Indent = True Dim ser As New XmlSerializer(GetType(List(Of GradesAtSchool))) Dim writer As XmlWriter = XmlWriter.Create("C:\Users\Gro\Desktop\sample.xml", settings) ser.Serialize(writer, values) writer.Close() End Sub End Module |
Available also in GitHub! Enjoy it! 😀