2016-01-13 44 views
0

我正在逐行讀取文件。在該文件中,我想用註釋行替換 #endif聲明,其格式爲/******/。下面的代碼不觸及該線未更換字符串

while {[gets $in line] !=-1} 
{ 
    # if substring #endif is present in the string 
     if { [regexp {endif} $line] } { 

      set line [string replace "#endif" 1 7 "/*****/" } $line] 
     } 
} 
+0

有許多與代碼語法問題。當您嘗試運行它時是否會提供任何錯誤消息?這些通常是信息豐富的... –

回答

1

由於@Donal寫下你的「字符串替換」行有幾個問題 - 「} $行」部分是語法錯誤,一,範圍你是給比您想要替換的字符串長。也許你的意思是:

set line [string replace ${line} 1 6 "/*****/"] 

但是,假設「#ENDIF」部分是硬編碼到從該行的第二個字符開始。

我想什麼你問它更易於使用「regsub」:

set line [regsub {#endif} ${line} {/*****/}]