⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.vb

📁 一个随机抽取数组的东东
💻 VB
📖 第 1 页 / 共 2 页
字号:
Imports System.IO
Imports System



Public Class Form1

    Private Class RndOptionClass

        Public ChoiceMax As Integer = 0
        Public GroupMax As Integer = 0
        Public ItemMax As Integer = 0
        Public CutChar As String = ","

        Public OptionSaveFile As Boolean = False
        Public OptionOnly As Boolean = False
        Public OptionOrder As Boolean = False
        Public OptionGroupOnly As Boolean = False
    End Class

    Private Class RndItemClass

        Dim RItem(10) As Integer
        Dim RMax As Integer
        Dim DataRows As DataSet
        Dim RowIndex() As Integer
        Dim GroupIndex As Integer


        Public Sub LoadDataRows()
            Dim SQLstring As String

            SQLstring = "SELECT * FROM  抽取库"

            Dim DataConnection As System.Data.OleDb.OleDbConnection
            Dim DataAdapter As System.Data.OleDb.OleDbDataAdapter
            Dim DataSet As DataSet
            Dim ss As Integer

            ss = 0
            Try

                DataConnection = New System.Data.OleDb.OleDbConnection
                DataConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\RndNumber.mdb"
                DataAdapter = New System.Data.OleDb.OleDbDataAdapter(SQLstring, DataConnection)
                DataSet = New DataSet
                DataSet.Clear()
                DataAdapter.Fill(DataSet)
                DataConnection.Close()
                If DataSet.Tables.Count > 0 Then
                    DataRows = DataSet
                End If

                ReDim RowIndex(DataRows.Tables(0).Rows.Count)
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

        End Sub

        Public Sub Clear()
            Dim i As Integer
            For i = 0 To RItem.Count - 1
                RItem(i) = 0
            Next
            RMax = 0
            GroupIndex = 0
        End Sub

        Public Function OutputOk(ByVal Values As Boolean) As Boolean
            If Values Then
                Dim B As Boolean
                Dim I As Integer
                B = True
                Dim TSrk As String = ""
                For I = 0 To RMax - 1
                    TSrk = TSrk & "," & Trim(Str(RItem(0)))
                Next

                If GroupIndex >= 1 Then
                    For I = 0 To GroupIndex - 1
                        If TSrk = RowIndex(I) Then B = False
                    Next
                    If B Then
                        RowIndex(GroupIndex) = TSrk
                        GroupIndex = GroupIndex + 1
                        Return True
                    Else
                        Return False
                    End If
                Else
                    Return True
                End If
            Else
                Return True
            End If
        End Function

        Public Function OutputNumber(ByVal OrderBy As Boolean, ByVal CutChar As String) As String

            '排序
            If OrderBy Then
                Dim J As Integer
                Dim K As Integer
                Dim Rn As Integer

                Dim KeyA As Integer
                Dim KeyB As Integer

                If RMax <= 1 Then
                Else
                    If RMax = 2 Then
                        KeyA = DataRows.Tables(0).Rows(RItem(0)).Item("数值")
                        KeyB = DataRows.Tables(0).Rows(RItem(1)).Item("数值")
                        If KeyA > KeyB Then
                            Rn = RItem(0)
                            RItem(0) = RItem(1)
                            RItem(1) = Rn
                        End If
                    Else
                        For J = 0 To RMax - 2
                            For K = J + 1 To RMax - 1
                                KeyA = DataRows.Tables(0).Rows(RItem(J)).Item("数值")
                                KeyB = DataRows.Tables(0).Rows(RItem(K)).Item("数值")
                                If KeyA > KeyB Then
                                    Rn = RItem(J)
                                    RItem(J) = RItem(K)
                                    RItem(K) = Rn
                                End If
                            Next
                        Next
                    End If
                End If
            End If

            '输出
            Dim I As Integer
            Dim RtStr As String = ""

            If RMax > 1 Then
                RtStr = DataRows.Tables(0).Rows(RItem(0)).Item("数值")
                For I = 1 To RMax - 1
                    RtStr = RtStr & CutChar & DataRows.Tables(0).Rows(RItem(I)).Item("数值")
                Next
            Else
                Return RItem(0)
            End If
            Return RtStr

        End Function

        Public Function InputNumber(ByVal Value As Integer, ByVal Only As Boolean) As Boolean
            If Only Then
                If RMax > 0 Then
                    Dim I As Integer
                    Dim B As Boolean
                    B = True
                    For I = 0 To RMax - 1
                        If RItem(I) = Value Then
                            B = False
                        End If
                    Next
                    If B Then
                        RItem(RMax) = Value
                        RMax = RMax + 1
                    End If
                    Return B
                Else
                    RItem(RMax) = Value
                    RMax = RMax + 1
                    Return True
                End If
            Else
                RItem(RMax) = Value
                RMax = RMax + 1
                Return True
            End If
        End Function

    End Class

    Private T1 As String = ""
    Private T2 As String = ""
    Private T3 As String = ""
    Private T4 As String = ""
    Private T5 As String = ""

    Private Connlinks = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\RndNumber.mdb"

    Private R As Random = New Random(Now.Second * Now.DayOfYear * Now.Millisecond)

    Private RndOption As RndOptionClass = New RndOptionClass
    Private RndItems As RndItemClass = New RndItemClass


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim objStreamWriter As TextWriter

        'Pass the file path and the file name to the StreamWriter constructor.
        objStreamWriter = New StreamWriter("C:\Test.txt")

        'Write a line of text.
        Dim I As Integer
        For I = 0 To 5000
            objStreamWriter.WriteLine(GetNumber(30000))
        Next
        'Write a second line of text.
        objStreamWriter.WriteLine("From the StreamWriter class")

        'Close the file.
        objStreamWriter.Close()
        MsgBox("完成")
    End Sub

    Private Function GetNumber(ByVal Index As Integer) As Integer

        Dim Rtn As Integer

        Rtn = -1
        Do Until Rtn >= 0 And Rtn <= Index
            Rtn = R.Next(0, Index)
            Windows.Forms.Application.DoEvents()
        Loop
        Return Rtn
    End Function

    Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        OpenFileDialog1.FileName = ""
        OpenFileDialog1.ShowDialog()
        Dim ft As String = ""
        ft = OpenFileDialog1.FileName
        If ft = "" Then

        Else
            TextBox1.Text = ft
        End If
    End Sub

    Private Sub TextBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDoubleClick
        OpenFileDialog1.FileName = ""
        OpenFileDialog1.ShowDialog()
        Dim ft As String = ""
        ft = OpenFileDialog1.FileName
        If ft = "" Then

        Else
            TextBox1.Text = ft
        End If
    End Sub

    Private Sub TextBox2_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox2.MouseDoubleClick
        SaveFileDialog1.FileName = ""
        SaveFileDialog1.ShowDialog()
        Dim ft As String = ""
        ft = SaveFileDialog1.FileName
        If ft = "" Then

        Else
            TextBox2.Text = ft
        End If
    End Sub

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
        T2 = TextBox2.Text
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        SaveFileDialog1.FileName = ""
        SaveFileDialog1.ShowDialog()
        Dim ft As String = ""
        ft = SaveFileDialog1.FileName
        If ft = "" Then

        Else
            TextBox2.Text = ft
        End If
    End Sub

    Private Sub Form1_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        SaveInI()
    End Sub


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label1.Text = ReadyLibNumberSum("抽取库")
        LoadIni()
        LabelItemClear()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        ReadFile(TextBox1.Text)
    End Sub

    Private Sub ReadFile(ByVal FileNames As String)
        Dim IndexSum As Integer = 0
        If Not File.Exists(FileNames) Then
            Return
        Else
            DeleteLib()
            Using sr As StreamReader = File.OpenText(FileNames)
                Dim input As String
                input = Trim(sr.ReadLine())
                IndexSum = 0
                Label1.Text = IndexSum
                While Not input Is Nothing

                    If Val(input) > 0 Then

                        If ReadyLibSum(input) = 0 Then
                            IndexSum = IndexSum + 1
                            SaveIntoLib(input, IndexSum.ToString)
                            Label1.Text = IndexSum
                        End If
                    End If
                    input = sr.ReadLine()
                    Windows.Forms.Application.DoEvents()
                End While
                MsgBox("完成!")
                sr.Close()
            End Using
        End If
    End Sub

    Private Sub SaveIntoLib(ByVal Index As String, ByVal IndexSum As String)
        Dim sqlstr As String = ""
        Dim sqlconn As New System.Data.OleDb.OleDbConnection(Connlinks)

        'GSetting	GValues	GEnable	OrderByThis
        Try
            '         UPDATE mytable SET first_column=’Updated!’ WHERE second_column=’Update Me!’
            '         DELETE mytable WHERE first_column=’goodby’ OR second_column=’so long’
            'sqlstr = "INSERT INTO 主表 (企业名称,市,区县) VALUES ( )"
            'sqlstr = "DELETE From " & index & " WHERE 企业名称 NOT IN (SELECT 主表!企业名称 FROM 主表)"
            sqlstr = "INSERT INTO 抽取库 ( ID, 数值 ,次数 ) VALUES ( " & IndexSum & ", '" & Trim(Index) & "',0) "
            If sqlstr <> "" Then
                Dim cmdTable As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand(sqlstr, sqlconn)
                cmdTable.CommandType = CommandType.Text
                sqlconn.Open()
                cmdTable.ExecuteNonQuery()
                sqlconn.Close()
            End If
            'Select a.*,b.* From Tab1 a,Tab2 b In 'db2.mdb' Where a.ID=b.ID; 

        Catch ex As Exception
            MsgBox("  :::::   " & ex.Message)
        End Try

    End Sub

    Private Function ReadyLibSum(ByVal Index As String) As Integer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -