2016-06-10 11 views
0

Okay, so soll ich auf eine Datei zugreifen können, die bereits Werte enthält und Werte in diese Datei (nämlich Fragen) schreiben.Schreiben Sie neue Zeilen der sequentiellen Datei in Visual Basic 2010

Dies ist mein Code so weit:

Private Sub AddQuestion(sender As System.Object, e As System.EventArgs) Handles btnQuestions.Click 
    Dim pass, response, question As String 
    pass = "sample01" 
    response = InputBox("Please enter the administrator password.", "Password") 
    If response = pass Then 
     FileOpen(1, "W:\Visual Studio 2010\Projects\Culminating\assets\questions.txt", OpenMode.Output) 
     Do 
      question = InputBox("Enter new question.", "New Question") 
      If question = String.Empty Then 
       Exit Do 
      End If 
      Write(1, question) 
      WriteLine(1) 
     Loop 
     FileClose(1) 
    Else : MsgBox("Incorrect password. Please enter again.", MsgBoxStyle.Critical, "Incorrect Password") 
    End If 
End Sub 

Diese Fragen zu meiner Datei fügt jedoch hinzu, wenn ich das Eingabefeld verlassen und erneut versuchen, es werden die alten Fragen mit den neuen überschrieben .

+1

Die FileOpen-Funktion ist eine sehr alte Funktion, die hauptsächlich für Abwärtskompatibilität mit VB 6 vorgesehen ist. Wenn Sie in VB.NET neuen Code schreiben (oder, wie es scheint, * VB.NET * lernen), sollten Sie überlegen dies auf die moderne Art und Weise tun. Das würde entweder das VB.NET-spezifische 'My.Computer.FileSystem'-Objekt verwenden, um Datei-I/O durchzuführen, oder die allgemeine .Net' System.IO.File'-Klasse. –

+0

@CodyGray danke. Ich würde es gerne so machen, aber unser Lehrer hat spezifische Anforderungen dafür, wie wir diesen Code schreiben, also versuche ich es so zu machen, wie er es uns gezeigt hat. – Alex

+1

Vielleicht geben Sie die spezifischen Anforderungen des Lehrers an, damit jemand eine Antwort geben kann, die diesen Anforderungen entspricht? –

Antwort

2
FileOpen(1, "W:\Visual Studio 2010\Projects\Culminating\assets\questions.txt", OpenMode.Output) 

OpenMode.Output öffnet die Datei zum Überschreiben des Inhalts. Sie möchten OpenMode.Append.

+0

Ah, unsere Notizen sagten, 'OpenMode.Output' zu verwenden, also ging ich damit einher. Vielen Dank, hat perfekt funktioniert. – Alex