Tag «c#»

C# stack trace

using System.Diagnostics; [STAThread] public static void Main() { StackTrace stackTrace = new StackTrace(); // get call stack StackFrame[] stackFrames = stackTrace.GetFrames(); // get method calls (frames) // write call stack method names foreach (StackFrame stackFrame in stackFrames) { Console.WriteLine(stackFrame.GetMethod().Name); // write method name } } Ref: http://www.csharp-examples.net/reflection-callstack/

Using T4 template to read resource files (.resx) and generate multiple output files

T4 (Text Template Transformation Toolkit) 可以幫忙訂出 template 並用程式輔助來產生程式碼或文件(比方說不同語言的定義檔)。 使用 T4 之前可以先去下載 T4 Toolbox,安裝之後在 Visual studio 增加新項目時就可以看到有 “T4 Toolbox” 的分類,有 Generator、Script、Template 三種可選 首先定義template檔案,在這邊用System.Xml去讀取 resource file,同時 include SaveOutput.tt 做輸出用。 <#@ template language="C#" debug="True" #> <#@ include file="SaveOutput.tt" #> <#@ include file="T4Toolbox.tt" #> <#@ assembly name="System.Xml" #> <#@ import namespace="System.Xml" #> <# // <copyright file="i18n_js.tt" company="Onelab"> // Copyright …

[c++] 執行 command line 並取得執行結果

http://stackoverflow.com/questions/478898/how-to-execute-a-command-and-get-output-of-command-within-c 用 popen (open pipe)執行 command, 並用 fgets 收結果。如果是在 windows 上,則是改用 _popen, _pclose #include <string> #include <iostream> #include <stdio.h> std::string exec(char* cmd) { FILE* pipe = popen(cmd, "r"); if (!pipe) return "ERROR"; char buffer[128]; std::string result = ""; while(!feof(pipe)) { if(fgets(buffer, 128, pipe) != NULL) result += buffer; } pclose(pipe); return result; }