2013-05-28 58 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