![]() |
#1
|
|||
|
|||
![]() I have the code below which searches through an html file and extracts the names of all the images in the html code. The image names are written to an xml file and each image name has a set of xml tags added with it. The problem is that I don't want to add an image name to the xml file if it has been added previously. I don't know if I can search the xml file or if I need a separate file that is an array or a collection, or . . ?? Code:
Function GetRegExResult(strInputData As String) As String Dim Match, Matches Dim RegExp As Object Dim strMatchesFile As String Dim sRegPath As String Dim sRegImageFile As String sRegPath = ActiveDocument.Path sRegImageFile = sRegPath + "\ImageNames.txt" strMatchesFile = sRegImageFile Set RegExp = CreateObject("VBScript.RegExp") With RegExp .Global = True .IgnoreCase = True .Pattern = "<img\s*src=""([^""]*)""" End With Set Matches = RegExp.Execute(strInputData) ' Execute search. For Each Match In Matches Dim strMatchOrig As String Dim intMatchLength As Integer intMatchLength = Len(Match) intMatchLength = intMatchLength - 11 strMatchOrig = Match strMatchOrig = Mid(strMatchOrig, 11, intMatchLength) hFile = FreeFile Open strMatchesFile For Append As #hFile Print #hFile, "<Uses>" + vbNewLine _ + "<FileName>" + strMatchOrig + "<" + Chr(47) + "FileName>" + vbNewLine _ + "<MD5>456789<" + Chr(47) + "MD5>" + vbNewLine _ + "<" + Chr(47) + "Uses>" Close #hFile Next End Function |
#2
|
||||
|
||||
![]()
You can easily-enough use the Instr function to test whether the xml file contains your image name. If it returns anything greater than 0, the image name is already there.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
![]()
strMatchesFile is the file that the image names are being stored in. I am trying to use InStr like this:
Code:
myNoDupes = InStr(strMatchOrig, strMatchesFile) I'm having some trouble getting the content of the file instead of the file path/name |
#4
|
||||
|
||||
![]()
No, that's not how you would use Instr. You have to open both file before you can test the xml file's contents with Instr. For example, to test each image from your "ImageNames.txt" file:
Code:
Dim I As Long With #hFile For I = 0 To UBound(Split(sRegImageFile, vbCr)) If InStr(.Text, Split(sRegImageFile, vbCr)(I)) = 0 Then 'The image name isn't present, so add it. 'Your code to add the image goes here End If Next End With
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
|||
|
|||
![]()
Thank you very much, that worked perfect. It took me awhile to work it into the code but now it is all working great.
Thanks again. |
![]() |
Tags |
vba word |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
learn2office | Word | 1 | 11-27-2012 02:02 AM |
![]() |
sheeand | Word VBA | 2 | 05-14-2012 05:18 AM |
![]() |
DKerne | Word VBA | 4 | 06-09-2011 11:54 AM |
Appending Word Docs | Frank | Word | 0 | 02-26-2010 04:38 PM |
Saving Word document creates a duplicate transparent file | bbailey | Word | 0 | 12-05-2009 10:54 PM |