如何比较两个大型Delphi单元,其中定义/实现顺序都不同



我有两个由同一WSDL导入生成的Delphi单元,一个由XE2产生,一个由XE3产生。我想检查是否存在任何显着差异,但是定义/实现的顺序在两个文件中都不同。我无法编辑这些25000 行文件以匹配....

有人有一个聪明的主意,我如何做我的比较?这些文件很可能是完全相同的,但是我对任何微小的差异都感兴趣...

XE2文件的示例部分:

FreeBusyResponseType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
GetUserAvailabilityResponseType = class;      { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
SetUserOofSettingsResponse2 = class;          { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
FieldURIOrConstantType = class;               { "http://schemas.microsoft.com/exchange/services/2006/types"[GblCplx] }
MessageXml           = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Cplx] }
BaseRequestType      = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
GetFolderType        = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
BaseMoveCopyItemType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
CopyItemType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
MoveItemType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CreateAttachmentType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
BaseMoveCopyFolderType = class;               { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
MoveFolderType       = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CopyFolderType       = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
GetItemType          = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
SetUserOofSettingsRequest2 = class;           { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
GetUserOofSettingsRequest2 = class;           { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
BaseDelegateType     = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
GetRoomListsType     = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
GetRoomsType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
[snip]
implementation
  uses SysUtils;
destructor FreeBusyResponseType.Destroy;
begin
  SysUtils.FreeAndNil(FResponseMessage);
  SysUtils.FreeAndNil(FFreeBusyView);
  inherited Destroy;
end;
procedure FreeBusyResponseType.SetResponseMessage(Index: Integer; const AResponseMessageType: ResponseMessageType);
begin
  FResponseMessage := AResponseMessageType;
  FResponseMessage_Specified := True;
end;

XE3文件的示例部分:

GetUserAvailabilityResponseType = class;      { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
FreeBusyResponseType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
FieldURIOrConstantType = class;               { "http://schemas.microsoft.com/exchange/services/2006/types"[GblCplx] }
SetUserOofSettingsResponse2 = class;          { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
MessageXml           = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Cplx] }
BaseRequestType      = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
BaseMoveCopyFolderType = class;               { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
MoveFolderType       = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CopyFolderType       = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CreateAttachmentType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
GetItemType          = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
BaseMoveCopyItemType = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
MoveItemType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CopyItemType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
GetRoomsType         = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
SetUserOofSettingsRequest2 = class;           { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
BaseDelegateType     = class;                 { "http://schemas.microsoft.com/exchange/services/2006/messages"[GblCplx] }
DeleteUserConfigurationType = class;          { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
CreateUserConfigurationType = class;          { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
UpdateUserConfigurationType = class;          { "http://schemas.microsoft.com/exchange/services/2006/messages"[Lit][GblCplx] }
[snip]
implementation
  uses SysUtils;
constructor GetUserAvailabilityResponseType.Create;
begin
  inherited Create;
  FSerializationOptions := [xoLiteralParam];
end;
destructor GetUserAvailabilityResponseType.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FFreeBusyResponseArray)-1 do
    SysUtils.FreeAndNil(FFreeBusyResponseArray[I]);
  System.SetLength(FFreeBusyResponseArray, 0);
  SysUtils.FreeAndNil(FSuggestionsResponse);
  inherited Destroy;
end;

模型制造商在类/方法实现级别上具有比较工具。它不受源文件中它们的顺序影响。

相关内容

  • 没有找到相关文章

最新更新