В самой процедуре InsertHeader я создаю экземпляр TIEditReader для чтения нового модуля и TIEditWriter для его изменения.
unit
interface
uses
type
TIVCSNotifier = class
public
procedure
end
TIVCSEditorInterface = class
public
procedure
end
var
VCSNotifier : TIVCSNotifier;
VCSModuleInterface : TIModuleInterface;
VCSEditorInterface : TIVCSEditorInterface;
implementation
uses
{ ************************* Начало VCSNotifier **************************** }
procedure
var
begin
case
fnRemovedFromProject:
VCSProject.Remove(LowerCase(ExtractFileName(FileName)));
fnAddedToProject:
begin
if
{ новый файл с исходным кодом }
VCSModuleInterface := ToolServices.GetModuleInterface(FileName);
if
VCSEditorInterface := TIVCSEditorInterface(VCSModuleInterface.GetEditorInterface);
VCSEditorInterface.InsertHeader;
VCSEditorInterface.Free;
end
VCSModuleInterface.Free;
end
TmpFileName := LowerCase(ExtractFileName(FileName));
if
if
VCSProject.Recycle(TmpFileName);
end
end
end
end
end
{ ************************* Конец TIVCSNotifier *************************** }
{ ********************* Начало TIVCSEditorInterface ************************ }
procedure
var
Module, TmpFileName, UnitName, InsertText, Tmp : string
Reader : TIEditReader;
Writer : TIEditWriter;
APos : Integer;
F : TextFile;
begin
TmpFileName := ExtractFileName(FileName);
UnitName := SwapStr(TmpFileName, '.pas', '');
SetLength(Module, 255);
Reader := CreateReader;
try
Reader.GetText(0, PChar(Module), Length(Module));
finally
Reader.Free;
end
APos := Pos('unit ' + UnitName, Module);
if
try
InsertText := '';
AssignFile(F, VCSConfig.HeaderFileLocation);
Reset(F);
while not
Readln(F, Tmp);
InsertText := InsertText + #13 + #10 + Tmp;
end
CloseFile(F);
InsertText := InsertText + #13 + #10;
Writer := CreateWriter;
try
Writer.CopyTo(APos - 1);
Writer.Insert(PChar(InsertText));
finally
Бьерн Страуструп , Бьёрн Страуструп , Валерий Федорович Альмухаметов , Ирина Сергеевна Козлова
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT