ReplaceMagic 4.6.5 just published

  • Further OneNote improvements...
  • Minor bug fixing...

ReplaceMagic version 4.6.4 ready for download

  • Improved replacement process when using regular expressions
  • Fixed bug that export of result grids did not work

ReplaceMagic 4.6.3 just published

New in version 4.6.3 (01-14-2019)

  • During 2018 SharePoint.Online started to support some special characters in folder(s)/file(s) name. ReplaceMagic can all process those documents
  • Improved result display in dashboards (removed "bad" files from "processed" documents counter)
  • Extended that all document types are shown in Console view (Text/Custom files were missing)
  • Extended Dashboards to show text/custom extension files
  • Included check that export results does not work if result tables are empty
  • Fixed bug - due to missing exception handling, if maximum memory limit was reached, ReplaceMagic was not executing memory cleanup routine.



BlogEngine - Extension for canonical tags

Now something different - as we use for our blog system we experienced issue that this Blog software does not add canonical tags which are needed for SEO.

Now, extension is not that complicated (btw. we use 3.3.6 version).

Search for file account.master and add there in <head> section:

 <link href="https://YOUR_URL/account/login.aspx" rel="canonical" />

As a second step go to BlogEngine.Core project and search for file BlogBasePage.cs (should be in \Web\Controls folder) and add following code (I put it after protected virtual void AddMetaContentType()):

      /// <summary>
        /// Adds the canonical tag to the header.
        /// </summary>
        protected virtual void AddCanonical()
            string rawUrl = String.Concat(this.GetApplicationUrl(), Request.RawUrl);
            //if (rawUrl.Contains("/post/"))
                //bool hasQueryStrings = Request.QueryString.Keys.Count > 1;
                //if (hasQueryStrings)
                    Uri uri = new Uri(rawUrl);
                    rawUrl = uri.GetLeftPart(UriPartial.Path);
                    HtmlLink canonical = new HtmlLink();
                    canonical.Href = rawUrl;
                    canonical.Attributes["rel"] = "canonical";
        private string GetApplicationUrl()
            string basePath;
            string port = HttpContext.Current.Request.ServerVariables["SERVER_PORT"];
            string protocol = HttpContext.Current.Request.ServerVariables["SERVER_PORT_SECURE"];
            string serverName = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
            if (port == null || port == "80")
                port = String.Empty;
                port = String.Concat(":", port);
            if (protocol == null || protocol == "0")
                protocol = "http://";
                protocol = "https://";
            basePath = String.Concat(protocol, serverName, port);
            return basePath;
In case that you want to add canonical tag only to post pages uncomment
if (rawUrl.Contains("/post/"))
and in case that you have QueryStrings you'll need to uncomment
bool hasQueryStrings = Request.QueryString.Keys.Count > 1;
if (hasQueryStrings)
Finally, when everything is in place go to: protected override void OnLoad(EventArgs e) in BlogBasePage.cs and add call to AddCanonical() which I did just after AddMetaContentType().
Hope that this helps.

New version 4.6.2 just published

New in version 4.6.2

  • Every control with folders treeview extended to include button to select "Extended network drives" which will give more flexibility when selecting folder location
  • Parameter "Wait XXX seconds on threads to finish" will be used to when finishing document processing to set timeout how long ReplaceMagic will wait to show dashboards and processing results. In case that some documents are still not fully processed they will be reported under AdditionalInformation tab with message "Processing timeout reached...". Those documents can be imported directly from AdditionalInfo tab for separate processing. Default value is 300 seconds.
  • Button to filter extensions for processing renamed from "..." to "Docs filter"
  • Improved messages during processing finalization phase to be more descriptive
  • Included Toggle All button when selecting which Document Properties should be included in search&replace
  • Changed that when user goes directly to Search&Replace (instead of first doing Scan Documents) ReplaceMagic is doing Ultra fast scan and then Search&Replace. This will accelerate direct replacement process.
  • Added tooltips to some controls in Scan Documents tab
  • Extended result grids to support direct document opening when user does double-click on some file in result grids
  • Added feature "Active Documents" which will tell you which exactly documents are currently processed. This works for scan and replacement process.

  • In case that you want to stop processing of some document just do double click on filename in Active Documents form
  • Added parameter "Maximum document processing time" with default value of 180 seconds. If ReplaceMagic does not have enough free processes to run scan or replacement process all documents that are opened longer than timeout value will be stopped and reported in Additional Info tab.

  • Added question "Are you sure that you want to start replacement?" before you set ReplaceMagic to execute replacement process. This warning can be switched-off by selecting parameter "Suppress Warnings" in Configuration.
  • When replacement process is running you will see process mode (Preview or Execute mode)

  • Changed parameter "% of memory used by ReplaceMagic" to check total available memory instead memory used by ReplaceMagic. New parameter name "% of memory used when running ReplaceMagic". In case that you set this parameter to 90 and total used memory is above that value ReplaceMagic will not open new documents until memory is not below this parameter. Memory reduction can happen if document processing is done and memory is released or "Maximum document processing time" parameter value is reached and ReplaceMagic stops processing affected document(s)

  • Minor bugs fixing




