2013-07-03 55 views
-4

好的,相信我,我已經研究過萬維網,並向幾位朋友詢問了這個問題。但我的代碼:http://pastebin.com/0JSA9MzA在那裏。指定的兩行之間的代碼應該爲startLine變量指定的文本行逐行檢查文本文檔,然後應該從oldFont變量更改爲newFont變量,然後結束於endLine變量。但是每當我運行它時,它都無法產生結果,並且不會給出任何錯誤。C#不會更改文本文件中的行

+2

請獲取代碼的相關部分和其嵌入你的問題。 –

+0

-1:請做內聯代碼,這是問題,而不是提供一個鏈接。不需要「到處搜索」評論。 –

回答

2

那麼你的代碼不會改變文件中的文本,除非你告訴它改變文件中的文本。您目前只修改您閱讀的文本,但是您不會將其寫回文件。

0

試試這個:

private void editText() 
    { 
     System.IO.StreamReader read = new System.IO.StreamReader(filePath); 

     //write to new file because it's not possible to replace text in existing file directly 
     System.IO.TextWriter writer = new System.IO.TextWriter(filePath+"_"); 

     while ((line = read.ReadLine()) != null) 
     { 
      writer.WriteLine(line); //write unmodified line to new file 

      if (startLine == line) 
      { 
       while ((line = read.ReadLine()) != null) 
       { 
        if (line == endLine) 
        { 
         writer.WriteLine(line); //write unmodified line to new file 
         break; //exit cycle 
        } 
        else 
        { 
         line = line.Replace(oldFont, newFontS); //replace content in line 
         writer.WriteLine(line); //write modified line to new file 
        }      
       } 
      } 
     } 

     read.Close(); 
     writer.Close(); 

     System.IO.File.Delete(filePath); //delete old file 
     System.IO.File.Move(filePath+"_",filePath); //rename new file to original filename    


     MessageBox.Show("Done!"); 
    } 
+0

它不工作,因爲TextWriter不能像那樣使用,所以我使用StreamWriter將它切換出來,並且它不起作用。 –

+0

我修復了你的代碼!有用! –

相關問題