Here ya go - it even handles negative numbers!

Const MODULE_NAME  = "InsertNumberedLines"
Const MODULE_VER   = "0.1"
Const MODULE_TITLE = "Insert Numbered Lines"

Sub Init
    addMenuItem MODULE_TITLE, "Utilities", MODULE_NAME
End Sub

Sub InsertNumberedLines()
  Dim editor
  Set editor = newEditor()
  editor.assignActiveEditor
  If editor Is Nothing Then Exit Sub
  
  Dim Items, Numbers, StartNumber, EndNumber, Increment, Digits

  Items = InputBox("Enter the items, comma-separated")
  If Len(Items) = 0 Then Exit Sub
  Items = Split(Items, ",")

  Numbers = InputBox("Enter the number sequence: " & vbCrlf & "Simple example:
""1,10"" Will go from 1 to 10, no extra zeros" & vbCrLf & vbCrLf & "Other
example: ""001,003,011"" Will do the odd numbers from 1 to 11, padding to 3
digits")
  If Len(Numbers) = 0 Then Exit Sub
  Numbers = Split(Numbers, ",")

  On Error Resume Next
  If UBound(Numbers) = 1 Then
    StartNumber = Int(Numbers(0))
    EndNumber = Int(Numbers(1))
    Increment = Sgn(EndNumber-StartNumber)
    If Abs(StartNumber)<Abs(EndNumber) Then
      Digits = Len(Numbers(0))
    Else
      Digits = Len(Numbers(1))
    End If
  ElseIf UBound(Numbers) = 2 Then
    StartNumber = Int(Numbers(0))
    Increment = Int(Numbers(1))-StartNumber
    EndNumber = Int(Numbers(2))
    If Sgn(Increment) <> Sgn(EndNumber-StartNumber) Then
      MsgBox "Impossible Sequence"
      Exit Sub
    End If
    If Abs(StartNumber)<Abs(EndNumber) Then
      Digits = Len(Numbers(0))
    Else
      Digits = Len(Numbers(2))
    End If
  Else
    MsgBox "Incorrect format of number sequence"
    Exit Sub
  End If
  If Increment = 0 Then
    MsgBox "There was an error in your number sequence, or it was too boring for
me to waste my processor time on"
    Exit Sub
  End If
  
  Dim i, j, Number, Output
  i = StartNumber
  
  Output = ""
  Do While Sgn(EndNumber-i)*Sgn(Increment) >= 0
    For j = 0 to UBound(Items)
      Number = Right(String(Digits, "0") & CStr(Abs(i)), Digits)
      If Sgn(i) < 0 Then Number = "-" & Number
      Output = Output & Items(j) & Number & VbCrLf
    Next
    Output = Output & VbCrLf
    
    i = i + Increment
  Loop
  
  editor.selText Output

End Sub


-- 
<http://forum.pspad.com/read.php?2,40623,40644>
PSPad freeware editor http://www.pspad.com

Odpovedet emailem