2011-02-14 110 views
0

我試圖從一組包含枚舉和函數的文件中獲取值,但是我得到了一些問題。由於用戶應該能夠有添加自己的文件來閱讀它不應該從其他來源來定義的文件怎麼看C#從文件中的枚舉中獲取函數,枚舉和值

/** 
info info info 
*/ 
enum MyEnum 
{ 
    Myvalue = 1, 
    Mysecondvalue, 
} 

/** 
more info 
*/ 
public MyFunction(); 

我需要得到MyEnum的名字和不帶「=爲例值1,「和」,「等我也需要信息和MyFunction沒有」;「任何想法如何做到這一點?

編輯:這不是編譯的文件,從可被視爲TXT

+4

我只是被迫問爲什麼。爲什麼? – 2011-02-14 20:57:41

回答

0

好吧,需要一些清潔和一些修復,但我得到它的工作。不知道爲什麼我以前沒有想過它,但繼承人我做了什麼。我一次讀取1行文件,檢查它的枚舉,公共等,然後做我想要的東西。枚舉是棘手的,它還不夠工作,一些錯誤。在枚舉中,我檢查它是否是一個枚舉,如果是,那麼直到用「}」統計一行,然後添加我找到的值。但感謝您的答案,如果我沒有得到它的工作! ;)

0

考慮到這些就不會被編譯並腳本文件this question將指向您在正確的方向文件的。

我簡化任務的解決方案是使用其中的一種語言解析器。我更喜歡.NET的一個是Gold Parser - 下載它,grab the C# language file,打開工具中的語法文件,然後單擊右下角的按鈕4次,直到出現提示保存CGT文件。

之後,follow these instructions用於使用CGT文件來解釋使用Calitha引擎的C#腳本文件。本例使用的搜索查詢語法,但你可以輕鬆適應它:

private void _lalrParser_OnTokenRead(LALRParser parser, TokenReadEventArgs e) 
{ 
    // See if the token's name is enum, next time round grab the names/values 
}