C#矩陣(Matrix)運算函式庫 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 1月 18, 2010 有時工作上會需要將Matlab的程式碼轉譯成C#版本。在Matlab中,大部份都會使用到矩陣運算的功能。而這部份也要能轉譯成C#才行。目前在CodeProject中有人提供一組不錯的C#矩陣運算函式庫,有需要的人可以去下載來使用看看。 取得連結 Facebook X Pinterest 以電子郵件傳送 其他應用程式 留言
DOS Batch指令檔中如何記錄log資訊 3月 08, 2011 最近在用DOS的batch指令檔來批次編譯專案。執行程式時如果有錯誤大部份都會傳回非零值的錯誤代碼,要取用這個錯誤代碼的話,在DOS Batch中可以用如下的指令: IF %ERRORLEVEL% 1 GOTO xxxx 或是 IF %ERRORLEVEL% NEQ 0 GOTO xxxx 使用上述的方式就可以來控制執行的流程。只是除了控制執行的流程外,我們還希望能將一些資訊記錄下來。在DOS的Batch指令檔中,可以用ECHO > file.txt的方式來記錄資訊。 例如: @ECHO Build Failed > log.txt 上面的指令中,@ECHO是說不要將這段顯示在DOS命令列視窗中。並且將訊息"Build Failed"寫入到log.txt檔案中。不過,其中使用的是「>」,它的作用是會覆寫檔案的內容。如果想要將文字附加到log檔中的話,可以改用「>>」。 閱讀完整內容
使用regular expression來match中括號(square bracket) 8月 23, 2014 沒想到在C#中也算玩過一陣子的正規表示式(Regular Expression),來到了Linux C/C++中竟然時常碰壁。 現在只是想要找一個用中括號([])包起來的字串,竟然沒有想的那麼簡單。 假設我要找的目標為 [1234],在以前C#的時候的寫法會是\[(?<num>(\d*)\]。來到了Linux C/C++時,也是用原本的概念組了一串這樣的比對格式: \[([0-9]*\] 沒想到一使用std::regex_match()後就掛了。在編譯(或說指定)這個比對格式給std::regex時就出現Exception了。 這個問題查了一些google上的文章,大家都說遇到正規表示中有的字元的話就是前面加上跳脫字元\就可以啦。沒想到結果會是失敗。 後來看到有人指示要比對中括號的話,需要將它放在中括號中 !! 就是用這樣的方式: [\[]([0-9]*)[\]] 指定要比對於中括號中給定的字元,也就是中括號的左右兩邊的符號。 最後終於是正常編譯過關,且可以正常比對成功了。 而且要注意的是,當將上面這段比對格式放到C/C++的程式碼中,針對\不用再重覆一次,也就是不要寫成 "[\\[]([0-9]*)[\\]]" 這樣比對的結果也是失敗的喔。 閱讀完整內容
DOS批次檔中取得中華民國年份 10月 03, 2012 開始覺得DOS的批次檔指令真是高深莫測了。 最近想完成個小需求就是要寫一個DOS Batch指令檔,去Linux主機上用FTP模式下載一些檔案下來。 這些檔案的檔名都是以日期編名的,如果是用西元年,那倒也還容易。可是這次的檔名卻是用中華民國的年份。@@ 好吧,西元年算到中華民國年份,充其量用個減法減去1911年就可以得到了。但在DOS的批次檔中要如何寫啊? 首先要取得西元年的日期 在Dos命令列視窗中輸入date /t可以取得目前的日期,但格式化後取得的結果如下,它會多一個星期幾的字串。 但我們並不想要這個星期幾的字串,而且也不想要"/"。所以可以用如下的指令來取得20121003的字串: @echo off REM 產生日期參數 @For /f "tokens=1-3 delims=/ " %%a in ('date /t') do (set date=%%a%%b%%c) @echo %date% pause 執行的結果如下: 上面DOS指令中的For的意思就是將date /t的結果,依delims(分割字元)來區隔,注意這裏設定的分割字元有兩種,一種是"/",另一種" ",是空格喔。接著它會取分割後的第一到第三個部份,這是tokens=1-3指定的。 並且所分割出來的部份是以%%a開始命名變數,所以這三個分割出來的變數名稱就是%%a、%%b及%%c。 分割完成後就執行do裏面指令的指令 set date=%%a%%b%%c。這樣就可以得到20121003的字串了。 計算民國年 有了西元年月日,接著就是要計算民國年了。前面我們得到的字串其內容為20121003,接著我們想要取得前面四碼。要如何取得前四碼呢?這又是個難題了。後來查了一下,正好看到有人提供一個方式: set tt=%date:~0,4% 原來SET指令還有這種模式可以用來取得字串的某一部份,真是沒想到。後來就查了一下 SET指令的說明 ,才知道真有這種方式。 不過取到了前四碼,那要如何進行數學運算呢?原來也是用SET就可以了: SET /A ChinaYear=%Year%-1 在SET指令中加上/A的參數就是表示... 閱讀完整內容
留言
張貼留言