<script      language = "VBscript"           runat = "Server">
  function dbug(ss)
    Response.Clear()
    Response.Write(ss)
    Response.End()
  end function '--dbug
</script>

<script       language = "jscript"      runat = "server">

/*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*  
* DESCRIPTION: Converts patterns in text files to other patterns.
* STATUS: working- tested 40%
* DOCUMENTATION:
     c:\MJBlibrary\AspScripts\Documentation\Generalconversion.doc
* DEPENDENCIES: 
    fnErrorMessage [fnErrorMessage.asp]     
 *--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*/  
  function fnGeneralConversion(
     sConversionTable, sPatternField, sReplacementField, 
     sObjectFile, sTargetFile)
  {
	    //-->-->-->-->-->-->-->-->-->
		  //*** open the database connection
		  
		  var adoCon;            //***The connection to the database
		  var adoRs;             //***General ADO Recordset variable
		  var sQ;                //***General Query String Variable
		  var rePattern;         //***A Regular Expression 
      var bFoundA = new Boolean();
      var bFoundA = new Boolean();
			var fsoFile;           //***FileScriptingObject
			var fsoObject;         //***The object file
			var fsoTarget;         //***The target file
			var strFileContents;   //***Holds the contents of the object file
			var sReplacement;      //***Holds the replacement string

		  adoCon = Server.CreateObject("ADODB.connection");
		  adoCon.Open("DRIVER={SQL Server};SERVER=203.62.157.199", "mjb", "mjb");
		  adoCon.DefaultDatabase = "MJBdata";
		  adoRs = Server.CreateObject("ADODB.recordset");
		  adoRs.ActiveConnection = adoCon;
		  //--<--<--<--<--<--<--<--<--<  
      //--*--*--*--*--*--*--*--*--*--*--*--*
      //START OF ERROR CHECKING
      //--*--*--*--*--*--*--*--*--*--*--*--*
      
      if ((sConversionTable == null) || 
          (sPatternField == null) ||
          (sReplacementField == null))
      {
        fnErrorMessage(
          "fnGeneralConversion", "?",
          "A required parameter was omitted from the function.");
      } /* if */

      
		  sQ = "sp_tables @table_name = '" + sConversionTable + "' ";
		  adoRs.Open(sQ);      
		  if (adoRs.EOF)
		  {
		    fnErrorMessage(
		      "fnGeneralConversion", "sConversionTable ('" + sConversionTable + "') ", 
		      "There is no such table in the database");
		  } /* if no records */
		  adoRs.Close();
		  
      sQ = 
        "SELECT    * " +
        "FROM " + sConversionTable +
        " ORDER BY priority ";
      adoRs.Open(sQ);
      
      if (adoRs.EOF)
      {
		    fnErrorMessage(
		      "fnGeneralConversion", "sConversionTable ('" + sConversionTable + "') ", 
		      "There is no data in the Conversion table.");
      } /* if */
      for (var ii = 0; ii < adoRs.Fields.Count; ii++)
      {
        if (sPatternField == adoRs.Fields(ii).Name)
          {bFoundA = true;}
        if (sPatternField == adoRs.Fields(ii).Name)
          {bFoundB = true;}        
      } /* for */
      
      if (bFoundA == false)
      {
		    fnErrorMessage(
		      "fnGeneralConversion", "sPatternField ('" + sPatternField + "') ", 
		      "There is no such field in the table");
      } /* if */
      
      if (bFoundA == false)
      {
		    fnErrorMessage(
		      "fnGeneralConversion", "sReplacementField ('" + sReplacementField + "') ", 
		      "There is no such field in the table");
      } /* if */


			if (sObjectFile == null)
			{
			  fnErrorMessage(
			    "fnGeneralConversion", "sObjectFile",
			    "The 'sObjectFile' parameter was omitted. This parameter is required");
			}
    
			//***Note '\' is an escape character
			var Pattern = /^(\\)(\\)^(\\)/gi; 
			Pattern = /\\/gi; 
			
		  path = sObjectFile.replace(Pattern, "\\\\");
    
			//dbug(path)
  
      //	Const ForReading = 1, ForWriting = 2, ForAppending = 8
			fsoFile = Server.CreateObject("Scripting.FileSystemObject");
  		if (fsoFile.FileExists(path))
			{			  
			    fsoObject = fsoFile.OpenTextFile(path);			
			    sContents = fsoObject.ReadAll();			  
			}
			else
			{
			  fnErrorMessage(
			    "fnGeneralConversion", "sObjectFile ('" + sObjectFile + "') ", 
			    "The file could not be found,<br> " +
			    "please check the name and path ");
			} /* if else */

			//***Note '\' is an escape character
			if (sTargetFile == null)
			{
			  fnErrorMessage(
			    "fnGeneralConversion", "sTargetFile",
			    "The 'sTargetFile' parameter was omitted. This parameter is required");
			}

			var Pattern = /^(\\)(\\)^(\\)/gi; 
			Pattern = /\\/gi; 
			path = sTargetFile.replace(Pattern, "\\\\");
    
      //--*--*--*--*--*--*--*--*--*--*--*--*
      //END OF ERROR CHECKING
      //--*--*--*--*--*--*--*--*--*--*--*--*
      
      
      //***Convert the file contents
      			
			fsoFileB = Server.CreateObject("Scripting.FileSystemObject");
      while (!adoRs.EOF)
      {         
				rePattern = new RegExp(adoRs.Fields.Item(sPatternField).Value, "gi");        
				sReplacement = adoRs(sReplacementField);
				sContents = sContents.replace(rePattern, sReplacement);

        adoRs.MoveNext();
      } /* while */

      //***Save the changes
			
	    fsoTarget = fsoFileB.OpenTextFile(sTargetFile, 2, true);
      fsoTarget.Write(sContents);      
      
			//*** clean up
			//fsoObject.Close();
      fsoObject = null;
      //fsoTarget.Close();
      fsoTarget = null;
      fsoFile = null;
			adoRs.Close();
			adoRs = null;
			adoCon.Close();
			adoCon = null;        
  } /* fnGeneralConversion */
//--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*  

</script>