浏览代码

* Merging revisions r43405 from trunk:
------------------------------------------------------------------------
r43405 | michael | 2019-11-06 11:51:34 +0100 (Wed, 06 Nov 2019) | 1 line

* Add AddDelimitedText,AddCommatext by Werner Pamler (bug ID 36249)
------------------------------------------------------------------------

git-svn-id: branches/fixes_3_2@43741 -

michael 5 年之前
父节点
当前提交
c99c6a45c2
共有 2 个文件被更改,包括 37 次插入0 次删除
  1. 3 0
      rtl/objpas/classes/classesh.inc
  2. 34 0
      rtl/objpas/classes/stringl.inc

+ 3 - 0
rtl/objpas/classes/classesh.inc

@@ -695,6 +695,9 @@ type
     procedure AddStrings(const TheStrings: array of string); overload; virtual;
     procedure AddStrings(const TheStrings: array of string; ClearFirst : Boolean); overload;
     Procedure AddText(Const S : String); virtual;
+    procedure AddCommaText(const S: String);
+    procedure AddDelimitedText(const S: String; ADelimiter: char; AStrictDelimiter: Boolean); overload;
+    procedure AddDelimitedtext(const S: String); overload;
     procedure Append(const S: string);
     procedure Assign(Source: TPersistent); override;
     procedure BeginUpdate;

+ 34 - 0
rtl/objpas/classes/stringl.inc

@@ -926,6 +926,40 @@ begin
   DoSetTextStr(S,False);
 end;
 
+procedure TStrings.AddCommaText(const S: String);
+var
+  L: TStringList;
+begin
+  L := TStringList.Create;
+  try
+    L.CommaText := S;
+    AddStrings(L);
+  finally
+    L.Free;
+  end;
+end;
+
+procedure TStrings.AddDelimitedText(const S: String; ADelimiter: Char;
+  AStrictDelimiter: Boolean);
+var
+  L: TStringList;
+begin
+  L := TStringList.Create;
+  try
+    L.Delimiter := ADelimiter;
+    L.StrictDelimiter := AStrictDelimiter;
+    L.DelimitedText := S;
+    AddStrings(L);
+  finally
+    L.Free;
+  end;
+end;
+
+procedure TStrings.AddDelimitedText(const S: String);
+begin
+  AddDelimitedText(S, FDelimiter, FStrictDelimiter);
+end;
+
 Procedure TStrings.SetUpdateState(Updating: Boolean);
 
 begin