Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

VB.NET Snippet: Dummy datatable generation με τυχαία data

Îåêßíçóå áðü ôï ìÝëïò cap. Τελευταία δημοσίευση από το μέλος cap στις 25-05-2005, 18:31. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  25-05-2005, 11:28 2201

    VB.NET Snippet: Dummy datatable generation με τυχαία data

    Κάποια στιγμή μου χρειάστηκε να φτιάξω "κατι" που θα δημιουργούσε on-demand datatables γεμάτα με "σκουπίδια" (random data) για τις ανάγκες testing. Ειπα λοιπόν να το μοιραστώ μαζί σας.

    Καλώντας την GenerateDummyDataTable(10,5,11,22) παίρνετε πίσω ένα datatable 10 γραμμών και 5 στηλών με ονόματα "Col1", "Col2" κλπ γεμάτο με dummy data. Τα data είναι random strings με μήκος τυχαίο μεταξύ των 11 και 22 χαρακτήρων.

    Καλώντας την GenerateDummyValue (5, 10) μπορειτε να πάρετε απλά ένα string μήκους μεταξύ 5 και 10 χαρακτήρων γεμάτο με τυχαίους χαρακτήρες.

    Ειναι απλό, παιδικό θα έλεγα, αλλά με γλύτωσε από πολύ κόπο.

    Μια παρατήρηση: Δεν ήξερα σε ποιό topic να το κάνω post. Πατρικ, μήπως θα πρέπει να φτιαχτεί ένα "code snippets" topic τουλάχιστον;

    Α, παραλιγο να το ξεχάσω! Παρτε και τον κώδικα Smile








     Imports System.Text
    Imports System.Random
    Imports System.data

    '/// <summary>
    '/// This class can be used as a "helper" class to generate datatables with dummy
    '/// values in order to stress-test or dummy-test data-driven applications without
    '/// having to implement the Data Access Layer first.
    '/// You can also use it to just generate strings filled with dummy values.
    '/// </summary>
    Public Class DataRetriever
        Private m_objRnd As Random

        '/// <summary>
        '/// Default constructor.
        '/// </summary>
        Public Sub New()

            'Create something as random as we can.
            m_objRnd = New Random(CType(System.DateTime.Now.Ticks Mod System.Int32.MaxValue, Integer))
        End Sub

        '/// <summary>
        '/// Generates a datatable with a specified number of rows and columns and fills it
        '/// with dummy values.
        '/// </summary>
        '/// <param name="rows">The number of rows the datatable will contain</param>
        '/// <param name="cols">The number of columns the datatable will contain</param>
        '/// <param name="minStringLength">Minimum random string length for column values</param>
        '/// <param name="maxStringLength">Maximum random string length for column values</param>
        '/// <returns>A DataTable object</returns>
        Public Function GenerateDummyDataTable( _
              ByVal rows As Int32 _
            , ByVal cols As Int32 _
            , Optional ByVal minStringLength As Int32 = 3 _
            , Optional ByVal maxStringLength As Int32 = 15 _
        ) As DataTable

            Dim objDt As New DataTable

            'Add columns. Columns will have titles like "Col1", "Col2" etc.
            For intCnt As Int32 = 1 To cols
                objDt.Columns.Add("Col" + intcnt.ToString)
            Next

            'Add rows.
            For intCnt As Int32 = 1 To rows
                objDt.Rows.Add(GenerateDummyDataRowValues(cols, minStringLength, maxStringLength))
            Next

            Return objDt

        End Function

        '/// <summary>
        '/// Generates a string filled with dummy characters with a random length
        '/// within a specified range.
        '/// </summary>
        '/// <param name="minLength">The minimum length the string should have</param>
        '/// <param name="maxlength">The maximum length the string should have</param>
        '/// <returns>String</returns>
        Public Function GenerateDummyValue( _
                  ByVal minLength As Int32 _
                , ByVal maxlength As Int32 _
         ) As String

            Dim intLength As Int32

            intLength = m_objRnd.Next(minLength, maxlength)

            Dim objSB As New StringBuilder(String.Empty)

            'Create characters. Include Greek characters too. Change the range if you don't like that.
            For intCnt As Int32 = 0 To intLength
                objSB.Append(Chr(m_objRnd.Next(65, 228)))
            Next

            Return objSB.ToString

        End Function

        '/// <summary>
        '/// Generates dummy object arrays to be used as values for DataRows
        '/// </summary>
        '/// <param name="cols">Number of columns</param>
        '/// <param name="minLength">Minimum random string length for column values</param>
        '/// <param name="maxLength">Maximum random string length for column values</param>
        '/// <returns>Object()</returns>
        Private Function GenerateDummyDataRowValues( _
              ByVal cols As Int32 _
            , Optional ByVal minLength As Int32 = 3 _
            , Optional ByVal maxLength As Int32 = 15 _
            ) As Object()

            Dim ob(cols - 1) As Object
            For intCnt As Int32 = 0 To cols - 1
                ob(intCnt) = New Object
                ob(intCnt) = GenerateDummyValue(minLength, maxLength)
            Next
            Return (ob)

        End Function

    End Class


     

    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  25-05-2005, 18:28 2208 σε απάντηση της 2201

    Re: VB.NET Snippet: Dummy datatable generation με τυχαία data

     cap wrote:
    Μια παρατήρηση: Δεν ήξερα σε ποιό topic να το κάνω post. Πατρικ, μήπως θα πρέπει να φτιαχτεί ένα "code snippets" topic τουλάχιστον;

    Δεν ξέρω αν είναι καλή ιδέα να έχουμε ένα γενικό forum με snippets, ανεξαρτήτως γλώσσας.  Πιστεύω πως τα snippets θα πρέπει να τα ξεχωρίσουμε ανά γλώσσα, για να είναι βολικό, και επειδή τα sub-forums είναι λίγο βλαμμένα εδώ (διότι δεν θα ήταν καλό να φτιάξω 2 νέα forums στο top-level - ήδη γκρινιάζουν κάποιοι ότι έχουμε πολλά forums), μάλλον θα πρέπει να περιμένουμε για την μαγική στιγμή που θα βάλουμε το CS 1.1 και το DNN.  Ξέρω, έχετε βαρεθεί να το ακούτε αυτό - όπως και εγώ έχω βαρεθεί να το λέω - αλλά δεν μπορώ να κάνω και πολλά...

    Patrick
  •  25-05-2005, 18:31 2209 σε απάντηση της 2208

    Re: VB.NET Snippet: Dummy datatable generation με τυχαία data

    Ενταξει. Δεν έχουμε και τόσο μεγάλο όγκο posts πάντως που να αφορούν σε snippets κώδικα, οπότε θα μπορούσαμε φαντάζομαι οποιαδήποτε στιγμή να τα "μαζέψουμε" και να τα βάλουμε αλλού. Απλά έτσι χάνονται στο πλήθος, και δεν νομίζω οτι είναι καλό.

    Επίσης αναθερμαίνω λίγο το θέμα των "αρθρων" που το είχαμε συζητήσει παλαιότερα. (Δεν θυμάμαι αν ήταν εδώ η κατ'ιδίαν). Πολλά topics αφορούν ερωτήσεις σε προβλήματα στα οποία δίνονται λύσεις, και δουλεύουν. Αυτά τα ζεύγη λύσεων / προβλημάτων θα μπορούσαν κάποια στιγμή να μετασχηματιστούν σε αυτόνομα "αρθρα" και να βρίσκονται σε μια ξεχωριστή περιοχή.

    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems