2

我想編寫一個宏來將選定的文本放到我的項目中的特定XML文件中。例如我的路徑是〜/ Pages/Dictionary/en.xml。我想將選定的文本從aspx.cs文件放到en.xml文件中。
請指導我從哪裏開始。我可以得到選定的文本。現在我不知道如何訪問文件內容轉到文件結尾(或文件中的另一個地方),並根據選定的文本插入一些文本。
如何編寫Visual Studio 2010宏用於訪問和編輯特定的項目文件?

回答

2

要打開文件,或者使用樹路徑在Solution Explorer或只是使用完整的文件路徑:

DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate() 
DTE.ActiveWindow.Object.GetItem _ 
    ("{solutionname}\{projectname}\Pages\Dictionary\en.xml") _ 
    .Select(vsUISelectionType.vsUISelectionTypeSelect) 
DTE.ActiveWindow.Object.DoDefaultAction() 

DTE.ItemOperations.OpenFile _ 
    ("{projectpath}\Pages\Dictionary\en.xml") 
DTE.ActiveDocument.Activate() 

你沒有提到這是否爲一個單一的項目和/或解決方案,所以我不知道是否硬編碼大括號中的項目就足夠了。


要插入在文件的最後文本,您可以選擇文檔的末尾,只貼上(例如,如果你使用的Selection.Copy()),或者你可以創建一個編輯點和插入任何文字:

DTE.ActiveDocument.Selection.EndOfDocument() 
DTE.ActiveDocument.Selection.Paste() 

Dim editPoint As EnvDTE.EditPoint 
selection = DTE.ActiveDocument.Selection() 
editPoint = selection.TopPoint.CreateEditPoint() 
editPoint.Insert("any text" + vbLf) 

我不知道,如果該文件的末尾是你想要添加文本的真實位置;如果不是,則可以用例如StartOfLine()LineUp()WordRight()或其他手段至control the code editor

+0

謝謝,但我不想激活或查看目標文件。我想動態地插入一些文本(例如一個XML節點作爲字符串到XML文件)並保存文件而不用查看,打開或激活它。有可能處理?! – mahdiahmadirad 2011-05-09 07:58:49

+0

當然,雖然你沒有提到該文件不應該在編輯器中打開:只需在你的宏代碼中使用普通的'System.IO.File'或'System.IO.Stream'調用和操作進行編碼...... – mousio 2011-05-09 08:12:47

相關問題