2010-11-07 32 views
0

Hé les gars, juste un petit problème ici! Essayer d'écrire un quiz pour un portfolio d'université et avoir du mal à écrire dans un fichier texte .txt. Sur un formulaire (form4.vb), j'ai une liste qui récupère les informations contenues dans un fichier texte appelé "noms d'utilisateur" qui contient les noms des utilisateurs du quiz. Lorsqu'il est écrit manuellement dans ce fichier texte, ma liste de sélection le récupère bien, cependant, sur un formulaire différent (form3.vb), j'ai une zone de texte où un utilisateur entre son nom, ceci est supposé aller au "usernames.txt" textfile à saisir par la zone de liste sur l'autre formulaire mais à la place, il n'écrit rien du tout et s'il y a déjà du texte sur ce fichier texte, il efface tout. Je dois également utiliser le chemin d'application.startup au lieu de C: \ mes documentents \ etc habituels, donc je devrais commencer par quelque chose comme ceci: (Note: le code est un peu mélangé en raison de déconner avec différentes variations mais ceci est juste un exemple)VB.Net - Écrire dans un fichier texte à partir d'une zone de texte

'Try 
    ' Dim appPath As String 
    ' Dim fileName As String 

    ' appPath = Application.StartupPath 
    ' fileName = appPath & "\usernames.txt" 
    ' sWriter = New System.IO.StreamWriter(fileName) 

    ' sWriter.Close() 
    ' MessageBox.Show("Writing file to disk") 

    'Catch ex As Exception 
    ' MessageBox.Show("File Access Error", "Error") 

    'End Try 
    'MessageBox.Show("Program terminating") 

    'Application.Exit() 

Espérons que quelqu'un puisse vous aider! =)

+0

Pourquoi votre code est tout en commentaire? –

Répondre

3

Vous voulez faire quelque chose comme:

Dim appPath As String = Application.StartupPath 
Dim fileName As String = IO.Path.Combine(appPath, "usernames.txt") 

Try 
    IO.File.AppendAllText(fileName, TextBox1.Text & Environment.NewLine) 
Catch ex As Exception 
    MessageBox.Show("File Access Error", "Error") 
End Try 
MessageBox.Show("Program terminating") 

Environment.Exit() 

Certaines choses à noter dans ce code:

  • Path.Combine() comme la bonne façon d'ajouter le caractère de séparation
  • Fichier .AppendAllText() est beaucoup plus facile pour des choses simples que de jouer avec streamreader/writer. Associez-le avec File.ReadAllText() ou File.ReadAllLines() dans l'autre sens.
  • Environment.Exit() vs Application.Exit()
-1

Où est votre instruction dim pour sWriter (streamWriter)?

+0

Il est déjà là mais j'ai oublié de le coller dans le code d'exemple, mais j'ai sWriter dim comme system.IO.StreamWriter et la nouvelle instance de celui-ci, que vous pouvez voir sur l'exemple. Il se trouve normalement sur le sous-formulaire Form_Load ou sur le bouton button généralement placé au-dessus de la méthode try ... catch à partir du pont. –

+2

essayez d'ajouter true pour indiquer le mode ajout
sWriter = Nouveau System.IO.StreamWriter (nomFichier, true) puis essayez d'écrire quelque chose dans le flux avant de fermer l'objet. –