Текущий архив: 2005.11.13;
Скачать: CL | DM;
Вниз
Может убрать строку { KOL MCK } // Do not remove this line Найти похожие ветки
← →
bar (2005-03-22 08:49) [0]У меня такой вопрос-предложение. Суть его вот в чем. Я пользуюсь форматером кода, который ставит пробел после коментариев. В общем сам форматер штука удобная но в кол проектах её использовать невозможно так как он меняет строку "{ 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 при следующем обновлении?
Или в том, что эту магическую строчку нельзя не только удалять, но даже изменять есть тайнай смысл?
← →
Владимир Кладов (2005-03-22 15:12) [1]в раздел констант добавить
TrimSignature = "{KOLMCK}//DONOTREMOVETHISLINE!";
а потом вы берете проект собранный MCK с одной версией этой строки, и не можете с ним работать в жругой версии. Я не пользуюсь форматерами. Строчка должна быть. Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы.
← →
SPeller © (2005-03-22 19:12) [2]Владимир Кладов (22.03.05 15:12) [1]
Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы.
Я думаю этого будет достаточно, потому что из-за пробелов после форматтера народ и мучается.
← →
bar (2005-03-24 09:52) [3]Собственно в пробелах и проблема.
>>Владимир Кладов
Могу переделать, чтобы при сравнении на предмет этой строки игнорировал пробелы
Насколько я разобрался в MCK предложеный мною код именно и делает это: Игнорирует пробелы в строке сигнатуры. А в прект дрбавляется оригнинальная сигнатура. Во всяком случае после изменений у меня не возникало проблем. Проект сделанный в MCK с моими изменениями нормально работал с оригинальным MCK, и наоборот.
Так, что если не сложно переделайте, чтобы при сравнении на предмет этой строки игнорировались пробелы.
Буду очень благодарен.
Страницы: 1 вся ветка
Текущий архив: 2005.11.13;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.048 c