Ignore:
Timestamp:
Nov 17, 2010, 7:34:05 PM (14 years ago)
Author:
george
Message:
  • Added: Method Explode to create list items from string.
  • Modified: Definition for procedural type TGListStringConverter changed to TGListToStringConverter and TFListFromStringConverter.
  • Modified: Sepcialized unit ListObject renamed to SpecializedObjectList.
Location:
Generics/TemplateGenerics/Generic
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • Generics/TemplateGenerics/Generic/GenericDictionary.inc

    r86 r91  
    1212{$DEFINE TGList := TGDictionaryList}
    1313{$DEFINE TGListSortCompare := TDictionarySortCompare}
    14 {$DEFINE TGListStringConverter := TDictionaryStringConverter}
     14{$DEFINE TGListToStringConverter := TDictionaryToStringConverter}
     15{$DEFINE TGListFromStringConverter := TDictionaryFromStringConverter}
    1516{$DEFINE INTERFACE}
    1617{$I 'GenericList.inc'}
     
    4546{$DEFINE TGList := TGDictionaryList}
    4647{$DEFINE TGListSortCompare := TDictionarySortCompare}
    47 {$DEFINE TGListStringConverter := TDictionaryStringConverter}
     48{$DEFINE TGListToStringConverter := TDictionaryToStringConverter}
     49{$DEFINE TGListFromStringConverter := TDictionaryFromStringConverter}
    4850{$DEFINE IMPLEMENTATION}
    4951{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericList.inc

    r90 r91  
    44
    55  TGListSortCompare = function(const Item1, Item2: TGListItem): Integer of object;
    6   TGListStringConverter = function(Item: TGListItem): string;
    7   //TGListNotification = (lnAdded, lnExtracted, lnDeleted);
     6  TGListToStringConverter = function(Item: TGListItem): string;
     7  TGListFromStringConverter = function(Text: string): TGListItem;
    88
    99  // TGList<TGListIndex, TGListItem> = class
     
    3131    procedure Delete(Index: TGListIndex); virtual;
    3232    procedure DeleteItems(Index, Count: TGListIndex);
    33     function Equals(List: TGList): Boolean;
     33    function EqualTo(List: TGList): Boolean;
    3434    procedure Expand;
    3535    function Extract(Item: TGListItem): TGListItem;
     
    3737    property First: TGListItem read GetFirst write SetFirst;
    3838    procedure Fill(Start, Count: TGListIndex; Value: TGListItem);
    39     function Implode(Separator: string; Converter: TGListStringConverter): string;
     39    function Implode(Separator: string; Converter: TGListToStringConverter): string;
     40    procedure Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1);
    4041    function IndexOf(Item: TGListItem; Start: TGListIndex = 0): TGListIndex;
    4142    function IndexOfList(List: TGList; Start: TGListIndex = 0): TGListIndex;
     
    304305end;
    305306
    306 function TGList.Equals(List: TGList): Boolean;
     307function TGList.EqualTo(List: TGList): Boolean;
    307308var
    308309  I: TGListIndex;
     
    372373end;
    373374
    374 function TGList.Implode(Separator: string; Converter: TGListStringConverter): string;
     375function TGList.Implode(Separator: string; Converter: TGListToStringConverter): string;
    375376var
    376377  I: TGListIndex;
     
    384385    I := I + 1;
    385386  end;
     387end;
     388
     389procedure TGList.Explode(Text, Separator: string; Converter: TGListFromStringConverter; SlicesCount: Integer = -1);
     390begin
     391  Clear;
     392  while (Pos(Separator, Text) > 0) and
     393  ((Count < (SlicesCount - 1)) or (SlicesCount = -1)) do begin
     394    Add(Converter(Copy(Text, 1, Pos(Separator, Text) - 1)));
     395    System.Delete(Text, 1, Pos(Separator, Text) + Length(Separator) - 1);
     396  end;
     397  Add(Converter(Text));
    386398end;
    387399
  • Generics/TemplateGenerics/Generic/GenericObjectList.inc

    r87 r91  
    55{$DEFINE TGList := TGObjectListList}
    66{$DEFINE TGListSortCompare := TGObjectListSortCompare}
    7 {$DEFINE TGListStringConverter := TGObjectListStringConverter}
     7{$DEFINE TGListToStringConverter := TGObjectListToStringConverter}
     8{$DEFINE TGListFromStringConverter := TGObjectListFromStringConverter}
    89{$DEFINE INTERFACE}
    910{$I 'GenericList.inc'}
     
    3839{$DEFINE TGList := TGObjectListList}
    3940{$DEFINE TGListSortCompare := TGObjectListSortCompare}
    40 {$DEFINE TGListStringConverter := TGObjectListStringConverter}
     41{$DEFINE TGListToStringConverter := TGObjectListToStringConverter}
     42{$DEFINE TGListFromStringConverter := TGObjectListFromStringConverter}
    4143{$DEFINE IMPLEMENTATION}
    4244{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericQueue.inc

    r86 r91  
    55{$DEFINE TGList := TGQueueList}
    66{$DEFINE TGListSortCompare := TGQueueSortCompare}
    7 {$DEFINE TGListStringConverter := TGQueueStringConverter}
     7{$DEFINE TGListToStringConverter := TGQueueToStringConverter}
     8{$DEFINE TGListFromStringConverter := TGQueueFromStringConverter}
    89{$DEFINE INTERFACE}
    910{$I 'GenericList.inc'}
     
    3940{$DEFINE TGList := TGQueueList}
    4041{$DEFINE TGListSortCompare := TGQueueSortCompare}
    41 {$DEFINE TGListStringConverter := TGQueueStringConverter}
     42{$DEFINE TGListToStringConverter := TGQueueToStringConverter}
     43{$DEFINE TGListFromStringConverter := TGQueueFromStringConverter}
    4244{$DEFINE IMPLEMENTATION}
    4345{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericSet.inc

    r86 r91  
    55{$DEFINE TGList := TGSetList}
    66{$DEFINE TGListSortCompare := TGSetSortCompare}
    7 {$DEFINE TGListStringConverter := TGSetStringConverter}
     7{$DEFINE TGListToStringConverter := TGSetToStringConverter}
     8{$DEFINE TGListFromStringConverter := TGSetFromStringConverter}
    89{$DEFINE INTERFACE}
    910{$I 'GenericList.inc'}
     
    3738{$DEFINE TGList := TGSetList}
    3839{$DEFINE TGListSortCompare := TGSetSortCompare}
    39 {$DEFINE TGListStringConverter := TGSetStringConverter}
     40{$DEFINE TGListToStringConverter := TGSetToStringConverter}
     41{$DEFINE TGListFromStringConverter := TGSetFromStringConverter}
    4042{$DEFINE IMPLEMENTATION}
    4143{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericStack.inc

    r86 r91  
    55{$DEFINE TGList := TGStackList}
    66{$DEFINE TGListSortCompare := TGStackSortCompare}
    7 {$DEFINE TGListStringConverter := TGStackStringConverter}
     7{$DEFINE TGListToStringConverter := TGStackToStringConverter}
     8{$DEFINE TGListFromStringConverter := TGStackFromStringConverter}
    89{$DEFINE INTERFACE}
    910{$I 'GenericList.inc'}
     
    3839{$DEFINE TGList := TGStackList}
    3940{$DEFINE TGListSortCompare := TGStackSortCompare}
    40 {$DEFINE TGListStringConverter := TGStackStringConverter}
     41{$DEFINE TGListToStringConverter := TGStackToStringConverter}
     42{$DEFINE TGListFromStringConverter := TGStackFromStringConverter}
    4143{$DEFINE IMPLEMENTATION}
    4244{$I 'GenericList.inc'}
  • Generics/TemplateGenerics/Generic/GenericTree.inc

    r86 r91  
    77{$DEFINE TGList := TGTreeNodeList}
    88{$DEFINE TGListSortCompare := TGTreeSortCompare}
    9 {$DEFINE TGListStringConverter := TGTreeStringConverter}
     9{$DEFINE TGListToStringConverter := TGTreeToStringConverter}
     10{$DEFINE TGListFromStringConverter := TGTreeFromStringConverter}
    1011{$DEFINE INTERFACE}
    1112{$I 'GenericList.inc'}
     
    4344{$DEFINE TGList := TGTreeNodeList}
    4445{$DEFINE TGListSortCompare := TGTreeSortCompare}
    45 {$DEFINE TGListStringConverter := TGTreeStringConverter}
     46{$DEFINE TGListToStringConverter := TGTreeToStringConverter}
     47{$DEFINE TGListFromStringConverter := TGTreeFromStringConverter}
    4648{$DEFINE IMPLEMENTATION}
    4749{$I 'GenericList.inc'}
Note: See TracChangeset for help on using the changeset viewer.