Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.053 c
2-1129816409
проходил_мимо_решил_зайти
2005-10-20 17:53
2005.11.13
Мемо и печать


1-1130231400
VID
2005-10-25 13:10
2005.11.13
OleContainer поднимает экспешн в обработчике OnChange !


2-1130222516
Шурик Ш
2005-10-25 10:41
2005.11.13
Есть перемнная типа TForm


14-1129490883
Knight
2005-10-16 23:28
2005.11.13
Помогите выбрать марку машины в пределах $3000


3-1128364558
Darkwing
2005-10-03 22:35
2005.11.13
Существует ли исходник BDE, независимый от Delphi и где взять?