2012-09-10 143 views
0

请告诉我如何运行时间删除注释掉的代码/ * .. * /在我的存储过程。举例如下:如果我的SP在下面以这种方式发现了一批评论代码,则所有评论代码将被删除,包括评论标记。如何删除评论行

/* 
    INSERT INTO MATERIAL.GTT_DMD 
     (
     asof_src_dt 
     , asof_src_tm 
    ) 
     SELECT 
     asof_src_dt 
     , CAST (asof_src_ts AS TIME(0)) AS asof_src_tm 
    FROM DEMAND.v_supl SNP_DMD 
*/ 

感谢您的支持,我找到了正则表达式

/\*[\w\W]*?(?=\*/)\*/ 

你能帮助审查,如果这是删除代码的最佳方式。谢谢。

public void DeleteCommentedCode(string filePath) 
    { 
     StreamReader input = new StreamReader(filePath); 

     Regex pattern = new Regex("/\*[\w\W]*?(?=\*/)\*/");    

      StreamReader streamReader = new StreamReader(filePath); 
     StreamWriter streamWriter = new StreamWriter(filePath + ".tmp"); 

     while (!streamReader.EndOfStream) 
     { 
      string data = streamReader.ReadLine(); 
      if(pattern.IsMatch(data)) 
      { 
       data = data.Replace(data, ""); // Replace with empty 
       streamWriter.WriteLine(data); 
      } 

     } 

     streamReader.Close(); 
     streamWriter.Close(); 
    } 
+0

其中在上面的查询注释的代码?你想从C#中删除注释的代码? – andy

+0

@belinq抱歉我的忍者编辑请自己动手... – rekire

+0

@Anandkumar:基本上是在运行时删除整段代码评论代码。 – VeecoTech

回答

1

假设你的意思是从存储过程中删除评论,这里有一篇关于提取SP内容的文章。

C#/SQL Get all Stored Procedures and their Code

要删除,你可以尝试使用正则表达式的评论,这里有一个很好的文章在清理SQL Statments一些正则表达式的例子。

http://larrysteinle.wordpress.com/2011/02/09/use-regular-expressions-to-clean-sql-statements/

+0

感谢您的发布。我在那里找到了正则表达式。我用我的最新解决方案编辑了我的帖子。你能证实吗? Thansk。 – VeecoTech