2016-01-13 3 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} {/*****/}] 
Смежные вопросы