Bläddra i källkod

* Fix bug #32871

git-svn-id: trunk@37962 -
michael 7 år sedan
förälder
incheckning
5c1df42fa4
2 ändrade filer med 10 tillägg och 7 borttagningar
  1. 2 2
      rtl/objpas/classes/classesh.inc
  2. 8 5
      rtl/objpas/classes/stringl.inc

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

@@ -690,9 +690,9 @@ type
     procedure Insert(Index: Integer; const S: string); virtual; abstract;
     procedure Insert(Index: Integer; const S: string); virtual; abstract;
     procedure InsertObject(Index: Integer; const S: string;
     procedure InsertObject(Index: Integer; const S: string;
       AObject: TObject);
       AObject: TObject);
-    procedure LoadFromFile(const FileName: string); overload; virtual;
+    procedure LoadFromFile(const FileName: string; IgnoreEncoding : Boolean = True); overload; virtual;
     procedure LoadFromFile(const FileName: string; AEncoding: TEncoding); overload; virtual;
     procedure LoadFromFile(const FileName: string; AEncoding: TEncoding); overload; virtual;
-    procedure LoadFromStream(Stream: TStream); overload; virtual;
+    procedure LoadFromStream(Stream: TStream; IgnoreEncoding : Boolean = True); overload; virtual;
     procedure LoadFromStream(Stream: TStream; AEncoding: TEncoding); overload; virtual;
     procedure LoadFromStream(Stream: TStream; AEncoding: TEncoding); overload; virtual;
     procedure Move(CurIndex, NewIndex: Integer); virtual;
     procedure Move(CurIndex, NewIndex: Integer); virtual;
     procedure SaveToFile(const FileName: string); overload; virtual;
     procedure SaveToFile(const FileName: string); overload; virtual;

+ 8 - 5
rtl/objpas/classes/stringl.inc

@@ -975,13 +975,13 @@ end;
 
 
 
 
 
 
-Procedure TStrings.LoadFromFile(const FileName: string);
+Procedure TStrings.LoadFromFile(const FileName: string; IgnoreEncoding : Boolean = True);
 Var
 Var
         TheStream : TFileStream;
         TheStream : TFileStream;
 begin
 begin
   TheStream:=TFileStream.Create(FileName,fmOpenRead or fmShareDenyWrite);
   TheStream:=TFileStream.Create(FileName,fmOpenRead or fmShareDenyWrite);
   try
   try
-    LoadFromStream(TheStream);
+    LoadFromStream(TheStream, IgnoreEncoding);
   finally
   finally
     TheStream.Free;
     TheStream.Free;
   end;
   end;
@@ -1001,9 +1001,7 @@ begin
   end;
   end;
 end;
 end;
 
 
-
-
-Procedure TStrings.LoadFromStream(Stream: TStream);
+Procedure TStrings.LoadFromStream(Stream: TStream; IgnoreEncoding : Boolean = True);
 {
 {
    Borlands method is no good, since a pipe for
    Borlands method is no good, since a pipe for
    instance doesn't have a size.
    instance doesn't have a size.
@@ -1019,6 +1017,11 @@ Var
   BufLen,
   BufLen,
   I,BufDelta     : Longint;
   I,BufDelta     : Longint;
 begin
 begin
+  if not IgnoreEncoding then
+    begin
+    LoadFromStream(Stream,Nil);
+    Exit;
+    end;
   // reread into a buffer
   // reread into a buffer
   beginupdate;
   beginupdate;
   try
   try