Open Primary .rc File As Text

The following macro opens the primary .rc file as text.
Sub OpenRCFile()
'DESCRIPTION: Opens the primary .rc file as text
'NOTE: If the resource file is already open within the
'      resource editor, you may be asked if you wish to
'      close it.

	' Simply strip the project filename of its extension...
	' ...and replace it with "rc"
	If Projects.Count = 0 Then
		MsgBox "Load a project first."
		Exit Sub
	End If
	PathName = ActiveProject.fullname
	PathName = Left(PathName, Len(PathName)-3)
	PathName = PathName + "rc"
	Documents.Open PathName, "Text"
End Sub



Comments

  • Enhanced toggle macro: *.h/*.cpp file & open mode (*.rc/ or as txt)

    Posted by Legacy on 05/17/2001 12:00am

    Originally posted by: Feng Zhou

    This is enhanced version based all the published macros.

    Sub ToggleFile()
    'DESCRIPTION:
    ' -- #1. Opens the .cpp or .h file for the current document.
    ' Toggles between the .cpp & .h file
    ' -- #2 Toggles rc file: open as a text file or resource file

    Dim doctype, baseFile, attribute
    baseFile = ActiveDocument.FullName
    doctype = ActiveDocument.Type

    DocName = UCase(baseFile)

    '#1. 'rc' files
    If Right(DocName,3) = ".RC" Then
    Dim closeStatus
    closeStatus = ActiveDocument.Close (dsSaveChangesNo)

    If doctype = "Generic" Then
    Documents.Open baseFile, "Text", FALSE
    Else
    Documents.Open baseFile, "Auto", FALSE
    End If

    Exit Sub
    End If

    '#2. Generic CPP/H file
    If Right(DocName,4) = ".CPP" Then
    fn = left(DocName, Len(DocName)-3) & "h"
    ElseIf Right(DocName,2) = ".H" Then
    fn = Left(DocName, Len(DocName)-1) & "cpp"
    ElseIf Right(DocName,4) = ".HPP" Then
    fn = Left(DocName, Len(DocName)-3) & "cpp"
    ElseIf Right(DocName,4) = ".INL" Then
    fn = Left(DocName, Len(DocName)-3) & "h"
    ElseIf Right(DocName,4) = ".TLI" Then
    fn = Left(DocName, Len(DocName)-3) & "tlh"
    ElseIf Right(DocName,4) = ".TLH" Then
    fn = Left(DocName, Len(DocName)-3) & "tli"
    Else
    fn = DocName + ".CPP"
    End If

    fn = HandleMFC(fn) 'To handle some MFC files that are just not matched this way

    on error resume next
    Documents.Open (fn)

    End Sub


    Function HandleMFC(fn)
    'MFC Specific Handling
    baseFile = UCase(ActiveDocument.Name)
    'strMFCInclude = "C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include\"

    If baseFile = "DLGDATA.CPP" Then
    HandleMFC = strMFCInclude + "AFXWIN.H"
    ElseIf DocName = "" Then
    HandleMFC = fn
    Else
    HandleMFC = fn
    End If

    End Function

    Reply
  • A much simpler approach - just a single line

    Posted by Legacy on 09/23/1999 12:00am

    Originally posted by: Stefan Tzanev

    Sub OpenRCFileAsText()
    
    'DESCRIPTION: Opens project's RC resource file in text mode for manual editing.

    Documents.Open (ActiveProject.Name + ".rc"), "Text"
    End Sub

    Reply
  • What if the .RC file doesn't exist?

    Posted by Legacy on 01/29/1999 12:00am

    Originally posted by: Bob Paksi

    Great time saver of macro. However, I have a project that creates a library and doesn't have an associated .RC file. If this project is active and I use this macro (which I mapped to a button on the tool bar)DevStudio crashes. It seems that Documents.Open <PathName> crashes if the <PathName> doesn't exist. I did a search of DevStudio's object modal but didn't find any Exists() method. Any ideas?

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Best-in-Class organizations execute on a strategy that supports the multi-channel nature of customer requests. These leading organizations do not just open up their service infrastructures to accommodate new channels, but also empower their teams to deliver an effective and consistent experience regardless of the channel selected by the customer. This document will highlight the key business capabilities that support a Best-in-Class customer engagement strategy.

  • A majority of organizations are operating under the assumption that their network has already been compromised, or will be, according to a survey conducted by the SANS Institute. With many high profile breaches in 2013 occurring on endpoints, interest in improving endpoint security is top-of-mind for many information security professionals. The full results of the inaugural SANS Endpoint Security Survey are summarized in this white paper to help information security professionals track trends in endpoint …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds