Главная страница
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.048 c
14-1129816780
CrazyDog
2005-10-20 17:59
2005.11.13
64 bit поддержка в Delphi


4-1125746538
psa247
2005-09-03 15:22
2005.11.13
DeleteMenu


14-1130220930
Slider007
2005-10-25 10:15
2005.11.13
Вопрос по настройке прав доступа для NTFS разделов


10-1106831444
Inco
2005-01-27 16:10
2005.11.13
Maссивы в IDL


6-1122587129
nik2be
2005-07-29 01:45
2005.11.13
Перехват и замена содержимого пакета в реальном времени