2
0
Эх сурвалжийг харах

* AlwaysQuote added (bug ID 31126)

git-svn-id: trunk@35333 -
michael 8 жил өмнө
parent
commit
f0a8355b84

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

@@ -603,6 +603,7 @@ type
     FDefaultEncoding: TEncoding;
     FDefaultEncoding: TEncoding;
     FEncoding: TEncoding;
     FEncoding: TEncoding;
     FSpecialCharsInited : boolean;
     FSpecialCharsInited : boolean;
+    FAlwaysQuote: Boolean;
     FQuoteChar : Char;
     FQuoteChar : Char;
     FDelimiter : Char;
     FDelimiter : Char;
     FNameValueSeparator : Char;
     FNameValueSeparator : Char;
@@ -707,6 +708,7 @@ type
     property Encoding: TEncoding read FEncoding;
     property Encoding: TEncoding read FEncoding;
     property LineBreak : string Read GetLineBreak write SetLineBreak;
     property LineBreak : string Read GetLineBreak write SetLineBreak;
     Property StrictDelimiter : Boolean Read FStrictDelimiter Write FStrictDelimiter;
     Property StrictDelimiter : Boolean Read FStrictDelimiter Write FStrictDelimiter;
+    property AlwaysQuote: Boolean read FAlwaysQuote write FAlwaysQuote;
     property QuoteChar: Char read GetQuoteChar write SetQuoteChar;
     property QuoteChar: Char read GetQuoteChar write SetQuoteChar;
     Property NameValueSeparator : Char Read GetNameValueSeparator Write SetNameValueSeparator;
     Property NameValueSeparator : Char Read GetNameValueSeparator Write SetNameValueSeparator;
     property ValueFromIndex[Index: Integer]: string read GetValueFromIndex write SetValueFromIndex;
     property ValueFromIndex[Index: Integer]: string read GetValueFromIndex write SetValueFromIndex;

+ 13 - 6
rtl/objpas/classes/stringl.inc

@@ -200,7 +200,8 @@ Var
   p : pchar;
   p : pchar;
   BreakChars : set of char;
   BreakChars : set of char;
   S : String;
   S : String;
-  
+  doQuote : Boolean;
+    
 begin
 begin
   CheckSpecialChars;
   CheckSpecialChars;
   result:='';
   result:='';
@@ -213,11 +214,16 @@ begin
   For i:=0 to count-1 do
   For i:=0 to count-1 do
     begin
     begin
     S:=Strings[i];
     S:=Strings[i];
-    p:=pchar(S);
-    //Quote strings that include BreakChars:
-    while not(p^ in BreakChars) do
-     inc(p);
-    if (p<>pchar(S)+length(S)) then
+    doQuote:=FAlwaysQuote;
+    If not DoQuote then
+      begin
+      p:=pchar(S);
+      //Quote strings that include BreakChars:
+      while not(p^ in BreakChars) do
+        inc(p);
+      DoQuote:=(p<>pchar(S)+length(S));  
+      end;
+    if DoQuote then
       Result:=Result+QuoteString(S,QuoteChar)
       Result:=Result+QuoteString(S,QuoteChar)
     else
     else
       Result:=Result+S;
       Result:=Result+S;
@@ -722,6 +728,7 @@ begin
   FDefaultEncoding:=TEncoding.Default;
   FDefaultEncoding:=TEncoding.Default;
   FEncoding:=nil;
   FEncoding:=nil;
   FWriteBOM:=True;
   FWriteBOM:=True;
+  FAlwaysQuote:=False;
 end;
 end;
 
 
 Function TStrings.Add(const S: string): Integer;
 Function TStrings.Add(const S: string): Integer;