2016-06-10 9 views
0

Итак, я должен иметь доступ к файлу, в котором уже есть значения, и записывать значения в этот файл (а именно вопросы).Запись в новые строки последовательного файла в Visual Basic 2010

Это мой код до сих пор:

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 

Это добавляет вопросы к моему файлу, однако, если я выйти из поля ввода и повторите попытку, он будет перезаписывать старые вопросы с новыми ,

+1

Функция FileOpen - очень старая функция, предоставляемая в первую очередь для обратной совместимости с VB 6. Если вы пишете новый код в VB.NET (или, как кажется, * learning * VB.NET), то вам следует рассмотреть делая это по-современному. Это будет либо использование объекта My.Computer.FileSystem', специфичного для VB.NET, для работы с файлами ввода-вывода, либо общего класса .NET 'System.IO.File'. –

+0

@CodyGray спасибо. Я хотел бы сделать это таким образом, однако у нашего учителя есть особые требования к тому, как мы пишем этот код, поэтому я пытаюсь сделать это так, как он показал это нам. – Alex

+1

Возможно, вы можете предоставить вам особые требования к учителю, чтобы кто-то мог дать ответ, соответствующий этим требованиям? –

ответ

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

OpenMode.Output открывает файл для перезаписи содержимого. Вы хотите OpenMode.Append.

+0

А, наши заметки говорят использовать «OpenMode.Output», поэтому я согласился с этим. Большое вам спасибо, отлично работал. – Alex