Browse Source

+ Script replaced by pascal program

michael 20 years ago
parent
commit
d0c37b3ea7
1 changed files with 117 additions and 0 deletions
  1. 117 0
      docs/makehtm.pp

+ 117 - 0
docs/makehtm.pp

@@ -0,0 +1,117 @@
+{$mode objfpc}
+{$h+}
+program makehtm;
+
+uses sysutils;
+
+Var
+  Verbose : Boolean;
+  FileCount : Boolean;
+  
+Procedure ConvertFile (FileName : String);
+
+Var
+  OFileName      : String;
+  Infile,OutFile : Text;
+  Line           : String;
+
+begin
+  Try
+    OFileName:=ChangeFileExt(FileName,'.htm');
+    If Verbose then
+      Writeln('Converting ',FileName,' to ',OFileName)
+    else
+      Write('.');  
+    Assign(InFile,FileName);
+    Assign(OutFile,OFileName);
+    Reset(Infile);
+    Try
+      Rewrite(OutFile);
+      Try
+        While Not EOF(Infile) do
+          begin
+          ReadLn(Infile,Line);
+          Line:=Stringreplace(Line,'.html','.htm',[rfReplaceAll]);
+          Writeln(OutFile,Line);
+          end
+      Finally
+        Close(OutFile);
+      end;
+    finally
+      Close(InFile);
+    end;  
+  except
+    On E : Exception do
+      Writeln('Error converting ',FileName,' to ',OFileName,' : ',E.Message);
+  end;  
+end;
+
+Function DoDirectory(DirName : String; Recurse : Boolean) : Integer;
+
+Var
+  Info : TSearchRec;
+
+begin
+  Result:=0;
+  DirName:=IncludeTrailingPathDelimiter(DirName);
+  If FindFirst(Dirname+'*.html',0,Info)=0 then
+    Try
+      Repeat
+        ConvertFile(DirName+Info.Name);
+        Inc(Result);
+      Until (FindNext(Info)<>0);
+    Finally
+      FindClose(Info);
+    end;
+  If Recurse then  
+    If FindFirst(Dirname+'*',faDirectory,Info)=0 then
+       Try
+         Repeat
+           With Info do
+             If ((Attr and faDirectory)<>0) and (Name<>'.') and (Name<>'..') then
+             Result:=Result+DoDirectory(DirName+Name,Recurse);
+         Until (FindNext(Info)<>0);
+       Finally
+         FindClose(Info);
+       end;
+end;
+
+Procedure DoDirs;
+
+Var
+  I     : integer;
+  Count,Total : Integer;
+  Dir   : String;
+  
+begin
+  Total:=0;
+  for I:=1 to ParamCount do
+    begin
+    Dir:=Paramstr(I);
+    if (Dir<>'-v') then
+      begin
+      Count:=DoDirectory(Dir,True);
+      if Not verbose then
+        Writeln;
+      Writeln('Directory ',Dir,' : ',Count,' files.');
+      Total:=Total+Count;
+      end;
+    end;  
+  Writeln('Total files ',Total);    
+end;
+
+Procedure DoParams;
+
+Var
+  I : integer;
+
+begin
+  For I:=1 to ParamCount do
+    If paramstr(i)='-v' then
+      Verbose:=True;
+end;
+
+begin
+  DoParams;
+  DoDirs;
+end.