Browse Source

* Added ParseFiles

git-svn-id: trunk@21977 -
michael 13 years ago
parent
commit
7976add94b
1 changed files with 20 additions and 0 deletions
  1. 20 0
      packages/fcl-base/src/fptemplate.pp

+ 20 - 0
packages/fcl-base/src/fptemplate.pp

@@ -78,6 +78,7 @@ Type
     Function ParseString(Src : String) : String;
     Function ParseString(Src : String) : String;
     Function ParseStream(Src : TStream; Dest : TStream) : Integer; // Wrapper, Returns number of bytes written.
     Function ParseStream(Src : TStream; Dest : TStream) : Integer; // Wrapper, Returns number of bytes written.
     Procedure ParseStrings(Src : TStrings; Dest : TStrings) ;      // Wrapper
     Procedure ParseStrings(Src : TStrings; Dest : TStrings) ;      // Wrapper
+    Procedure ParseFiles(Const Src,Dest : String);
     Property OnGetParam : TGetParamEvent Read FOnGetParam Write FOnGetParam;               // Called if not found in values  //used only when AllowTagParams = false
     Property OnGetParam : TGetParamEvent Read FOnGetParam Write FOnGetParam;               // Called if not found in values  //used only when AllowTagParams = false
     Property OnReplaceTag : TReplaceTagEvent Read FOnReplaceTag Write FOnReplaceTag;       // Called if a tag found          //used only when AllowTagParams = true
     Property OnReplaceTag : TReplaceTagEvent Read FOnReplaceTag Write FOnReplaceTag;       // Called if a tag found          //used only when AllowTagParams = true
     Property StartDelimiter : TParseDelimiter Index 1 Read GetDelimiter Write SetDelimiter;// Start char/string, default '}'
     Property StartDelimiter : TParseDelimiter Index 1 Read GetDelimiter Write SetDelimiter;// Start char/string, default '}'
@@ -592,6 +593,25 @@ begin
     Dest.Add(ParseString(Src[i]));
     Dest.Add(ParseString(Src[i]));
 end;
 end;
 
 
+procedure TTemplateParser.ParseFiles(const Src, Dest: String);
+
+Var
+  Fin,Fout : TFileStream;
+
+begin
+  Fin:=TFileStream.Create(Src,fmOpenRead or fmShareDenyWrite);
+  try
+    Fout:=TFileStream.Create(Dest,fmCreate);
+    try
+      ParseStream(Fin,Fout);
+    finally
+      Fout.Free;
+    end;
+  finally
+    Fin.Free;
+  end;
+end;
+
 { TFPCustomTemplate }
 { TFPCustomTemplate }
 
 
 procedure TFPCustomTemplate.GetParam(Sender: TObject; const ParamName: String; out AValue: String);
 procedure TFPCustomTemplate.GetParam(Sender: TObject; const ParamName: String; out AValue: String);