Bonjour,
J’ai un fichier texte que je charge dans un TextArea puis j’enregistre ses modifications.
Lors de l’enregistrement (ci ci-dessous) le contenu du TextArea se rajoute au contenu du fichier texte initial au lieu de le remplacer ! (double texte + modifs). Comment faire pour n’ajouter que les modifications au fichier ?
Dim t As TextOutputStream
Dim f As FolderItem = SpecialFolder.Desktop.Child("MyFile.txt")
If f <> Nil Then
if f.Exists Then
Try
t = TextOutputStream.Open(f)
//t.Writeline(TextArea1.Text)
t.Write(TextArea1.Text)
t.Close
Catch e As IOException
MsgBox("Erreur d'accès au fichier !")
End Try
End If
End
This code appends the text in TextField1 to the text file that was opened
C’est ce que tu fais.
Doit-on attendre que tu poses la question en anglais ?
Emile t’a demandé d’indiquer les solutions à tes questions.
Les forums sont à double sens et pas uniquement vers toi…
Ce sera ma dernière réponse.
“Doit-on attendre que tu poses la question en anglais ?”
Ah bon ? Je ne savais pas que ca posait des soucis à certaines personnes…
Ok, je vais notifier les solutions, je ne savais pas.
Je suis a fond sur un projet, après avoir arrêté la programmation pendant 10 ans, donc effectivement c’est un peu à sens unique en ce moment car j’ai la tête dans le guidon.
Effectivement, mais tous les exemples que j’ai lu utilisent “TextOutputStream”, alors si ce n’est pas cette commande, ce serait sympa de m’indiquer laquelle, ?
D’après la documentation, la méthode Write ne peut qu’écrire à partir de la fin. Donc pour remplacer le contenu il faudrait d’abord vider le fichier, sauf qu’il n’y a pas de méthode pour ce faire.
Ma suggestion est de:
Fermer le fichier une fois lu
Quand l’utilisateur clique un bouton pour sauvegarder le texte:
Copier le fichier original, supposons texte.txt dans texte.BAK. Si le fichier .BAK existe il faut d’abord le détruire
Recréer le fichier texte.txt
Puis exécuter la méthode Write dans le fichier recréé
Merci pour ta réponse c’est très clair.
Sauf que moi c’est pour éditer le fichier .hosts donc ca se complique un peu mais dans le principe je pense que ce soit être la même démarche.
FolderItem je commence à bien le maitriser.
Et tu sauras faire exactement ce que tu as demandé (enfin, pas dans le titre qui lui ne parle que des modifications, ce qui est autre chose (a)).
(a). Le vieux (très vieux) World enregistrait par défaut toutes les modifications apportées au document à la suite. Pour obtenir le contenu du document dans le fichier, il y avait une procéduere spéciale et World écrivait le document “tel quel” dans le fichier (du début à la fin, pas la liste des modifications à la suite les unes des autres…). Plus lent à l’écriture, mais plus rapide à la lecture (le fichier était lu d’un coup, et pas reconstitué à partir de toutes les modifications…).