2012-09-10 195 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