BDAzar.vb

  1. ' BDAzar.vb — ProInf.net — feb-2012
  2. '
  3. ' Genaración de la base de datos al azar
  4. ' según los campos predefinidos (basados en cáldulo o datos estadísticos) y
  5. ' según los campos definidos por el usuario
  6.  
  7. Public Class BDAzar
  8.  
  9. Public Property Predefinidos As String() = Nothing
  10. Public Property Definidos As CampoDefinido() = Nothing
  11.  
  12. Public Property Campos As ICampo()
  13. Public Property Total As Integer
  14. Public Property Formato As FormatoAbstracto
  15.  
  16. Public Event Progresando As Action(Of Double)
  17. Public Property Cancelar As Boolean
  18.  
  19. Public Sub New()
  20. End Sub
  21.  
  22. Public Sub Generar()
  23. Reiniciar()
  24. Formato.Inicio()
  25. Formato.EscribirMetadatos(Campos)
  26. Formato.EscribirTitulos(ObtenerTitulos())
  27. For contador = 1 To Total
  28. RaiseEvent Progresando(contador / Total)
  29. Formato.EscribirValores(ObtenerValores())
  30. If Cancelar Then Exit For
  31. Next
  32. Formato.Fin()
  33. End Sub
  34.  
  35. Private Sub Reiniciar()
  36. ''Dim campoId As CampoId = Recursos.camposPredefinidos("id")
  37. ''campoId.Reiniciar()
  38. For Each campo In Campos
  39. If TypeOf campo Is IReiniciable Then
  40. Dim reiniciable As IReiniciable = campo
  41. reiniciable.Reiniciar()
  42. End If
  43. Next
  44. Cancelar = False
  45. End Sub
  46.  
  47. Private Function ObtenerTitulos() As String()
  48. Dim lista As New List(Of String)
  49. For Each campo In Campos
  50. lista.Add(campo.Nombre)
  51. Next
  52. Return lista.ToArray()
  53. End Function
  54.  
  55. Private Function ObtenerValores() As String()
  56. Dim lista As New List(Of String)
  57. For Each campo In Campos
  58. lista.Add(campo.Aleatorio())
  59. Next
  60. Return lista.ToArray()
  61. End Function
  62.  
  63. '--------------------------------------------
  64. ' GUIÓN
  65.  
  66. Public Shared Function EjecutarGuion(ByVal guion As String) As Boolean
  67. DialogoAviso("En obras")
  68. Return False
  69. End Function
  70.  
  71. End Class
  72.  
  73.  
  74.  

Proinf.net