網路訊息結構體指令碼自動生成編輯器的進一步擴充套件

2022-03-03 01:28:42 字數 1561 閱讀 1484

由於之前我們的訊息都是這樣的

把所有相關部分的訊息結構類都寫在乙個cs檔案裡,這樣很亂,不便於管理,新網路框架是乙個結構用乙個檔案的方式,就是我之前寫的編輯器自動生成的那種指令碼,所以現在需要把舊的框架指令碼裡的類乙個個剝離提取成乙個個新的cs檔案,但是專案中最起碼有幾百個訊息結構體,難道乙個乙個建立嗎?那太費事了,不是乙個程式設計師該做的。編輯器建立的功能是為了以後乙個個新增新訊息時方便快捷,而將舊的指令碼替換成新的框架所需的指令碼檔案,我採用了**的辦法。對我的編輯器又做了進一步的擴充套件。

選擇好原始檔路徑(開啟windows檔案瀏覽器自己選擇),會把路徑打到文字框裡可以手動修改,點選生成按鈕。再選擇乙個儲存的路徑

於是這些我需要的指令碼檔案就批量生成了。(和原始檔中結構不同,採用新的結構。具體實現方式見下文)

生成的**和原始檔不同,統統按我的格式來,直接呼叫我之前寫的建立指令碼方法就好了。自動生成的**永遠比人手寫的乾淨整齊,哈哈

批量建立僅需要拿到資料夾的路徑,後面根據不同的類自己加檔名,然後批量寫入即可。

由於每生成乙個小指令碼,都需要得到的是字段和兩個id以及訊息的型別是請求或是回應,字段可以在原指令碼中讀取,而兩個id在原指令碼中是被呼叫的時候再賦值的,訊息型別也沒有直接區分,只能根據其被呼叫的方式來得到,所以我在每個需要轉換的類下面的第一行加入我的標籤。格式如下

mytip,id1,id2,type

就這樣,通過讀取標籤的形式,我得到了該類的基本資訊,再動動腦子仔細觀察一下原始檔**結構實現一下邏輯上的演算法,就能提取出想要的字段,生成我所需要的指令碼檔案了。

隨便擷取一部分**,表示坑是很多的,原始檔比較老了。很多地方是製表符還是空格根本分不清的,還有一些莫名其妙的空格,所以都是先處理再走邏輯。畢竟原始檔比較亂,我又只能讀字串,所以除錯和修改的過程還是比較痛苦的。但是最後點一下生成幾十個指令碼的時候那種爽快感還是不言而喻的。寫了這個擴充套件功能。後續把別的遊戲中的訊息轉成新網路框架所需的結構類指令碼檔案也輕鬆愉快了。寫編輯器的技能絕對是程式設計師必備,不要做乙個在做重複事情的程式設計師,重複的事情請交給計算機去做。哈哈

製作新網路框架快速自動生成訊息結構體的編輯器

這兩天製作了乙個自動生成 指令碼的窗體編輯器 目前還沒有做過第一行可以選擇生成的指令碼型別,分請求訊息和回應訊息兩種結構體指令碼 第二行可以手動輸入命名空間,第三行手動輸入檔案的名稱,類名與檔名稱相同 後面兩個id是訊息的id 下面的popon的列表根據第一行選擇指令碼型別不同是變化的 選中stri...

網路拓撲結構,自動生成拓撲結構想法

實現這樣的自動拓撲的一些想法 資料先搞成樹型 確定層級長度 再根據每一層的多少,統一計算間隔 標識層級好計算 在樹中的就先展示樹 不在樹中的,x統計計算,y另起一行,先正向算,再逆向算 以上只是計算座標,設定層級 思路 想到這裡之後,發現如果是多個這樣的拓撲就不好搞了,是否要新增一整個拓撲的標識,後...

QT UDP傳送自定義結構體(訊息體)

includeqt network include include 官方例項 服務端繫結埠,能夠收到固定埠的廣播訊號。void server initsocket void server readpendingdatagrams 官方例項中 廣播和接收自定義結構體 訊息體 訊息體新增msg type...