New version 4.6.1 just published

New in version 4.6.1

  • Cosmetical changes on scan and replacement dashboards
  • Dashboards now showing total number of found, skipped and processed documents with appropriate graphical overview in pie-charts
  • Reorganize Search&Replace form to fit better to lower screen resolutions (height: 690px)
  • Trial version change: Increased check of broken links to 10 (from 3) per document
  • Extended messages shown during finalization steps of scan documents or search&replace process
  • Changed column name from "Broken Links Counter" to "# Broken Links" to have it in same format like other counter columns
  • Added tooltips next to some of controls in Scan Documents tab
  • Included check to prevent replacement starting if no document area for replacement is selected
  • If you do double-click in grids that will open document in appropriate application. There is exception => in Scan Documents by clicking on some row in grid you will open new form where you can get information of links in selected document. Document opening will work only if in Windows document extension is connected to be opened by some application.
  • Added option to save and re-use later search&replace keypairs directly from the application




New version 4.6.0 just published

New in version 4.6.0

  • Extended list of scan documents results to include number of broken links per each document (only if check of broken links is enabled)
  • Currently sorting in Scan Documents tab is as that all columns are of text type. Changed that date and number columns are really of date and number type so sorting is properly done
  • Fix counters of change broken links in case of PowerPoint files
  • Minor design changes

New version 4.5.9 just published

What is new:

  • You can now decide where you want to keep ReplaceMagic logs. To set location go to Configuration => Logs
  • Configuration form now has Window frame to be more visible when you open it
  • Additionally improved processing messages so help you better understand what is currently on-going (more details provided in system messages)
  • Improved processing of documents stored on SharePoint
  • Improved messages shown during check of broken links (additional classification added (SIP address, JavaScript link...))



New version 4.5.8 just published

What is new in version 4.5.8:

  • Improved system messages
  • Fixed issue that ReplaceMagic is not making replacements if parameter "Skip files bigger than" is set to 0

New version 4.5.7 just published

New in version 4.5.7 (10-03-2018)

  • Extended log file to include processed file size also
  • Changed that ReplaceMagic is started in normal size and not maximized like before
  • Included in Configuration information how many logical processors your computer has
  • Maximum number of parallel documents set to 100 (which is anyway too big for 99% of current computers)
  • During scan of documents ReplaceMagic is going through selected locations (you will see Read Folders in progress bar). Now you can set over Configuration after how many scanned documents you would like to see update in the progress bar. Recommendation is 1000 or in case of bigger location (according to number of documents stored there) at least 5000 or maybe every 10000
  • Extended ReplaceMagic to remember previously selected document extensions for processing. This means when you close ReplaceMagic next time when you start it, it will have pre-selected all extensions used last time
  • Instead of showing only if HTTP(s) links are broken or not, ReplaceMagic will now show also returned status code and descriptive name. More infos about status codes: 
  • Additional error description will be shown during SharePoint connection (only if option Suppress Warnings is not set). If Suppress Warnings is set message box will not appear, you will only see "No connection, please check logon data!" message
  • Enabled TLS 1.2 as after 10/31/2018 SharePoint.Online will support only TLS 1.2 (more info: