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

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • On-demand Event Event Date: October 29, 2014 It's well understood how critical version control is for code. However, its importance to DevOps isn't always recognized. The 2014 DevOps Survey of Practice shows that one of the key predictors of DevOps success is putting all production environment artifacts into version control. In this webcast, Gene Kim discusses these survey findings and shares woeful tales of artifact management gone wrong! Gene also shares examples of how high-performing DevOps …

Most Popular Programming Stories

More for Developers

RSS Feeds