ReplaceTextOld.vb
- ''
- '' This code is part of Document Solutions for Word demos.
- '' Copyright (c) MESCIUS inc. All rights reserved.
- ''
- Imports System.IO
- Imports System.Drawing
- Imports System.Text
- Imports System.Text.RegularExpressions
- Imports 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 Function
- End Class
-