2023年4月25日 星期二
修改 Code::Blocks 的 wxWidgets 專案引導
2023年3月29日 星期三
多重字串替換
這是指在一次執行中把要替換的多筆字串一次完成,哪組先找到先替換,替換過的不能再被替換。有別於多次執行替換的處理。
關於拿掉 if (!f) return Src; 的原因在,只有 Replacements 為空時才會有作用可提早離開,並不會影響功能的正確性,絕大多數 Replacements 並不會是空的,沒必要多此一舉。
正則表達式的特殊字元編碼與解碼
因 ChatGPT 同樣的問題每次的回答都不一樣,這次的作法覺得不錯,所以在這留一份。
對於詠唱詞我個人覺得,那是給 AI 看的不是給人看,意思是人是不是看得懂或是否覺得優美不重要,但若能兩者兼具那也很好,當作是詠唱詞與註解的結合
2022年11月8日 星期二
Association File 範例
這是用 CodeBlocks 製作的專案,並須備好 C++ 編譯器和 wxWidgets,主要在介紹幾個 wxWidgets 強大的功能。程式雖然在 Windows 系統環境下寫的,但因 wxWidgets 是跨平台的程式庫,因此在其他系統環境下也應該可行。
程式的主要目的在達成程式與關聯檔案(Association File)的聯結,只要對關聯資料檔案點兩下,就可以叫出程式來虙理。
2022年11月2日 星期三
在 Ubuntu 安裝 CxxlMan2 程式庫
這次的目標在安裝 CxxlMan2 程式庫和多國語言插件,以及用一個簡單的例子做範例。在 CxxlMan2 的部份先下載以下檔案,並解壓到一個資料夾中,我是放在 ~/MySrc
- CxxlMan2 程式庫
- 多國語言插件
- CMRegSelf 插件註冊輔助
- Sprintf 簡單風格字串格式化 (內含這次要用到的範例)
$ sudo apt install gcc
$ sudo apt install c++
$ sudo apt-get install uuid-dev
2022年11月1日 星期二
VMware 安裝 Ubuntu 22.04.1 的鳥事
為了能修訂 CxxlMan2 程式庫在 Linux 適用性,所以在 VMware 16.2.4 裝了一套 ubuntu-22.04.1-desktop-amd64 來用,但卻不能在 Host 與 Guest 之間複製檔案,上網找了一堆奇形怪招也沒用,浪費不少精神和時間。
後來無意間發現可以把一個 .txt 檔複製進去,才發現原來會阻擋副檔名為 .zip 的複製動作,還真是鳥屎^@#!&
2022年10月23日 星期日
C++20 UTF-8 的轉換
一直都停留在使用 C++17 的標準,其中一個重要原因是 C++20 對 UTF-8 有了一個明確的型別定義,一些舊有的程式都過不了 C++20 這關,所以就一直攔著。
不過後來發現可以用強制型別指示轉換(type&)這招來破解,這招用在其他地方會很危險,因編譯器會無條件通過轉換,不會給你任何警告訊息。
C++20 對於 UTF-8 提供兩個新東西,一個 char8_t 型別,另一個是 std::u8string 類別,也只有這樣而已。最重要的 STL 完全只能用 char 和 std::string。