Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VB.net] retour à la ligne

Sujet résolu
    6 juin 2011 à 21:25:07

    Bonjour,
    J'aimerais enregistrer des retour à la ligne de ma textbox vers un fichier texte, mais je n'y arrive pas, tout le texte de ma textbox est enregistrer dans mon fichier .txt, mais pas les retour à la ligne.
    Voici mon code.
    Function enregistrer() As System.IO.StreamWriter
    
    
            If Form2.extension Is Nothing Then
    
                System.IO.File.WriteAllLines(openFileDialog1.FileName, New String() {RichTextBox1.Text})
    
            Else
                Dim fichier As New StreamWriter(Form2.extension)
                fichier.WriteLine(RichTextBox1.Text)
                fichier.Close()
            End If
    
            Return Nothing
        End Function
    
    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2011 à 22:05:34

      unction enregistrer() As System.IO.StreamWriter
      
      
              If Form2.extension Is Nothing Then
      
                  System.IO.File.WriteAllLines(openFileDialog1.FileName, New String() {RichTextBox1.Text})
      
              Else
                  Dim fichier As New StreamWriter(Form2.extension)
                  fichier.WriteLine(RichTextBox1.Text.Replace(Chr(10), vbCrLf))
                  fichier.Close()
              End If
      
              Return Nothing
          End Function
      


      Essaye ceci. Non testé mais ça doit rouler !
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        7 juin 2011 à 23:18:17

        Encore mieux :
        fichier.WriteLine(RichTextBox1.Text.Replace(Convert.ToChar(10), Environment.NewLine))
        

        :-°

        PS : Pourquoi retourner un StreamWriter si tu retournes toujours Nothing ?
        • Partager sur Facebook
        • Partager sur Twitter
          7 juin 2011 à 23:38:24

          héhé merci sa fonctionne...
          Pouvez-vous me dire que veut dire .replace et convert etc..

          j'ai une autre question, quand je clique sur "maximize" mon application deviens grande, mais elle est en bas du menu démarré, j'aimerais faire comme notepad quand il est agrandi il s'arrête avant le menu démarré.
          Et aussi j'ai une richtextbox dans ma form et j'ai centré, mais quand j'agrandie mon application le haut est la gauche reste centré, mais pas le bas ni la droit.
          • Partager sur Facebook
          • Partager sur Twitter
            8 juin 2011 à 4:41:13

            Bonjour,

            Pour commencer : Pour remplacer dans une chaîne de caractères Aethec et Lakh92 ont déjà montré la manière de procéder :
            'Dans une variable
            Dim newText As String = richTextBoxText1.Text.Replace("a"c, "1"c)
            'Directement dans le contenu de la RichTextBox
            richTextBox1.Text = richTextBoxText1.Text.Replace("a"c, "1"c)
            'S'il faut remplacer tout les A (minuscules ou majuscules) on peut faire par exemple
            richTextBoxText1.Text.Replace("a"c, "1"c).Replace("A"c, "1"c)
            
            "1"c signifie le caractère 1 là où "1" signifie la chaîne de caractères 1 dans l'exemple donné, on peut indifféremment utiliser l'un ou l'autre sous réserve de rester constant - n'utiliser que des caractères ou que des chaînes


            Ensuite je comprends pas trop le problème d'origine, j'ai beau tenter de toutes les façons que je veux, la sauvegarde conserve systématiquement les retours à la ligne chez moi o_O
            Au passage une autre méthode pour sauvegarder le contenu d'une RichTextBox dans un fichier :
            richTextBox1.SaveFile("chemin du fichier", RichTextBoxStreamType.PlainText)
            

            Enfin petit détail qui me chipote, je trouve bizarre d'utiliser un OpenFileDialog pour écrire dans un fichier, ne serait-il pas mieux d'utiliser un SaveFileDialog ?

            Pour résumer, voici une procédure complète avec gestion des erreurs de la sauvegarde lors du clic sur le bouton du contenu d'une RichTextBox dans un fichier sélectionné par l'utilisateur,
            dont on change les A (minuscules ou majuscules) par des 1 directement dans la RichTextBox :
            'J'utilise pas les mêmes noms de contrôles mais ça devrait pas être trop dur de savoir qui est qui
            Private Sub saveContentButton_Click(ByVal sender As Object, ByVal e As EventArgs) Handles saveContentButton.Click
                ' Création d'un nouveau SaveFileDialog avec définition de certaines de ses propriétés
                ' Si cette syntaxe gêne on "pourrait" aussi écrire
                ' Using sfd As New SaveFileDialog()
                '     sfd.DefaultExt = "txt"
                '     sfd.Filter = ...
                Using sfd As New SaveFileDialog() With {
                    .DefaultExt = "txt",
                    .Filter = "Text Files (.txt)|*.txt",
                    .OverwritePrompt = True,
                    .Title = "Save as..."
                }
                    If sfd.ShowDialog(Me) = DialogResult.OK Then
                        ' Si l'utilisateur a bien choisi un fichier on remplace les A
                        contentRichTextBox.Text = contentRichTextBox.Text.Replace("a"c, "1"c).Replace("A"c, "1"c)
                        Try
                            ' On tente d'enregistrer le contenu dans le fichier
                            contentRichTextBox.SaveFile(sfd.FileName, RichTextBoxStreamType.PlainText)
                        Catch ioex As IO.IOException
                            ' En cas de souci on informe l'utilisateur que l'opération a été interrompue
                            MessageBox.Show(Me, ioex.Message, "Operation interrupted", MessageBoxButtons.OK, MessageBoxIcon.Error)
                        End Try
                    End If
                End Using
            End Sub
            

            Cordialement !

            PS: Si certaines méthodes, propriétés ou mots clefs te sont étrangers, il te faudra les chercher dans la documentation officielle (une bonne habitude à prendre au passage ;) ) pour ce faire tu peux mettre le curseur de saisie sur l’élément concerné dans l'éditeur et appuyer sur F1 et/ou le rechercher sur cette page ou avec ton moteur de recherche préféré (souvent il suffit de précéder la recherche de "msdn" pour obtenir de bons résultats).
            </span>
            • Partager sur Facebook
            • Partager sur Twitter
            Censément, quelqu'un de sensé est censé s'exprimer sensément.
              8 juin 2011 à 4:48:46

              héhé merci pour les explications, mais j'ai réussi à trouver..
              mais, pour les dernières question je n'es pas trouvé...

              quand je clique sur "maximize" mon application deviens grande, mais elle est en bas du menu démarré, j'aimerais faire comme notepad quand il est agrandi il s'arrête avant le menu démarré.
              Et aussi j'ai une richtextbox dans ma form et j'ai centré, mais quand j'agrandie mon application le haut est la gauche reste centré, mais pas le bas ni la droit.
              • Partager sur Facebook
              • Partager sur Twitter
                8 juin 2011 à 5:12:26

                Décidément, je dois avoir un truc spécial à chaque fois chez moi ça fait pas pareil ou alors j'ai pas bien compris, moi quand je maximise ma fenêtre, elle s'arrête avant la barre des tâches (voir screen ; oui je sais les couleurs sont horribles mais c'était pour mieux y voir :p )
                Image utilisateur
                Quant au redimensionnement du RichTextBox, il faut que tu regardes du côté des propriétés Anchor et Dock.

                Par exemple dans mon screen, le Button a son Dock sur DockStyle.Bottom pour qu'il soit collé en bas et le RichTextBox est sur DockStyle.Fill pour prendre l'espace restant
                attention selon l'ordre de placement des contrôles sur le formulaire il faudra peut-être jouer avec le "Z-Index" (la superposition) à l'aide des options "Bring to front" et "Send to back" (en cliquant droit sur un contrôle dans le designer)


                Cordialement
                • Partager sur Facebook
                • Partager sur Twitter
                Censément, quelqu'un de sensé est censé s'exprimer sensément.
                  8 juin 2011 à 5:32:43

                  je comprends pas moi il ne s'arrête pas ....
                  et je n'es pas de scrollbar nonplus
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 juin 2011 à 12:42:56

                    Je signale au passage que la méthode File.WriteAllLines utilisée plus haut est censée écrire dans le fichier un ensemble de strings qui seront séparées par un retour à la ligne, ces lignes n'étant pas censées contenir de retour à la ligne elles-mêmes.

                    Pour écrire le contenu du fichier depuis une string qui gère elle-même les retours à la ligne, on utilise plutôt File.WriteAllText.

                    Donc le code de départ
                    System.IO.File.WriteAllLines(openFileDialog1.FileName, New String() {RichTextBox1.Text})
                    aurait du être
                    System.IO.File.WriteAllText(openFileDialog1.FileName, RichTextBox1.Text)
                    tout simplement. :)

                    • Partager sur Facebook
                    • Partager sur Twitter
                      8 juin 2011 à 23:36:07

                      merci,
                      Mais j'ai réglé mon problème maintenant j'ai un problème avec l'affichage...

                      ma richtextbox est au milieu de ma form et quand j'agrandi il y a une espace en haut et sur la gauche (la marge) pour que ma richtextbox sois au milieu, mais il n'y a pas d'espace en bas et la droit.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        9 juin 2011 à 20:51:42

                        Essaye de jouer avec les Anchors, je ne m'y connais pas assez, mais c'est une propriété du Control :)
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 juin 2011 à 10:49:06

                          c'est bon j'ai réussi à tout régler mes problèmes, merci.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          [VB.net] retour à la ligne

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown