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 :

Enregistrer Richtextbox VB 2005


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut Enregistrer Richtextbox VB 2005
    Bonjour,

    Je cherche à enregistrer le contenu d'une richtextbox (en gardant le formatage) dans un fichier .rtf existant, pour cela j'utilise Richtextbox.savefile(nom_fichier). Le probleme, c'est que cette méthode écrase le fichier à chaque fois que le programme écrit dans le fichier.rtf. Je voudrais que le programme ajoute le contenu de la richtextbox dans le fichier.rtf
    Si quelqu'un a une idée...
    J'ai bien pensé enregistrer le contenu de la richtextbox dans un fichier temporaire puis concaténer les 2 fichiers .rtf, mais là je suis encore plus largué...
    Merci d'avance...
    Aurel

    PS: je suis sur VB Express 2005

  2. #2
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Si tu veux garder le formatage de ta rtb, tu seras obligé de te contenter de la methode savefile. Sinon utilises les classes "streamreader" et "streamwriter" pour ajouter tes données nouvelles à ton fichier.

    Peut etre que ta méthode de concatener les deux fichiers rtf est bonne mais je crains que tu va perdre le formatage lors de l'ajout.
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  3. #3
    Membre Expert
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 183
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 183
    Par défaut
    Bonjour.

    A mon avis, faut :
    - ouvrir ton fichier
    - récupérer via un dataobject le contenu rtf
    - le placer dans un string A
    - dans A virer la balise de fin \par}
    - récupérer le .rtf de ton RTB dans un string B
    - dans B supprimer les balises de début {\rtf1\ansi\...
    - concatener A + B
    - ouvrir un stream en append sur ton fichier
    - déclarer un nouveau RTB
    - mettre A + B dans le rtf de ce RTB
    - écrire via savefile dans le stream de fichier

    C'est quand même assez lourdingue comme technique mais ça se creuse !!!

    Cdt.

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut
    Bonjour et merci pour vos réponses,

    En partant de vos réponses, j'ai en partie résolu mon pb avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim RTB1 As New RichTextBox()
    RTB1.LoadFile(Fichier_Save)
    RTB1.AppendText(RTB2.Text) 
    RTB1.SaveFile(Fichier_Save)
    Le probleme c'est que je perds le formatage du texte. Y a t'il une possibilité de copy et coller le contenu d'une Richtextbox dans une autre en gardant le formatage (police, taille, ...)? Je me suis bien penché sur streamreader et streamwriter mais je n'y comprends absolument rien (si quelqu'un avait un exemple très simple...). Et cette méthode permet-elle de conserver le format? Et comment dois-je faire pour récupérer le contenu de la RTB avec un Dataobject?

    Merci.

    Aurel

  5. #5
    Membre Expert
    Avatar de Aspic
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    3 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 3 905
    Par défaut
    Le probleme c'est que je perds le formatage du texte
    Et oui c'est bien ce que je t'avais dis... tu ne pourras pas garder le formatage du texte précédemment enregistré dans ton fichier quelque soit la méthode. Ou alors avec des balises RTF (que je ne connais pas) tu pourras sans doute retranscrire la police et la couleur du texte.

    StreamReader et StreamWriter sont deux classes très simples pour la gestion des fichiers. VOici une exemple : Ecriture et lecture dans un fichier

    PS: N'oublit pas de mettre ton code dans les balises "code" prévues à cet effet. Ton code sera ainsi plus visible et tu auras sans doute plus de réponses !
    Qui ne tente rien n'a rien !
    Ce qui ne nous tue pas nous rends plus fort !!
    Mon projet ZELDA en C++/Allegro
    http://www.tutoworld.com - Le Forum -
    Mes ressources Dotnet (cours, sources, tutos)
    --------------------------------------------
    + + =

    Ne pas oublier le Tag !

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Par défaut
    Bonjour,

    Suite à vos réponse, j'ai pu finalement aboutir à une solution qui me convient.

    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
    19
    20
    21
     
    Dim RTBtemp As New RichTextBox()
    Dim A, B As String
    Dim IndexDebut As Integer
    RTBtemp.LoadFile(Fichier_Save)
    A = RTBtemp.Rtf
    B = RichTextBox1.Rtf
    ' Suppression balise de fin de A.
    A = A.Remove(A.Length - 5, 5)
    ' suppression balise début de B.
    IndexDebut = B.IndexOf("DEBUT DU TEXTE")
    B = B.Remove(0, IndexDebut - 9)    
    ' Concatenation.
    A = String.Concat(A, B)
    Using sw As StreamWriter = File.CreateText("C:FichierTemp")
    sw.Write(A)
    sw.Close()
    End Using
    RTBtemp.LoadFile("C:FichierTemp", RichTextBoxStreamType.RichText)
    RTBtemp.SaveFile(Fichier_Save, RichTextBoxStreamType.RichText)
    My.Computer.FileSystem.DeleteFile("C:FichierTemp")
    En ce qui concerne les balises de debut et de fin du fichier RTF, j'ai d'adord crée le fichier .rtf final que je souhaitais obtenir via wordpad. Je l'ai ensuite insérer à une richtextbox RTB_Final. Puis j'ai comparé RTB_Final.rtf et A (issu de la concatenation A = String.Concat(A, B); j'en ai déduit ce que je devais supprimer en début et en fin (d'où le -9 et -5). c'est pas joli mais ça marche.

    NOTA : chaque texte inséré doit commencer par la même chaine de caractere (ici, DEBUT DU TEXTE), mon objectif étant d'ajouter des paragraphes qui commencent tous par le meme mot, cela me convient.

    Aurel

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

Discussions similaires

  1. Enregistrement Delphi 2005 Perso
    Par Tardiff Jean-François dans le forum EDI
    Réponses: 7
    Dernier message: 29/10/2012, 16h59
  2. Numero d'enregistrement [CR][VS 2005]
    Par HULK dans le forum SDK
    Réponses: 10
    Dernier message: 16/01/2008, 15h50
  3. [C# VS 2005 Express] Form/List/ListBox/RichTextBox interactions
    Par SDragon dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/07/2006, 19h06
  4. Enregistrement Delphi 2005 Perso ?
    Par Tardiff Jean-François dans le forum EDI
    Réponses: 3
    Dernier message: 23/03/2006, 14h22
  5. Réponses: 4
    Dernier message: 08/11/2005, 18h03

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