从文本文件中读取文件,以编程方式编辑每一行,并将其输出到另一个txt文件中



我有一个文本文件,它有这样的链接列表:

<A title=Accept href="https://www.google.com/url?q=https%3A%2F%2Fregister.eragenx.com%2Freferral%3Freferrer%3Demail%26invitationToken%3D1f7ae07e4cb1ed96a7fc5f6de10376d9%26email%3Dlovessoumi.tra123456789soumit90%2540gmail.com&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGdIeh6LFs4H5TvysbSV7DjUk2Tuw" target=_blank>Sign Up Now For Free.</A>

用我的程序和点击按钮的事件,我想编辑每一行文件,如:

https://register.eragenx.com/referral?referrer=email&invitationToken=fd78d9fdf6281e033b389cb14e118f85&email=lovesleeping1234567.8sleepin.g97%40gmail.com

这就是我正在尝试的,但似乎不起作用,我做错了什么?

public void editline()
        {

            string[] lines = File.ReadAllLines("link.txt");
            foreach (var line in lines)
            {
                line.Substring(51,171);
                line.Replace("%3A", ":");
                line.Replace("%2F","/");
                line.Replace("%3F","?");
                line.Replace("%3D" , "=");
                line.Replace("%26","&");
            }
            File.WriteAllLines("output.txt",lines);


        }

我也试过这个:

public void editline()
        {

            string[] lines = File.ReadAllLines("link.txt");

            foreach (var line in lines)
            {
               HttpUtility.UrlDecode(line.Substring(51, 171));

            }

            File.WriteAllLines("output.txt", lines);
}

这个:

public void editline()
        {

            string parsedLine = null;
            string[] lines = File.ReadAllLines("link.txt");

            foreach (var line in lines)
            {

                parsedLine = line.Substring(51, 171);
                parsedLine = line.Replace("%3A", ":");
                parsedLine = line.Replace("%2F", "/");
                parsedLine = line.Replace("%3F", "?");
                parsedLine = line.Replace("%3D", "=");
                parsedLine = line.Replace("%26", "&");
            }

            File.WriteAllLines("output.txt", lines);
}

但是输出与link.txt中的链接相同该方法在output.txt 中没有更改

请帮助

line没有更改的原因是您没有存储substringreplace函数的结果。

应该是这样的:

string parsedLine= null;
foreach (var line in lines)
{
  parsedLine = line.Substring(51,171);
  parsedLine = parsedLine.Replace("%3A", ":");
  parsedLine = ...
}
//use parsedLine here...

您应该使用此处的HttpServerUtility.UrlDecode()方法:http://msdn.microsoft.com/en-us/library/6196h3wt(v=vs.110).aspx

public void editline()
    {
        string[] lines = File.ReadAllLines("link.txt");
        foreach (var line in lines)
        {
           line = line.Substring(51,171);
           line = line.Replace("%3A", ":");
          line =  line.Replace("%2F","/");
           line = line.Replace("%3F","?");
           line = line.Replace("%3D" , "=");
           line = line.Replace("%26","&");
        }
        File.WriteAllLines("output.txt",lines);
    }

看看替换方法。它返回修改后的字符串,而不修改您传入的字符串。

最新更新