![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Может убрать строку '{ KOL MCK } // Do not remove this line
bar © (2005-03-22 08:49:00)У меня такой вопрос-предложение. Суть его вот в чем. Я пользуюсь форматером кода, который ставит пробел после коментариев. В общем сам форматер штука удобная но в кол проектах её использовать невозможно так как он меняет строку '{ KOL MCK } // Do not remove this line
после чего MCK начинает глючить. Поэтому вопрос. Может изменить MCK что бы он не так сильно зависел от этой строки.
Для себя сделал следующие изменения в mirror.pas.
в раздел констант добавить
TrimSignature = '{KOLMCK}//DONOTREMOVETHISLINE!';
добавить функции (или их аналоги)
function STrim(const s:String):String;
var t:String;
i:integer;
begin
t:='';
for i:=1 to Length(s) do
if s[i]>' ' then t:=t+UpCase(s[i]);
result:=t;
end;
function Sign(const s:String):Boolean;
var t:String;
i:integer;
begin
t:='';
for i:=1 to Length(s) do
if s[i]>' ' then t:=t+UpCase(s[i]);
result:=t=TrimSignature;
end;
в методе
function TKOLForm.GeneratePAS(const Path: String; var Updated: Boolean): Boolean;
Заменить
if Source[ I ] = Signature then
на
if Sign(Source[ I ]) then
В методе function TKOLProject.GenerateDPR(const Path: String): Boolean;
заменить
for I := 0 to Source.Count - 1 do
if pos( Signature, Source[ I ] ) > 0 then
на
for I := 0 to Source.Count - 1 do
begin
st:=STrim(Source[ I ]);
if pos( TrimSignature,st ) > 0 then
if S = Signature then continue; // skip signature if present
на
if sign(S) then continue; // skip signature if present
В методе function TKOLProject.GetIsKOLProject: Boolean;
заменить
if SL[ I ] = Signature then
на
if Sign(SL[ I ]) then
Теперь любое форматирование этой строчки DONOTREMOVETHISLINE не отражается на работе MCK.
Но изменять всё это при каждом обновлении KOL_MCK муторно.
Может стоит исправить сам mirror.pas при следующем обновлении?
Или в том, что эту магическую строчку нельзя не только удалять, но даже изменять есть тайнай смысл?
bar (2005-03-24 09:52:00) [1]Собственно в пробелах и проблема.
>>Владимир Кладов
Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы
Насколько я разобрался в MCK предложеный мною код именно и делает это: Игнорирует пробелы в строке сигнатуры. А в прект дрбавляется оригнинальная сигнатура. Во всяком случае после изменений у меня не возникало проблем. Проект сделанный в MCK с моими изменениями нормально работал с оригинальным MCK, и наоборот.
Так, что если не сложно переделайте, чтобы при сравнении на предмет этой строки игнорировались пробелы.
Буду очень благодарен.
SPeller (2005-03-22 19:12:00) [2]Владимир Кладов (22.03.05 15:12) [1]
Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы.
Я думаю этого будет достаточно, потому что из-за пробелов после форматтера народ и мучается.
Владимир Кладов (2005-03-22 15:12:00) [3]в раздел констант добавить
TrimSignature = '{KOLMCK}//DONOTREMOVETHISLINE!';
а потом вы берете проект собранный MCK с одной версией этой строки, и не можете с ним работать в жругой версии. Я не пользуюсь форматерами. Строчка должна быть. Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы.