乙個簡單的檔案分割合併器

2022-03-05 22:11:20 字數 1244 閱讀 4318

折騰了一天多的這個程式總算是完成了。這個軟體其實實現起來很簡單,在這個星期五用了幾個小時我就完成了乙個簡單的版本了。但是感覺那個實現的太差勁了,就像我們組的老大所說的,很多人都喜歡把所有的邏輯實現放到ui介面中,這句話對我的觸動很大,讓我感覺突然有一點理解怎麼去生成乙個類的感覺,以前就是知道類的該概念,但是要我自己去設計,就不知道如何把一些邏輯和資料放到乙個類中了,然後雖然用的是物件導向的工具,寫的確實面向過程的程式。我以前的習慣也一直是把所有的邏輯放到ui中,就不知道提取出乙個類來處理,汗啊,幸好經老大的點撥,在這裡深表感激。然後我就昨晚做了乙個改進,多寫了幾個邏輯處理類。

乙個是檔案合併器的類,乙個是檔案分割器的類,在看了乙個程式的多執行緒以後,我也做了乙個雙線程的實現檔案分割的方法,因為現在一般都是兩個cpu的電腦了,這個還是挺管用的,其實檔案合併的功能也是可以用雙線程去實現的,但是我就不去做的,有點無聊的費時間。我先這個軟體只是因為在上傳郵箱的時候總是因為檔案大小的限制,弄的很鬱悶,所以才有這個軟體的。知道怎麼去實現,能用就好了。檔案分割與合併的實現其實是挺簡單的,分割的時候只要開啟檔案,讀取你要分割的乙個檔案的大小,將資料寫入乙個檔案,一次這樣做就可以了。合併則是依次讀入多個檔案的資料,然後把所有的資料寫入的乙個檔案中就可以了。其他複雜的就是處理檔名,檔案路徑等小問題了,很簡單,但容易弄錯和忽略,我就是栽在這裡的。弄得我從昨天晚上熬夜到5點多。 寫這個程式中讓我最有成就感的就是我想到了在分割器和合併器中處理進度時想到了委託把資料傳出去,以在視窗中去處理當前進度條的值,然後我設計了乙個介面,讓它可以在多個類中去執行。原本這個介面是用類的,那樣的話就要自己再去繼承這個類,重寫不同類的不同方法,後來我想到了完全可以在視窗中繼承這個類,然後在這個視窗類中處理就可以了,這樣也省去了這新繼承的類中和視窗類中相互窗體進度條應用的麻煩。因為c#不支援多繼承嘛,然後我就做了介面了,後來發現用介面更好,這正是應驗了我讀到的一篇文章說的,以後軟體的發展是要面向介面了,雖然對高手來說這個也許沒什麼大不了的,呵呵,有可能還是乙個不好的設計思想,這樣的話希望高手給點指點,我在這裡先謝過了。

這個程式其他的就沒什麼好說的了,本來就比較簡單。如果要看直接看程式就可以了。要用這個軟體,要注意預設情況下這個軟體是將分割後的檔案在當前的目錄下生成乙個檔名加_divided的字尾作為資料夾的名稱,然後分割後的檔案都會儲存在這個資料夾中,並且在建立這個資料夾時要特別注意裡面的東西是要被刪除的,所以要保管好你的資料。在合併的時候也要注意合併的資料夾是要以_divided做為字尾。檔名預設是去除這個字尾後的名字,不過這個可以你自己輸入。然後生成的檔案會放在和合併的資料夾在同乙個目錄下。

有什麼不足的,希望大家能給點指點。

乙個簡單的檔案合併工具

有些時候我們需要把兩個檔案合併到一起,比如一些片段,本身是被分割開了的,這時候就可以合併起來,網上也有這樣的工具。這裡提供乙個簡單的原始碼 int main int argc,char argv bool success true file out file fopen argv argc 1 wb...

乙個檔案分割成多個檔案

linux 或 類unix 下乙個檔案分割成多個 split l 20000 filename.txt a 3 d filename ls grep filename xargs n1 i mv txt 選項 options b 選項後跟期望切割後的單個檔案的大小,單位k或者m eg.split b...

乙個簡單的合併排序

終於解決了一直以來困擾的合併排序問題,結果發現是自己太弱了,當時沒有搞懂的就是兩個已經排號序列的陣列怎麼合起來,其實就是乙個互相比較的過程。貼上 如下 include include include using namespace std void merge int a,int p,int q,i...