form1.vb

来自「Visual Basic .NET程序设计教程源代码」· VB 代码 · 共 157 行

VB
157
字号
Public Class Form1
    Inherits System.Windows.Forms.Form
    Structure RecordType
        <VBFixedString(10)> Dim EmName As String
        <VBFixedString(16)> Dim Wunit As String
        Dim Age As Short
        Dim Salary As Short
    End Structure
    Dim recordvar As RecordType
    Dim recLen As Integer = Len(recordvar)
    Dim recordnumber As Long
    Sub File_Write()
        Dim aspect As Char
        Do
            recordvar.EmName = InputBox("职工姓名:")
            recordvar.Wunit = InputBox("所在单位:")
            recordvar.Age = InputBox("职工年龄:")
            recordvar.Salary = InputBox("职工工资:")
            recordnumber += 1
            FilePut(1, recordvar, recordnumber)
            aspect = InputBox("More(Y/N)?")
        Loop Until UCase(aspect) = "N"
    End Sub
    Sub File_read1()
        Dim i As Long
        Debug.WriteLine("")
        Debug.WriteLine("姓名             单位         " & " 年龄    工资  记录号")
        Debug.WriteLine("")
        For i = 1 To recordnumber
            FileGet(1, recordvar, i)
            Debug.Write(recordvar.EmName)
            Debug.Write("   " & recordvar.Wunit & "   ")
            Debug.Write(Str(recordvar.Age) & "   ")
            Debug.WriteLine(Str(recordvar.Salary) & "   " & Str(Loc(1)))
        Next i
        Debug.WriteLine("")
    End Sub
    Sub File_read2()
        Dim Getmorerecords As Boolean = True
        Dim recordnum As Integer
        Do
            recordnum = InputBox("请输入要查看的记录号(输入0结束):")
            If recordnum > 0 And recordnum <= recordnumber Then
                FileGet(1, recordvar, recordnum)
                Debug.WriteLine("")
                Debug.WriteLine("姓名             单位         " & "年龄    工资     记录号")
                Debug.WriteLine("")
                Debug.Write(recordvar.EmName)
                Debug.Write("     " & Trim(recordvar.Wunit) & "     ")
                Debug.Write(Str(recordvar.Age) & "     ")
                Debug.WriteLine(Str(recordvar.Salary) & "     " & Str(Loc(1)))
                Debug.WriteLine("")
            ElseIf recordnum = 0 Then
                Getmorerecords = False
            Else
                MsgBox("输入的值超出记录号范围,请重新输入!")
            End If
        Loop While Getmorerecords
    End Sub
    Sub rec_replace()
        Dim rep As Long
        recordvar.EmName = InputBox("职工姓名:")
        recordvar.Wunit = InputBox("所在单位:")
        recordvar.Age = InputBox("职工年龄:")
        recordvar.Salary = InputBox("职工工资:")
        rep = InputBox("请输入需要代换的记录号")
        FilePut(1, recordvar, rep)
    End Sub
    Sub deleterec(ByRef position As Integer)
repeat:
        FileGet(1, recordvar, position + 1)
        If Loc(1) = recordnumber Then GoTo finish
        FilePut(1, recordvar, position)
        position = position + 1
        GoTo repeat
finish:
        recordnumber = recordnumber - 1
    End Sub
#Region " Windows 窗体设计器生成的代码 "

    Public Sub New()
        MyBase.New()

        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()

        '在 InitializeComponent() 调用之后添加任何初始化

    End Sub

    '窗体重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer

    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(292, 273)
        Me.Name = "Form1"
        Me.Text = "Form1"

    End Sub

#End Region


    Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
        FileOpen(1, "d:\temp\employee.txt", OpenMode.Random, OpenAccess.ReadWrite, , recLen)
        recordnumber = LOF(1) / recLen
        Dim Newline As String = Chr(13) + Chr(10)
        Dim msg As String
        Dim resp As Integer
        msg = "1.建立文件和增加记录"
        msg = msg + "  2.顺序方式读记录"
        msg = msg + Newline + "3.通过记录号读文件"
        msg = msg + "    4.代换记录"
        msg = msg + Newline + "5.删除记录"
        msg = msg + "            0.退出程序"
        msg = msg + Newline + Newline + "请输入数字选择:"
        msg = msg + Newline
Begin:
        resp = InputBox(msg, "随机文件存取")
        Select Case resp
            Case 0
                FileClose(1)
                End
            Case 1
                File_Write()
            Case 2
                File_read1()
            Case 3
                File_read2()
            Case 4
                rec_replace()
            Case 5
                Dim p As Integer
                p = InputBox("请输入要删除的记录的记录号")
                deleterec(p)
        End Select
        GoTo Begin
    End Sub
End Class

⌨️ 快捷键说明

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