ReplaceTextOld.vb
C# VB
'''' This code is part of Document Solutions for Word demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports System.DrawingImports System.TextImports System.Text.RegularExpressionsImports GrapeCity.Documents.Word
'' NOTE: this sample is obsolete, use the RangeBase.Replace()'' @extension method instead (see @{ReplaceText}).'''' This sample loads an existing document, finds all occurrences'' of a certain string in it, And replaces that string with another one.'' Note that this code only finds occurrences of the search string'' that are completely within a single run. To find strings spanning'' two Or more runs (e.g. if different parts of the string have'' different formatting) will require a more complex searching logic.'' For a similar sample that also changes the formatting of the'' replacement, see ReplaceTextFmt.Public Class ReplaceTextOld Public Function CreateDocx() As GcWordDocument '' The document to replace text in: Dim path = System.IO.Path.Combine("Resources", "WordDocs", "JsFrameworkExcerpt.docx") '' The text to find Const tFind = "javascript" '' The replacement Const tRepl = "ArabicaScroll"
Dim doc = New GcWordDocument() doc.Load(path)
'' Loop over all texts in the document body For Each text In doc.Body.Texts If TypeOf (text) Is Break Then Continue For End If
Dim str = text.Value Dim matches = Regex.Matches(str, tFind, RegexOptions.IgnoreCase) If matches.Count = 0 Then Continue For End If
Dim sb = New StringBuilder() Dim pos = 0 For Each m In matches sb.Append(str.Substring(pos, m.Index - pos)) sb.Append(tRepl) pos = m.Index + m.Length Next sb.Append(str.Substring(pos)) text.Value = sb.ToString() Next
'' Add a note at the end of the document: doc.Body.Sections.Last.GetRange().Paragraphs.Add( $"DsWord replaced '{tFind}' with '{tRepl}' on {Util.TimeNow():R}.")
'' Done Return doc End FunctionEnd Class