2013-05-28 51 views
1

我想製作一個程序,用文字搜索所需的字符(字母),用cs等替換它們並保存文件。然而,在我的嘗試中,我得到了一些愚蠢的跡象,所以這意味着它錯誤地打開了文件。當我嘗試添加encoding.unicode時,它給我錯誤(如下所示)。還有一個問題,我如何製作一個程序,通過將它們拖入.exe文件來打開文件。錯誤的編碼,輸出文件給出 而不是普通字符

錯誤3爲 最好重載方法匹配 'System.IO.File.Open(字符串,System.IO.FileMode, System.IO.FileAccess)' 具有一些無效 參數C:\用戶\ Vulisha \應用程序數據\本地\臨時 項目\ ConsoleApplication1 \ Program.cs的14 59 ConsoleApplication1

錯誤4參數 '3':不能從 'System.Text.Encoding' 轉換到 'System.IO.FileAccess' C: \ Users \ Vulisha \ AppData \ Local \ Temporary Projects \ ConsoleApplication1 \ Program.cs 14 122 ConsoleApplication1

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 


namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      using (StreamReader stream = new StreamReader(File.Open(@"C:\Users\Vulisha\Desktop\titl.txt", FileMode.Open))) 
      { 
       string fileText = stream.ReadToEnd(); 

       // Do your replacements 
       fileText = fileText.Replace(@"č", @"c"); 
       fileText = fileText.Replace(@"ć", @"c"); 
       fileText = fileText.Replace(@"š", @"s"); 
       fileText = fileText.Replace(@"ž", @"z"); 
       fileText = fileText.Replace(@"đ", @"d"); 
       fileText = fileText.Replace(@"Č", @"C"); 
       fileText = fileText.Replace(@"Č", @"C"); 
       fileText = fileText.Replace(@"Š", @"S"); 
       fileText = fileText.Replace(@"Ž", @"Z"); 
       fileText = fileText.Replace(@"Đ", @"D"); 

       using (StreamWriter writer = new StreamWriter(File.Open(@"titl.txt", FileMode.Create))) 
       { 
        // You do a create because the new file will have less characters than the old one 
        writer.Write(fileText); 
       } 
      } 
     } 
    } 
} 
+0

如果文件被放到可執行文件中,它們將作爲命令行參數傳遞。這就是'Main(string [] args)'方法中的'args []'數組。 –

+0

非常感謝你的歡迎,我現在會玩這個字符串的參數,我現在將更加註意這個 – Vulisha

回答

6

您需要更加謹慎地放置圓括號。您需要

new StreamWriter(File.Open(@"titl.txt", FileMode.Create), Encoding.Unicode) 

,但你寫

new StreamWriter(File.Open(@"titl.txt", FileMode.Create, Encoding.Unicode)) 

看到區別?

+0

ohhh我很愚蠢:P,非常感謝你解決了這個問題,實際上我使用Encoding.Default cuz Unicode不會總是工作,但謝謝 – Vulisha