2011-09-04 5 views
0

Je tente de modifier plusieurs éléments dans une zone de texte enrichi. Quand je lance mon code le seul thats élément modifié est la premièreRemplacement de plusieurs éléments dans la zone de texte enrichi

try 
      { 
       using (StreamReader reader = new StreamReader(path)) 
       { 
        while (!reader.EndOfStream) 
        { 
         richTextBox1.AppendText(reader.ReadLine()); 
         richTextBox1.Rtf = richTextBox1.Rtf.Replace(textBox1.Text, textBox2.Text); 
        richTextBox1.Rtf = richTextBox1.Rtf.Replace(textBox3.Text, textBox4.Text); 
        richTextBox1.Rtf = richTextBox1.Rtf.Replace(textBox5.Text, textBox6.Text); 

        } 

       } 

       // using (StreamWriter writer = new StreamWriter(path)) 
       // { 

       // } 
      } 
+0

s'il vous plaît décrire mieux . Dans le premier append vous ajoutez une nouvelle ligne de texte à la fin du flux. Après cela, vous remplacez toute la valeur textuelle de tb1 par celle de tb2. Est-ce que cela fonctionne aussi? Et les autres? –

Répondre

0

Je pense aussi votre chemin à boucle dans le StreamReader n'est pas optimale, le plus souvent il est gérer comme ceci:

using (StreamReader sr = new StreamReader("TestFile.txt")) 
    { 
     String line; 
     // Read and display lines from the file until the end of 
     // the file is reached. 
     while ((line = sr.ReadLine()) != null) 
     { 
      Console.WriteLine(line); 
     } 
    } 
+0

Le fichier que je suis en train d'éditer est un document HTML (Template), j'ai besoin de changer le modèle et enregistrer la réponse dans un fichier différent. Il y a quelques champs que j'ai besoin de changer 1: prénom 2: nom de famille 3: nom de parent, ces valeurs apparaissent plus d'une fois, la raison pour laquelle je suis incapable dynamiquement est d'utiliser dropbox pour héberger les fichiers, et dropbox ne supporte pas asp.net, php – Mike

+0

ok mais cela n'a rien à voir avec le problème. essayer de remplacer votre lecture de flux avec le snipped je vous ai donné ici, en adaptant à votre cas et laissez-nous savoir si cela fonctionne :) –

+0

while ((line = sr.ReadLine())! = null) { ligne = ligne. Replace (textBox1.Text, textBox2.Text); ligne = ligne.Remplacer (textBox3.Text, textBox4.Text); ligne = ligne.Remplacer (textBox5.Text, textBox6.Text); Debug.WriteLine (ligne); } ne change que la première variable – Mike

Questions connexes