koddump:enhanceindexentries
This is an old revision of the document!
Funktionskrav:
Ändra indexmarkeringar på formen: { XE “EN 789”} till: { XE “EN 789;0789”}
Dvs lägga till ett sorteringsvärde för varje indexmarkering och padda ut det till fyra siffror.
Dagens ickeoptade funktion:
Sub EnhanceIndexEntries() Dim doc As Document Dim fld As Field Dim temp As String Dim temp2 As String Dim omsg As String Dim matches Dim re2, re3 As RegExp Set re2 = New RegExp Set re3 = New RegExp re2.Global = False re3.Global = False re2.Pattern = "\s([0-9]{2})\W" re3.Pattern = "\s([0-9]{3})\W" 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 temp2 = re2.Replace(temp, " $1;00$1" & Chr$(34)) temp3 = re3.Replace(temp2, " $1;0$1" & Chr$(34)) With Selection.Find .Text = temp .Replacement.Text = temp3 .Forward = True .Wrap = wdFindStop .Format = False .Execute Replace:=wdReplaceAll End With End If Next Set fld = Nothing Set doc = Nothing omsg = "Justering av indexeringsinformation klar." MsgBox (omgs & cnt) End Sub
Exempel på paddingfunktion, skrivet i det närliggande språket JScript. Nej, det är inte riktigt javascript.
function padNumber(number,size){ number = new Number(number); size = parseInt(size); if(isNaN(size) || isNaN(number)) return number+""; if(number < Math.pow(10,size)){ number+=Math.pow(10,size); return (number+"").substring(1); }else{ return number+""; } }
koddump/enhanceindexentries.1205251304.txt.gz · Last modified: 2008/03/11 17:01 by 85.228.105.199