2013-09-12 3 views
-4

Я использую следующий код. Он отображает только файл HTML в поле списка Я хочу заменить Рисунок 1, Рисунок 1.2, Рисунок 2, Рисунок 2.1 так далее ....... с рисунком 1 ........... в OutPutЗаменить в Html-файле

пожалуйста, помогите мне

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     FileInfo file = new FileInfo(textBox1.Text); 
     StreamReader stRead = file.OpenText(); 
     while (!stRead.EndOfStream) 
     { 
      listBox1.Items.Add(stRead.ReadLine()); 
     } 
    } 
} 

выход

<html> 
<head> 
</head> 
<body> 
<div> 
<p class="epigraph"> very Figure 1 But thanks to you, we won&#x0027;t do it </p> 
<p class="epigraph-right"> birthday Figure 1.1 Milton Friedman, November 8, 2002</p> 
<p class="indent">Not Figure 2 able to take it any longer New York </p> 
<p class="indent">Mr. Cutler Figure 2.1 of the parallel plunges</p> 
</body> 
</div> 
</html> 
+2

'String.Replace (строка, строка)' MSDN [здесь] (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx) – Liam

+1

вы можете использовать Regex – Thaven

+0

@Liam В общем, замена в dom не так просто. – Leri

ответ

1

Я думаю, что вы должны проверить, что

FileInfo file = new FileInfo(textBox1.Text); 
StreamReader stRead = file.OpenText(); 
while (!stRead.EndOfStream) 
{ 
    string strTemp = stRead.ReadLine(); 
    for (int i = 1; i < MaxFigureCount; i++) 
     strTemp = strTemp.replace("Figure "+i+" ", "Figure "+i+".x "); 
    listBox1.Items.Add(strTemp); 
} 

как вы можете видеть Я не знаю вашего MaxFigureCount также у меня есть ".x", поскольку я не могу понять, что вы пытаетесь сделать.

также у меня есть дополнительное пространство в конце, чтобы убедиться, что мы не пропустим с 2.1 или 1.2, если они уже существуют.

+0

Ошибка \t Найдено: «строка» не содержит определения для «replace», и не существует метода расширения «replace», принимающего первый аргумент типа «string». – user2753776

+0

@ user2753776 Возможно, прочитайте документацию (что несколько человек опубликовали) для ** Заменить **? или проверить intelli-смысл в VS? Немного независимой мысли может пройти долгий путь – Liam

+1

Нужно начать с капитала R, я написал это на своем iPad :) –

0

Использование String.Replace

while (!stRead.EndOfStream) 
{ 
    string test = stRead.ReadLine(); 
    string correctString = test.Replace("Figure 1", " Figure 1.2"); 
    //Etc. etc..... 
    listBox1.Items.Add(correctString); 
} 
0

Попробуйте с Regex.Replace:

listBox1.Items.Add(Regex.Replace(stRead.ReadLine(), @"\sFigure \d+.\d+\s", " Figure 1 ")); 

Я сделал некоторые испытания и, видимо, работают хорошо, но я не эксперт регулярных выражений синтаксиса.

Смежные вопросы