Macro That Opens Resource File as Text

While this certainly isn’t the most difficult of sequences it simply cries out to be automated.
Therefore, in this article, I present you with a very simple macro that automates the
entire process of opening a resource file in “text mode”. Enjoy!

Code

'------------------------------------------------------
'FILE DESCRIPTION: Open Current Resource Script As Text
'------------------------------------------------------
sub OpenRCAsText()
'DESCRIPTION: Open Current Resource Script As Text
'AUTHOR: Roman A. Surma <xaos@mail.ru>

 if Windows.Count > 0 then

  rc_name = ActiveDocument.FullName

  if InStrRev( rc_name, ".rc" ) > 0 then
  'if we have .rc file - let's open it as text

   rc_wnd_name = ActiveWindow.Caption

   Documents.Open rc_name, "Text"

   'performing primitive search for resource in .rc file
   'TODO: enhance algorithm to search resource in proper
   'language section
   rc_part         = ".rc - "

   res_name_start  = InStr( rc_wnd_name, rc_part )
                   + Len( rc_part )

   res_name_end    = InStr( res_name_start, rc_wnd_name, " " )

   if res_name_end > res_name_start then

    res_name = Mid( rc_wnd_name, res_name_start,
     res_name_end - res_name_start )

    'searching for regexp like "^ *IDD_DIALOG1"
    ActiveDocument.Selection.FindText "^ *" & res_name,
     dsMatchFromStart + dsMatchRegExp

    'ActiveDocument.Selection.Cancel

    ActiveDocument.Selection.StartOfLine
   end if

  end if
 elseif Documents.Count >= 1 then
  rc_name = ActiveProject.FullName

  dot_pos = InStrRev( rc_name, "." )

  rc_name = Left( rc_name, dot_pos ) & "rc"

  on error resume next

  Documents.Open rc_name, "Text"

  if Err.Number < 0 then

   MsgBox( "Can not open resource file " & rc_name & " _
    "for this project: " & ActiveProject.Name )

  end if

  on error goto 0
 end if

end sub

Downloads

Download source (same code as above) – 1 Kb

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read