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 + -
显示快捷键?