|
델파이 소스를 빌더로 컨버팅 중입니다.
그런데 생각보다 쉽지가 않네요 ㅠㅠ
고수님들 시간되시면 부탁드립니다.
unit Unit_IniCompare;
interface
uses
Windows, Classes, SysUtils, StdCtrls, Dialogs;
const
MAX_SECTION = 500; //Total Section Count
MAX_KEY_VALUE = 500; //(Key/Value Count)/1Section
type //r : record
rTSection = record
Name : String;
KeyCount : Integer;
Key : array of String;
Value_ : array of String;
end;
rTIni = record
Name : String;
Path : String;
SectionCount : Byte;
Section : array of rTSection;
end;
TAppViewerFunc = Procedure(Data : String); stdcall;
type
TMyCollectionItem = class(TCollectionItem)
private
FIni : rTIni;
FSectionCount : Integer;
FKeyCount : Integer;
procedure SetIni(const AIni : rTIni);
public
procedure AssignParameter(const AIni: rTIni); virtual;
published
property Ini: rTIni read FIni write SetIni;
property SectionCount: Integer read FSectionCount write FSectionCount;
property KeyCount: Integer read FKeyCount write FKeyCount;
end;
TINILogCollection = class(TCollection)
private
mLogPath: String;
mLogFileHeader: String;
procedure Compare(User: String; OldItemsIndex, NewItemsIndex: Integer);
protected
function GetItem(Index: integer): TMyCollectionItem; virtual;
procedure SetItem(Index: integer; Value: TMyCollectionItem); virtual;
function IndexOf(const AIni : rTIni): integer; virtual;
public
constructor Create(LogPath: String; LogFileHeader:String);
function Add: TMyCollectionItem;
procedure AddParameter(const AIni : rTIni);
procedure DeleteParameter(const AIni : rTIni);
procedure AddData(const FilePath : String);
procedure CompareItems(User: String);
procedure AddLog(LogData: String);
property Items[Index: integer] : TMyCollectionItem read GetItem write SetItem;
published
end;
implementation
var
AppViewerFunc : TAppViewerFunc;
{ TMyCollectionItem }
procedure TMyCollectionItem.AssignParameter(const AIni : rTIni);
var
i : Integer;
begin
FIni := AIni;
FSectionCount := FIni.SectionCount;
for i := 0 to FSectionCount-1 do begin
FKeyCount := FKeyCount + FIni.Section[i].KeyCount;
end;
end;
procedure TMyCollectionItem.SetIni(const AIni : rTIni);
begin
FIni := AIni;
end;
|