2014-01-07 157 views
2

我有麻煩讓我的記錄號在Visual Basic 2012中唯一唯一的代碼我迄今爲止覆蓋了以前保存的文件?隨機訪問文件visual basic 2012

我模塊

Imports System.IO 
Module AssModule 
    Structure employee 
     ' Public Name As String 
     ' Public ID As String 

     <VBFixedString(30)> Dim name As String ' vb fixed string 
     <VBFixedString(5)> Dim id As String ' vb fixed string 



    End Structure 

    Structure transaction 
     <VBFixedString(5)> Dim id As String ' vb fixed string 
     Dim time As Date 
     <VBFixedString(3)> Dim type As String ' vb fixed string 
    End Structure 

    ' Public fileSize As Integer = Len(index) 
    ' Public Staff(100) As employee ' staff as new name for eployeee structure 


    Public myEmployee As employee 

    Public r As Integer = 5 
    Public fileNumber As Integer = FreeFile() 
    Public mySizerecordnumber As Integer = Len(myEmployee) 
    Public recordNumber As Integer 



    Public index As Byte 



    Public Sub setRecordNumber() 
     Dim n As Byte = 0 
     FileOpen(fileNumber, "binData.dat", OpenMode.Random, OpenAccess.Read) 
     While Not EOF(fileNumber) 
      n = n + 1 
      FileGet(fileNumber, myEmployee, n) 
     End While 
     recordNumber = n 
     FileClose(fileNumber) 
    End Sub 



End Module 

添加員工按鈕

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click 
    For n = 0 To 3 
     FileOpen(fileNumber, "binData.dat", OpenMode.Random, OpenAccess.Write, , mySizerecordnumber) 
     myEmployee.id = txtID.Text 
     myEmployee.name = txtName.Text 
     recordNumber = recordNumber + 1 
     FilePut(fileNumber, myEmployee, recordNumber) 
     FileClose(fileNumber) 
    Next 
    Me.Close() 
End Sub 
+0

你究竟想要什麼???請詳細提及 –

回答

1

OK,讓我們打破你的btnSave_Click功能。

對於0到3,每次您:打開文件,讀取它,將結果放入myEmployee中,然後放回文件中並關閉。

你想要做的(我認爲)什麼是保存新員工在你的文件的末尾

你應該打開你的文件,移動到結束,並保存新的記錄:

Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click 
    setRecordNumber() 
    FileOpen(fileNumber, "binData.dat", OpenMode.Random, OpenAccess.Write, , mySizerecordnumber) 
    myEmployee.id = txtID.Text 
    myEmployee.name = txtName.Text 
    FilePut(fileNumber, myEmployee, recordNumber) 
    FileClose(fileNumber) 
    Me.Close() 
End Sub