程序与细节

原创 2006年06月23日 14:51:00

版权声明:

本文由Lyris完成,首发于CSDN,作者保留中文版权。
未经许可,不得使用于任何商业用途。
欢迎转载,但请保持文章及版权声明完整。
如需联络请发邮件:
chenwentao@gmail.com

早在几年前,就在shlwapi.dll里面找个这个函数: 格式化输出文件大小:文件大小原始都是字节数,比如1234567个字节。在windows资源管理器里面可以看到, 如果文件大小大致是这样的,小于1K的用字节表示如23字节,大于1K的用如343.5KB表示,大于1M的用如1.4MB表示,总之,系统非常智能的选取各种量纲,非常方便查看大小。既然系统已经有这个功能了,就不用自己来写函数来换算了。在shlwapi.dll里面有这个函数StrFormatByteSizeA, StrFormatKBSizeA,查查MSDN,转换成delphi就如

function StrFormatByteSize(dw: DWORD; szBuf: PChar; uiBufSize: UINT):
  PChar; stdcall; external 'shlwapi.dll' name 'StrFormatByteSizeA';
function StrFormatKBSize(qdw: LONGLONG; szBuf: PChar; uiBufSize: UINT):
  PChar; stdcall; external 'shlwapi.dll' name 'StrFormatKBSizeA';

今天发现Windows很多地方如搜索进度显示时,对如“C:/Documents and Settings/LocalService/Application Data/Microsoft/Internet Explorer/demo.txt”这样的文件名总是能恰到好处的缩略成如“C:/Documents and Settings/L.../demo.txt”,估计也有相关的函数,果然,打开shlwpi.dll一看,里面有很多操作路径的函数,如PathCompactPathA,顾名思义已经差不多了,用MSDN一查,果然是这样的。很快写出delphi的导出函数:


function PathCompactPath(hDC: HDC; lpszPath: Pchar; dx: integer): Bool
  stdcall; external 'shlwapi.dll' name 'PathCompactPathA';

马上就得到了想要的效果。
 
总结: 对于做应用的来说,很多东西不用重复发明轮子,基本上每个领域方面的细节都有专门研究的参考实现。善于思考,快速查找资料可以让自己进一步改进或站在更高的角度看问题。当然了基本功一定要扎实,刚开始的时候为练手也可以自己实现。

顺便赞扬windows一句,细微之处见精神,呵呵。这样做技术上并不难,但对改进用户体验有很大帮助。不要以为软件就是算法、代码,实际上有很多地方值得去关注,如用户习惯。

Java编程代码优化小细节

1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 第一,控制资源的使用,通过...
  • lipei1220
  • lipei1220
  • 2014年02月10日 16:19
  • 1068

『细节』是什么

图片来自网络,作者不详只要是职场人士,谈及『细节』二字估计很容易让人联想到『细节决定成败』这句话。由于这句话无人不知、无人不晓,以至于容易将『细节』误以为是口号。就我在工作中的感受,发现确实大多数人是...
  • hzliyun
  • hzliyun
  • 2015年09月05日 10:51
  • 5270

JAVA经典及细节总结

写代码: 1,明确需求。我要做什么?    分析的时候:从具体到抽象 2,分析思路。我要怎么做?1,2,3。 实现的时候:从抽象到具体 3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。 ...
  • sinat_24196195
  • sinat_24196195
  • 2015年11月12日 21:39
  • 1322

【Unity学习笔记】——基础篇:多细节层次LOD技术

LOD技术:即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率...
  • wwanrong
  • wwanrong
  • 2017年07月09日 11:30
  • 386

程序中的一些细节

今天写了一个程序共三个类遇到了一个问题找了群了的好友帮我改程序中有很多细节是群里的老师帮我改的虽然不是很大我相信很多人都有过吧!! import java.awt.BorderLayout; ...
  • songjunyan
  • songjunyan
  • 2014年02月12日 12:20
  • 596

《民主的细节》摘录

《民主的细节》
  • slowly_come_faster
  • slowly_come_faster
  • 2016年09月10日 22:48
  • 596

HTTP协议细节

一】客服端  -->  服务端        1》结构            a)请求行            b)请求头            c)请求体:请求的内容,如果没有,就是空白字符    ...
  • u012986057
  • u012986057
  • 2016年01月23日 16:42
  • 318

二维码的生成细节和原理(一 简)

二维码的定义: 二维码(2-dimensional bar code),是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的。 在许多种类的二维条码中,常...
  • vinny_w
  • vinny_w
  • 2013年12月19日 11:26
  • 791

图像滤镜艺术---保留细节的磨皮滤镜之PS实现

本文介绍了一种极为简单的PS磨皮实现过程,这个过程将有对应的程序实现,效果也将一模一样,这里跟大家分享一下!...
  • Trent1985
  • Trent1985
  • 2015年12月11日 11:14
  • 4610

js中小细节注意

1.编写js的流程: 布局:html+css 属性:确定修改那些属性 事件:确定用户做哪些操作 编写JS:在事件中,用js来修改页面元素的样式 2.obj.style.opition  option的...
  • rui512777
  • rui512777
  • 2017年02月17日 14:23
  • 106
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序与细节
举报原因:
原因补充:

(最多只允许输入30个字)