0

我知道,我知道,我可能把你弄糊涂了!:)

我有这个:

namespace WebPageHeaderFixer
{
    class Program
    {
        static void Main(string[] args)
        {
            string folderToSearch = @"C:\Test\";

            foreach (string file in Directory.GetFiles(folderToSearch))
            {
                string fileString = File.ReadAllText(file);

                //Here, I want to insert string X into "fileString" AFTER string Y.
            }
        }
    }
}

我想在 LAST Register TagPrefix 之后将字符串 X 添加到变量 fileString 中:

<%@ Register TagPrefix="ucCal" TagName="popupCalendar" Src="../UserControls/popupCalendar.ascx" %>
<%@ Register TagPrefix="ucRes" TagName="Search" Src="../UserControls/SearchControl.ascx" %>
<%@ Register TagPrefix="abc" TagName="header" Src="../Header.ascx" %>
//I want to insert X here
other code
some more code
some ugly code

我该怎么做呢?

*请注意,文件之间的最后一个注册标签可能不同。

4

2 回答 2

1

您可以逐行读取文件而不是单个字符串吗?然后,您可以循环浏览这些行以查找您感兴趣的字符串的最后一次出现,然后您可以将这些行写回文件,在其后插入您的字符串。

于 2013-07-13T00:23:01.127 回答
1

使用 insert 方法和 indexof 方法和 lastindexof 方法可以这样做:

int LastRegister = fileString.LastIndexOf("Register TagPrefix");
int InsertPosition = fileString.IndexOf('>', LastRegister) + 2;
fileString = fileString.Insert(InsertPosition, "String x");

这会将插入位置设置为在最后一次出现“Register TagPrefix”之后的“>”索引之后 2 个字符,这应该将插入位置放在下一行的开头。如果字符串有 2 个字符作为行尾,您可能必须将插入位置再偏移一个。

于 2013-07-13T06:34:17.620 回答