IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

TextBox et RichTextBox dans le même fichier [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Par défaut TextBox et RichTextBox dans le même fichier
    Bonjour,

    Voilà quelques jours que j'ai débuté sous VB.net et je cale devant un problème:
    J'ai une Form avec une Textbox et une RichTextBox...jusque là tout va bien.

    J'aimerais qu'à la fermeture de l'application par la croix ou par un "quitter" le contenu de la TextBox et de la RichTextBox soit enregistré dans un fichier texte.

    À la réouverture de l'application, la TextBox et la RichTectBox sont remplies avec l'enregistrement qui se trouve dans le fichier texte créé précédemment.

    J'ai trouvé comment copier le contenu de la TextBox, mais les deux en même temps je ne trouve pas....

    Merci

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Comme ceci pour une Richtextbox par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Imports System.IO
    Public Class Form1
     
        Private TxtFile As String = My.Application.Info.DirectoryPath & "\Saving.txt"
     
        Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            If Not Me.RichTextBox1.Text Is Nothing Then
                System.IO.File.WriteAllText(TxtFile, Me.RichTextBox1.Text)
            End If
        End Sub
     
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            If File.Exists(TxtFile) Then
                Me.RichTextBox1.AppendText(System.IO.File.ReadAllText(TxtFile))
            End If
        End Sub
    End Class

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Par défaut
    ok, merci.

    J'ai trouvé pour le faire individuellement pour une TextBox ou RichTextBox, mais le faire pour toutes les deux en même temps, ça ne marche pas.

    La mise en forme de la RichTextBox n'est pas gardé....

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Pour le richtextbox, il vaut mieux utilisser les méthodes de celui-ci (SaveFile et LoadFile)
    La sauvegarde de la mise en forme est ainsi effectuée.

    Maintenant si vous souhaitez aussi intégrer le texte du textBox, (textBox simple ligne, une seule, donc pas multiligne) il suffit
    A la sauvegarde : de rajouter ce texte sur une ligne supplémentaire à la fin du richTextBox avant de sauvegarder avec RichTextBox1.SaveFile,
    A la lecture du fichier rtf : apès lecture du fichier rtf (RichTextBox1.LoadFile) de remettre cette dernière ligne dans le textBox puis de la supprimer du richtextBox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
            RichTextBox1.AppendText(Environment.NewLine & TextBox1.Text)
            RichTextBox1.SaveFile("d:\data\rtb.rtf")
        End Sub
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            RichTextBox1.LoadFile("d:\data\rtb.rtf")
            TextBox1.Text = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1)
            RichTextBox1.SelectionStart = (RichTextBox1.Text.Length - TextBox1.Text.Length) - 1
            RichTextBox1.SelectionLength = TextBox1.Text.Length + 1
            RichTextBox1.SelectedText = ""
        End Sub
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 60
    Par défaut
    Le code m'a l'air très intéressant, mais j'ai une erreur "L'index se trouve en dehors des limites du tableau."

    la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Text = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1
    pose problème.

    Je pense que c'est le fichier de départ qui pose souci...

    La RichTextBox rajoute un saut de ligne à l'enregistrement.

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    J'avais juste mis le code pour le principe de fonctionnement.
    Dans le cas ou le fichier est vide au départ, il n'y a pas de ligne, (on se retrouve donc avec un indice à -1, ce qui est en dehors des limites du tableau) il faut donc faire un test. (ceci n'est utile que la pemière fois, ensuite, même si le TextBox et le RichTextBox sont vides il existera quand même une ligne (pour le TextBox, et l'indice sera 0).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            RichTextBox1.LoadFile("d:\data\rtb.rtf")
            If Not (RichTextBox1.Lines.Length = 0) Then
                TextBox1.Text = RichTextBox1.Lines(RichTextBox1.Lines.Length - 1)
                RichTextBox1.SelectionStart = (RichTextBox1.Text.Length - TextBox1.Text.Length) - 1
                RichTextBox1.SelectionLength = TextBox1.Text.Length + 1
                RichTextBox1.SelectedText = ""
            End If
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. mettre des données dans un méme fichier
    Par @min@ dans le forum Langage
    Réponses: 1
    Dernier message: 23/04/2007, 23h00
  2. Réponses: 5
    Dernier message: 15/03/2007, 11h21
  3. spooler dans le même fichier
    Par big1 dans le forum SQL
    Réponses: 1
    Dernier message: 25/09/2006, 14h06
  4. Réponses: 8
    Dernier message: 23/06/2006, 13h51
  5. Réponses: 5
    Dernier message: 08/12/2004, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo