| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1309 人关注过本帖
标题:请高人指点文件数据删除的方法
只看楼主 加入收藏
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:2 
回复 9楼 小鱼儿c
标记比删掉快多了!
而且还有回收站的作用,随时可以恢复...
但是占空间,不过空间换时间就是这样
2012-02-18 01:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你對大數據量,還是沒有概念。數據量大,就意味著內存是裝不下的,為什麼操作系統要設計虛擬內存,用外設做內存?要刪多少數據,都比把所有數據全部讀入內存再寫出去高效得多。標記刪除的做法,本質上就是操作系統管理文件的方法,刪除標記意味著碎片,但也意味著回收可用,每筆記錄都是等尺寸的,新記錄可以嵌在空出來的地方,這比普通的文件管理更容易處理。數據管理系統,是可以設計壓縮碎片和整理功能,使用時高效,在空閒時間就可以執行整理操作。你之所以要爭辯這樣的問題,是因為你沒接觸過數據庫,不知道數據庫系統就是用這個辦法處理數據的。在磁盤上定位然後讀寫最多一個byte的數據,你居然會考慮到這很耗時?操作系統的文件緩存功能是白給的?

授人以渔,不授人以鱼。
2012-02-18 01:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
文件處理函數中的fseek(),其實相當於內存中的指針動作,有基點起步位置,有偏移量,執行fseek(),跟在內存中用指針尋址差不多速度(視操作系統的能力,也受外設的影響,但這是用外設的最低消費),很快的。

舊式的系統,內存分段,用指針尋址,也要根據段的遠近來設計指針的尺寸,一次性放入內存中的數據,是受段大小制約的,很多時候無法得到足夠大的內存容納龐大的數據,故此在那個時候,利用外設儲存龐大的數據是必然的選擇。現在的Windows經過修改,可以一次處理2G的數據(相當於以前的一段為2G),超過這個尺寸的數據一般比較少了,但考慮到內存的共享性質和碎片,利用外設仍然是必須具備的手段,只是操作系統有能力把外設操作得像內存一樣方便,那些效率,程序員一般不需要去顧慮的。

授人以渔,不授人以鱼。
2012-02-18 01:42
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
回复 12楼 TonyDeng
数据库我也是这期才开。

你这样说,确实想起来回收站原理 。貌似看到过这样的东西。

内存不足,我可以分次读取,写入文档。

假设我这个数据我不急着用。
我就算用一天的时间,或者更多时间完成我删除文件的目的。

我也比标记的方法要高效吧(当你数据要多次 很多次时候 你以后经常要用到)。。

这只是看问题的角度不一样。
我和你站的角度不一样而已。
你们就是要一次效率高就为高了。
你们这样是对的。
但我这样看是错的吗??




用心做一件事情就这么简单
2012-02-18 01:42
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:0 
回复 13楼 TonyDeng
你为什么要用繁体?
2012-02-18 01:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不急用就不存在效率的問題,怎麼處理都行。效率,分空間效率和時間效率,兩者是對立統一的,效率守恆,要麼用空間換時間,要麼用時間換空間,現實世界基本上不存在兩全其美的事,除非用其他諸如安全性、兼容性、可維護性之類來交換。就某一問題來說,首先要具體問題具體分析,然後是取捨角度,有側重點,也要兼顧,那是一種藝術。前人早有格言,編程是藝術,不是技術,更不是科學。這就是我曾經說學編程很多時候是看悟性的原因,不是人人可以學的,也不是靠努力就可以的。

授人以渔,不授人以鱼。
2012-02-18 01:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 15楼 C_printf
你不知道網絡上有敏感詞探測的嗎?
何況,這是正體漢字呀,不是什麼繁體字,很漂亮的字。

授人以渔,不授人以鱼。
2012-02-18 01:54
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
他提出的问题根本就没有前提。
不过你这种方法,我学到了。
不过或许你给我一个约束
我也可能会这么想。。。。。

编程没有什么艺术不艺术 科学不科学 爱好就好。
不要神话了。。。。

重要的是自己喜爱即可。。。。。

用心做一件事情就这么简单
2012-02-18 01:56
C_printf
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:122
注 册:2010-1-26
收藏
得分:0 
上升到哲学了。。。
一切都是浮云
2012-02-18 01:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
回复 18楼 小鱼儿c
樓主是沒有條件,但我後來給你說的時候,是明確指出大數據量的,那才開始要考慮這個問題。前面我也說了,小數據量,讀入內存重新寫出去是最簡捷的做法,當然可以,因此才說要看具體情形。

授人以渔,不授人以鱼。
2012-02-18 02:01
快速回复:请高人指点文件数据删除的方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028698 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved