同じ WSDL インポートから生成された 2 つの Delphi ユニットがあります。1 つは XE2 で、もう 1 つは XE3 です。大きな違いがあるかどうかを確認したいのですが、定義/実装の順序が2つのファイルですべて異なります。これらの 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;