Programmieren mit C++

Visual C++

Arbeiten mit VC++

Ressourcen-Dateien als Textdatei öffnen

Wie kann man möglichst einfach Ressourcen-Dateien als Textdatei öffnen, um die .rc-Datei direkt zu bearbeiten?

Frage

Es kommt häufiger vor, dass man während der Arbeit mit einer Ressourcen-Datei auf die eigentliche .rc-Datei direkt zugreifen möchte, anstatt über den Ressourcen-Editor zu arbeiten. Der normale Weg dafür besteht darin,

  • den Datei-Öffnen-Dialog zu starten,
  • die .rc-Datei zu suchen,
  • die OpenAs Combobox auf Text zu setzen
  • und dann OK anzuklicken, um die Datei zu öffnen.

Anschließend erzeugt Visual Studio die Meldung, dass zunächst die Ressourcen-Datei geschlossen werden muss, bevor sie erneut im Textmodus geöffnet werden kann. Dies erfordert einen weiteren Klick.

Mit einem Makro lässt sich dieser Klickaufwand jedoch erheblich reduzieren, indem die Ressourcen-Datei direkt als Textdatei angezeigt wird.

sub OpenRCAsText()
 if Windows.Count > 0 then
  rc_name = ActiveDocument.FullName

Liegt eine .rc-Datei vor, wird sie als Textdatei geöffnet.

  if InStrRev( rc_name, ".rc" ) > 0 then
   rc_wnd_name = ActiveWindow.Caption
   Documents.Open rc_name, "Text"

Anschließend erfolgt eine einfache Suche nach der Ressource in der .rc-Datei.

   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 )
 
   ActiveDocument.Selection.FindText "^ *" & res_name, 
     dsMatchFromStart + dsMatchRegExp
 
    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( "VC++ kann die Ressourcendatei " & rc_name & _
           "für dieses Projekt " & ActiveProject.Name &
           " nicht öffnen.")
  end if
 
  on error goto 0
 end if
end sub

Lösung





Sachgebiet


© 2009-2012 by Alojado Publishing. Alle Rechte vorbehalten. Ausgewiesene Marken gehören ihren jeweiligen Eigentümern.
Mit der Benutzung dieser Seite erkennen Sie die Nutzungsbedingungen und die Datenschutzerklärung an. Der Betreiber übernimmt keine Haftung für den Inhalt verlinkter externer Internetseiten.
Seite erzeugt 2012-05-20 03:04:13 von textarchiv.alojado.de