原创 目錄的枚舉非遞歸實現

目錄的枚舉經常用到,但是大家大多數用遞歸就能解決問題,但是在某些環境,內存受到限制情況下,遞歸就回佔用大量內存,導致程序崩潰,那麼這個時候怎麼辦? 使用非遞歸!把遞歸轉爲非遞歸 目錄的遞歸訪問轉爲非遞歸訪問.以windows 爲

原创 實現日誌類

1 實現c++ 類似 cout 類 2 就要實現 operator << 3 在最後的一個 << 輸出 4 輸出到文件 5 整個文件使用一個文件輸出 6 支持寬字符,ANSI , 整型,如果自己想可以擴展自己的類型。 // log

原创 nim 生成動態庫(dll)

nim 編寫dll nim 的dll,手冊中說先編譯生成 nimrtl.dll 然後其他的dll依賴此dll產生一個新的dll,我們先拋開這個支持G

原创 nim IDE aporia的編譯

1 從nim-lang.org 可以進入 aporia 的github.com上的站點   https://github.com/nim-lang/aporia,下載aporia 代碼   2  nim依賴gtk2和cairo這兩個包

原创 告別printf 擁抱 std::cout

我們使用printf 的時候或者自己構造的printf,有的時候會有這樣的煩惱,輸出很容易出錯,如果 int 類型對應 %s 那麼必然要崩潰。爲了解決問題結果打log崩潰,是令人很惱火的事。 c++ 的輸出或者日誌輸出 std::

原创 八皇后問題三種實現

八皇后問題三種實現 八皇后問題,是一個古老而著名的問題,是回溯算法的典型案例。該問題是國際西洋棋棋手馬克斯·貝瑟爾於1848年提出:在8×8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,

原创 實現ubuntu nautilus文件管理器插件

在mint linux 下 下載nautilus 文件管理器 使用新立得軟件包管理器下載libnautilus-extension-dev 或 apt 下載 下載完的頭文件在/usr/include/nautilus 下

原创 編譯nautilus文件管理器

因爲要寫文件管理器插件來處理右鍵菜單,文件屬性等,所以選擇了Ubuntu的nautilus文件管理器。在Linux下只有到了最後通過你才能知道需要什麼依賴。 本文在mint-linux 19 中文版 Linux bkdrong-

原创 用nim寫的音樂播放程序

    記得在DOS時代編程使用Turbo C ,在圖書館遇到了樂譜播放程序,於是用C寫了播放音樂的小程序。     現在回憶一下很有意思的事,如果沒有那麼有意思的事可做,編程是很無聊的事。     現在我們學習Nim語言,編寫一個類似的

原创 用nim寫一個簡單的windows程序

編譯:nim c --app:gui hello.nim    後者有控制檯的: nim c hello.nim 關於使用vs 作爲nim生成C代碼的編譯器,上篇博客中說過。 nim 和 C太像了,感覺就像C的語法糖。 下面看代碼: i

原创 有窮自動機實現拆分字符串爲vector

拆分字符串爲vector 字符串分割,在網上看到幾種方法https://www.jb51.net/article/55954.htm 1 使用strtok分割 //藉助strtok實現split #include <string.

原创 爬小說

問題: 看小說有很多廣告,使用迅雷下載,如果文件名稱沒有規律的話,下載效率很低,因爲猜不到文件名規律。於是就想每一章都有下一章,因此可以根據"下一章" 找到 href 然後下載下一章,如果"下一章"已經下載則說明循環了,要停止。下

原创 windows 實現一個簡單的自繪邊框,具有最大化,最小化,icon,標題

實現一個簡單的自繪邊框,具有最大化,最小化,icon,標題. 當用戶嫌windows的框架顏色不好看,要修改窗口的框架,就自己在win32上實現它,因爲內容是使用cef框架實現,使用duilib 等界面庫和cef的demo代碼兼容

原创 製造format_string helper函數

製造兩個helper函數 當我們要跨平臺的時候CString 等都不能用了,這個時候需要一些順手的工具 下面兩個函數是格式化字符串,返回string和wstring std::string format_string(const

原创 在 typescript 使用命名空間

ex1.ts namespace mylib { exports function fibo(x:int):int { if(x==1||x==2) { re