BenBox
Messages postés12Date d'inscriptiondimanche 13 août 2017StatutMembreDernière intervention27 août 2017
-
27 août 2017 à 13:13
Whismeril
Messages postés18624Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023
-
27 août 2017 à 15:09
Bonjour amis de la communauté,
Je sollicite votre aide. Je m'explique.
Lors de l'ouverture de mon inputbox, je saisie du texte et je l'enregistre dans un fichier .txt jusque là tout va bien.
Quand je ré-ouvre cette inputbox et que je saisie du texte, celui écrase l'ancien texte ajouter précédemment.
J'aimerais que le texte s'ajoute l'un à la suite de l'autre, que dois-je modifier dans mon code ???
Merci de votre aide
Private Sub CmdAjoutUtilisateuOutils_Click(sender As Object, e As EventArgs) Handles CmdAjoutUtilisateuOutils.Click
'***************************************************************************************************************
'************ C R E A T I O N I N P U T B O X ************
'************ ************
'***************************************************************************************************************
Dim message, title, defaultValue As String
Dim myValue As Object
' affiche le texte pour l'utilisateur
message = "Ajouter un nouvel utilisateur"
' Donne le titre à l'inputbox
title = "Utilisateur"
defaultValue = "" ' valeur par defaut
' Affiche le titre, le message et la valeur par defaut.
myValue = InputBox(message, title, defaultValue)
' Si l'utilisateur a cliqué sur Annuler, la valeur par defaut se met
If myValue Is "" Then myValue = defaultValue
'***************************************************************************************************************
'************ E N R E G I S T R E M E N T D E I N P U T B O X ************
'************ ************
'***************************************************************************************************************
' Créer la chaîne de caractères avec les lignes de texte en retour de l'inputbox
Dim lines() As String = {myValue}
' Définit une variable sur le chemin Mes documents.
Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Écrit le nouveau fichier nommé "IN_OUT-outils.txt".
Using outputFile As New IO.StreamWriter(mydocpath & Convert.ToString("\IN_OUT-outils.txt"))
For Each line As String In lines
outputFile.WriteLine(line)
Next
End Using
BenBox
Messages postés12Date d'inscriptiondimanche 13 août 2017StatutMembreDernière intervention27 août 2017 27 août 2017 à 13:43
Merci, mais peux-tu mieux me renseigner. Je viens d'un autre monde de programmation et travailler avec les fichiers , je n'en ai pas fait assez, d'où mon manque de connaissance et expérience
' Créer la chaîne de caractères avec les lignes de texte en retour de l'inputbox
Dim lines() As String = {myValue}
' Définit une variable sur le chemin Mes documents.
Dim mydocpath As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
' Écrit le nouveau fichier nommé "IN_OUT-outils.txt".
Using outputFile As New IO.StreamWriter(mydocpath & Convert.ToString("\IN_OUT-outils.txt"))
For Each line As String In lines
outputFile.WriteLine(line)
Next
End Using
D'autre part, il n'est pas nécessaire de convertir en string
"\IN_OUT-outils.txt"
ou quoique ce soit écrit entre guillemets, en effet c'est déjà une string.
Enfin, je t'ai proposé, par 2 fois, la lecture d'un article prévenant des erreurs à éviter quand on vient de VB6, force est de constater que tu n'as pas appliqué les conseils qui y sont présentés. Car InputBox n'est pas une instruction VB.Net, mais un import de VB6, ça marche souvent ces imports, mais des fois ça plante. Et là il est très difficile de trouver pourquoi.
BenBox
Messages postés12Date d'inscriptiondimanche 13 août 2017StatutMembreDernière intervention27 août 2017 27 août 2017 à 14:03
Salut, j'avoue que je n'ai pas encore pris connaissance de l'article. Je fonce dans ce que je sais faire.
Mais quel est la ligne que je dois modifier sur mon code ?
Whismeril
Messages postés18624Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629 27 août 2017 à 14:09
Je t'ai écrit à la place de quoi il faut le mettre, non seulement tu lis pas les articles que l'on te propose, mais les réponses non plus...
BenBox
Messages postés12Date d'inscriptiondimanche 13 août 2017StatutMembreDernière intervention27 août 2017
>
Whismeril
Messages postés18624Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023 27 août 2017 à 14:35
Je l'ai collé mais ayant une erreur de syntaxe, je me disais " je me suis trompé de ligne "
Whismeril
Messages postés18624Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention29 septembre 2023629
>
BenBox
Messages postés12Date d'inscriptiondimanche 13 août 2017StatutMembreDernière intervention27 août 2017 27 août 2017 à 15:09
Alors, c'est qu'il n'y a pas Imports System.IO tout en haut de ta classe.
Si tu ne mets pas l'import, tu dois te référer à l'espace de nom à chaque fois que tu en utilises un objet. Si tu mets l'import tu n'as plus à t'y référer.
Pour 1 ou 2 lignes de code, l'import n'est pas forcement utile, au delà ça fait gagner des caractères à tapper et tous les objets de l'espace de nom sont directement accessibles dans Intellisense
27 août 2017 à 13:43