User Tools

Site Tools


koddump:enhanceindexentries

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
koddump:enhanceindexentries [2008/03/11 17:01] – function padNumber(number,size); 85.228.105.199koddump:enhanceindexentries [2011/11/24 20:47] (current) – old revision restored jetthe
Line 70: Line 70:
 } }
 </code> </code>
 +
 +
 +Halvoptad kod, går ~dubbelt så snabbt som den ooptade:
 +<code vb>
 +Sub NewEnhanceIndexEntries()
 +  Dim doc As Document
 +  Dim fld As Field
 +  Dim temp As String
 +  Dim temp2 As String
 +  Dim omsg As String
 +  Dim matches As MatchCollection
 +  Dim re3 As RegExp
 +  Set re3 = New RegExp
 +  re3.Global = False
 +  re3.Pattern = "\s([0-9]{1,3})\W"
 +  Dim match As match
 +  Dim mval As String
 +
 +  Dim cnt As Integer
 +  cnt = 0
 +  
 +  Set doc = ActiveDocument
 +  For Each fld In doc.Fields
 +    fld.Select
 +    If fld.Type = wdFieldIndexEntry Then
 +        cnt = cnt + 1
 +        temp = fld.Code
 +        If (re3.Test(temp) = True) Then
 +            Set matches = re3.Execute(temp)
 +            For Each match In matches
 +                mval = match.Value
 +            Next
 +          
 +            Dim size As Integer
 +            mval = Mid(mval, 2)
 +            mval = Left(mval, Len(mval) - 1)
 +            size = 4
 +            If (Len(mval) < (size + 1)) Then
 +                Do While (Len(mval) < size)
 +                    mval = "0" & mval
 +                Loop
 +            End If
 +            
 +            temp2 = Left(temp, Len(temp) - 1)
 +            temp2 = temp2 & ";" & mval & Chr$(34)
 +            With Selection.Find
 +                .Text = temp
 +                .Replacement.Text = temp2
 +                .Forward = True
 +                .Wrap = wdFindStop
 +                .Format = False
 +                .Execute Replace:=wdReplaceAll
 +            End With
 +        Else
 +            ' NOOP
 +        End If
 +    End If
 +  Next
 +  Set fld = Nothing
 +  Set doc = Nothing
 +  omsg = "Justering av indexeringsinformation klar. Indexmarkeringar totalt: "
 +  MsgBox (omsg & cnt)
 +End Sub
 +</code>
 +
 +
  
koddump/enhanceindexentries.1205251304.txt.gz · Last modified: 2008/03/11 17:01 by 85.228.105.199