<?xml version="1.0" encoding="gb2312"?>

<!-- RSS generated by oioj.net on 4/16/2004 ; 感谢LeXRus提供 RSS 2.0 文档; 此文件可自由使用，但请保留此行信息 --> 
<!-- Source download URL: http://blogger.org.cn/blog/rss2.asp       -->
<rss version="2.0">

<channel>
<title>鸿之忆</title>
<link>http://blogger.org.cn/blog/blog.asp?name=chasetang</link>
<description>鸿的博客</description>
<copyright>blogger.org.cn</copyright>
<generator>W3CHINA Blog</generator>
<webMaster>webmaster@blogger.org.cn</webMaster>
<item>
<title><![CDATA[程序编译之 malloc and realloc]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11580</link>
<author>chasetang</author>
<pubDate>2006/2/8 13:09:44</pubDate>
<description><![CDATA[首先看个问题程序(这里用的是TC编译器)：<BR>　　#include "stdlib.h"<BR>　　#include "stdio.h"<BR>　　void main()<BR>　　{<BR>　　int *i;<BR>　　i=(int *)malloc(sizeof(int));<BR>　　*i=1;<BR>　　*(i+1)=2;<BR>　　printf("%x|%d\n",i,*i);<BR>　　printf("%x|%d",i+1,*(i+1));<BR>　　}<BR>　　输出的结果是：<BR>　　8fc|1<BR>　　8fe|2<BR>　　这个程序编译通过，运行正常，说它有问题，问题出在哪呢？<BR>　　<BR>　　首先通过malloc，建了一个大小为2的堆，<BR>　　i指向的地址是8fc，i＋1指向的地址是8fc+sizeof(int)=8fe<BR>　　但是地址8fe是不受保护的，因为它不是机器分配给i＋1的，随时会被其他变量占用。<BR>　　<BR>　　正确的做法是<BR>　　#include "stdlib.h"<BR>　　#include "stdio.h"<BR>　　void main()<BR>　　{<BR>　　int *i;<BR>　　i=(int *)malloc(sizeof(int));<BR>　　*i=1;<BR>　　i=(int *)realloc(i,2*sizeof(int));<BR>　　*(i+1)=2;<BR>　　printf("%x|%d\n",i,*i);<BR>　　printf("%x|%d",i+1,*(i+1));<BR>　　}<BR>　　realloc 可以对给定的指针所指的空间进行扩大或者缩小，无论是扩张或是缩小，原有内存的中内容将保持不变。当然，对于缩小，则被缩小的那一部分的内容会丢失。realloc 并不保证调整后的内存空间和原来的内存空间保持同一内存地址。相反，realloc 返回的指针很可能指向一个新的地址。<BR>　　所以，在代码中，我们必须将realloc返回的值，重新赋值给 p :<BR>　　p = (int *) realloc (p, sizeof(int) *15);<BR>　　<BR>　　甚至，你可以传一个空指针（0）给 realloc ，则此时realloc 作用完全相当于malloc。<BR>　　int* p = (int *) realloc (0,sizeof(int) * 10);　//分配一个全新的内存空间，<BR>　　<BR>　　这一行，作用完全等同于：<BR>　　int* p = (int *) malloc(sizeof(int) * 10);<BR>　　<BR>　　『附注：TC编译器里sizeof(int)=2，VC里面sizeof(int)=4；<BR>　　char型在两个编译器里是一样的，都是1个字节（8位）』<BR>　　<BR>　　calloc与malloc相似,参数nelem为申请地址的单位元素长度,elsize为元素个数,如:<BR>　　char* p;<BR>　　p=(char*)calloc(sizeof(char),20);<BR>　　这个例子与上一个效果相同]]></description>
</item><item>
<title><![CDATA[可以隐藏或显示某视图的CSplitterEx类]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11578</link>
<author>chasetang</author>
<pubDate>2006/2/8 13:05:08</pubDate>
<description><![CDATA[可以隐藏或显示某视图的CSplitterEx类<BR>　　<BR>　　前几天写程序，遇到一个问题。<BR>　　<BR>　　类似的IE窗口的“历史”或“收藏夹”功能，当点击”历史“以后，会在左边出现一个视图，再点一下，这个视图就关闭（其实是隐藏）.<BR>　　<BR>　　费了半天劲，找到了一个代码，它只能隐藏列，我修改了一下，可以隐藏行了。<BR>　　<BR>　　//CSplitterEx.h<BR>　　#pragma once<BR>　　<BR>　　// CSplitterEx 框架<BR>　　class CSplitterEx : public CSplitterWnd<BR>　　{<BR>　　DECLARE_DYNCREATE(CSplitterEx)<BR>　　protected:<BR>　　public:<BR>　　int m_nHidedCol;<BR>　　int m_nHidedRow;<BR>　　CSplitterEx();　　　　　 // 动态创建所使用的受保护的构造函数<BR>　　//呵，加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　virtual ~CSplitterEx();<BR>　　void ShowColumn(bool bShow=false);<BR>　　void HideColumn(int colHide);<BR>　　void ShowRowumn(bool bShow=false);<BR>　　void HideRowumn(int rowHide);<BR>　　protected:<BR>　　DECLARE_MESSAGE_MAP()<BR>　　};<BR>　　<BR>　　//CSplitterEx.cpp<BR>　　<BR>　　// CSplitterEx.cpp : 实现文件<BR>　　//<BR>　　//呵，加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　<BR>　　#include "stdafx.h"<BR>　　#include "CSplitterEx.h"<BR>　　<BR>　　// splitterex<BR>　　IMPLEMENT_DYNCREATE(CSplitterEx, CSplitterWnd)<BR>　　CSplitterEx::CSplitterEx()<BR>　　:m_nHidedCol(-1),m_nHidedRow(-1)<BR>　　{<BR>　　}<BR>　　CSplitterEx::~CSplitterEx()<BR>　　{<BR>　　}<BR>　　<BR>　　BEGIN_MESSAGE_MAP(CSplitterEx, CSplitterWnd)<BR>　　END_MESSAGE_MAP()<BR>　　void CSplitterEx::ShowColumn(bool bShow)<BR>　　<BR>　　{<BR>　　//这个是显示所有列的.　 加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　ASSERT_VALID(this);<BR>　　ASSERT(m_nCols &lt; m_nMaxCols);<BR>　　ASSERT(m_nHidedCol != -1);<BR>　　int colNew = m_nHidedCol;<BR>　　m_nHidedCol = -1;<BR>　　int cxNew = m_pColInfo[m_nCols].nCurSize;<BR>　　m_nCols++;　// add a column<BR>　　ASSERT(m_nCols == m_nMaxCols);<BR>　　// fill the hided column<BR>　　int col;<BR>　　for (int row = 0; row &lt; m_nRows; row++)<BR>　　{<BR>　　CWnd* pPaneShow = GetDlgItem(<BR>　　AFX_IDW_PANE_FIRST + row * 16 + m_nCols);<BR>　　ASSERT(pPaneShow != NULL);<BR>　　pPaneShow-&gt;ShowWindow(SW_SHOWNA);<BR>　　for (col = m_nCols - 2; col &gt;= colNew; col--)<BR>　　{<BR>　　CWnd* pPane = GetPane(row, col);<BR>　　ASSERT(pPane != NULL);<BR>　　pPane-&gt;SetDlgCtrlID(IdFromRowCol(row, col + 1));<BR>　　}<BR>　　pPaneShow-&gt;SetDlgCtrlID(IdFromRowCol(row, colNew));<BR>　　}<BR>　　// new panes have been created -- recalculate layout<BR>　　for (col = colNew + 1; col &lt; m_nCols; col++)<BR>　　m_pColInfo[col].nIdealSize = m_pColInfo[col - 1].nCurSize;<BR>　　m_pColInfo[colNew].nIdealSize = cxNew;<BR>　　if(bShow)RecalcLayout();<BR>　　}<BR>　　void CSplitterEx::HideColumn(int colHide)<BR>　　{<BR>　　//这个是隐藏列的，　 加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　ASSERT_VALID(this);<BR>　　ASSERT(m_nCols &gt; 1);<BR>　　ASSERT(colHide &lt; m_nCols);<BR>　　ASSERT(m_nHidedCol == -1);<BR>　　m_nHidedCol = colHide;<BR>　　// if the column has an active window -- change it<BR>　　int rowActive, colActive;<BR>　　if (GetActivePane(&amp;rowActive, &amp;colActive) != NULL &amp;&amp;<BR>　　colActive == colHide)<BR>　　{<BR>　　if (++colActive &gt;= m_nCols)<BR>　　colActive = 0;<BR>　　SetActivePane(rowActive, colActive);<BR>　　}<BR>　　// hide all column panes<BR>　　for (int row = 0; row &lt; m_nRows; row++)<BR>　　{<BR>　　CWnd* pPaneHide = GetPane(row, colHide);<BR>　　ASSERT(pPaneHide != NULL);<BR>　　pPaneHide-&gt;ShowWindow(SW_HIDE);<BR>　　pPaneHide-&gt;SetDlgCtrlID(<BR>　　AFX_IDW_PANE_FIRST + row * 16 + m_nCols);<BR>　　for (int col = colHide + 1; col &lt; m_nCols; col++)<BR>　　{<BR>　　CWnd* pPane = GetPane(row, col);<BR>　　ASSERT(pPane != NULL);<BR>　　pPane-&gt;SetDlgCtrlID(IdFromRowCol(row, col - 1));<BR>　　}<BR>　　}<BR>　　m_nCols--;<BR>　　m_pColInfo[m_nCols].nCurSize = m_pColInfo[colHide].nCurSize;<BR>　　RecalcLayout();<BR>　　}<BR>　　void CSplitterEx::ShowRowumn(bool bShow)<BR>　　{<BR>　　//这个是显示行的，　 加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　<BR>　　ASSERT_VALID(this);<BR>　　ASSERT(m_nRows &lt; m_nMaxRows);<BR>　　ASSERT(m_nHidedRow != -1);<BR>　　int rowNew = m_nHidedRow;<BR>　　m_nHidedRow = -1;<BR>　　int cxNew = m_pRowInfo[m_nRows].nCurSize;<BR>　　m_nRows++;　// add a column<BR>　　ASSERT(m_nRows == m_nMaxRows);<BR>　　// fill the hided rowumn<BR>　　int row;<BR>　　for (int col = 0; col &lt; m_nCols; col++)<BR>　　{<BR>　　CWnd* pPaneShow = GetDlgItem(<BR>　　AFX_IDW_PANE_FIRST + col * 16 + m_nRows);<BR>　　ASSERT(pPaneShow != NULL);<BR>　　pPaneShow-&gt;ShowWindow(SW_SHOWNA);<BR>　　for (row = m_nRows - 2; row &gt;= rowNew; row--)<BR>　　{<BR>　　CWnd* pPane = GetPane(row, col);<BR>　　ASSERT(pPane != NULL);<BR>　　pPane-&gt;SetDlgCtrlID(IdFromRowCol(row+1, col));<BR>　　}<BR>　　pPaneShow-&gt;SetDlgCtrlID(IdFromRowCol(rowNew, col));<BR>　　}<BR>　　// new panes have been created -- recalculate layout<BR>　　for (row = rowNew + 1; row &lt; m_nRows; row++)<BR>　　m_pRowInfo[row].nIdealSize = m_pRowInfo[row - 1].nCurSize;<BR>　　m_pRowInfo[rowNew].nIdealSize = cxNew;<BR>　　if(bShow) RecalcLayout();<BR>　　}<BR>　　void CSplitterEx::HideRowumn(int rowHide)<BR>　　{<BR>　　//这个是隐藏行的，　 加个昵称：头太晕 http://spaces.msn.com/members/headfaint<BR>　　<BR>　　ASSERT_VALID(this);<BR>　　ASSERT(m_nRows &gt; 1);<BR>　　ASSERT(rowHide &lt; m_nRows);<BR>　　ASSERT(m_nHidedRow == -1);<BR>　　m_nHidedRow = rowHide;<BR>　　// if the rowumn has an active window -- change it<BR>　　int rowActive, colActive;<BR>　　if (GetActivePane(&amp;rowActive, &amp;colActive) != NULL &amp;&amp;<BR>　　rowActive == rowHide)<BR>　　{<BR>　　if (++rowActive &gt;= m_nRows)<BR>　　rowActive = 0;<BR>　　SetActivePane(rowActive, colActive);<BR>　　}<BR>　　// hide all rowumn panes<BR>　　for (int col = 0; col &lt; m_nCols; col++)<BR>　　{<BR>　　CWnd* pPaneHide = GetPane(rowHide, col);<BR>　　ASSERT(pPaneHide != NULL);<BR>　　pPaneHide-&gt;ShowWindow(SW_HIDE);<BR>　　pPaneHide-&gt;SetDlgCtrlID(<BR>　　AFX_IDW_PANE_FIRST + col * 16 + m_nRows);<BR>　　for (int row = rowHide + 1; row &lt; m_nRows; row++)<BR>　　{<BR>　　CWnd* pPane = GetPane(row, col);<BR>　　ASSERT(pPane != NULL);<BR>　　pPane-&gt;SetDlgCtrlID(IdFromRowCol(row-1, col));<BR>　　}<BR>　　}<BR>　　m_nRows--;<BR>　　m_pRowInfo[m_nRows].nCurSize = m_pRowInfo[rowHide].nCurSize;<BR>　　RecalcLayout();<BR>　　}<BR>　　<BR>　　// CSplitterEx 消息处理程序]]></description>
</item><item>
<title><![CDATA[Visual C++数据之Win32中的数据类型]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11577</link>
<author>chasetang</author>
<pubDate>2006/2/8 13:02:09</pubDate>
<description><![CDATA[<STRONG>标准C或C++没有的数据类型<BR></STRONG>　　<BR>　　数据类型　 说明<BR>　　<BR>　　BOOL　布尔变量，实际上是UINT<BR>　　<BR>　　COLORREF 用作颜色索引的32位整数<BR>　　<BR>　　DWORD　32位的无符号整数<BR>　　<BR>　　HANDLE　32位的无符号整数，用作句柄<BR>　　<BR>　　HINSTANCE 32位的无符号整数，用作实例句柄<BR>　　<BR>　　HWND　32位的无符号整数，用作窗口句柄<BR>　　<BR>　　HDC　一个设备描述背景的句柄<BR>　　<BR>　　LONG　32位带符号整数<BR>　　<BR>　　LPARAM　32位整数，用作窗口函数或者其他回调函数的参数之一<BR>　　<BR>　　LPCSTR　指向一个字符串常量的32位指针<BR>　　<BR>　　LPSTR　定义一个线性的32位字符串指针<BR>　　<BR>　　LRESULT　32位整数，是窗口函数或者其他回调函数的返回值类型<BR>　　<BR>　　UINT　定义一个新的Win32数据类型，它会把一个参数强制转换成Windows3.x应用中的16位值　或Win32应用中的32位值<BR>　　<BR>　　WCHAR　声明一个16位的UNICODE字符，用来表示世界上所有已知的书写语言的符号<BR>　　<BR>　　WORD　16位的无符号整数<BR>　　<BR>　　WPARAM　32位整数，用作窗口函数或者其他回调函数的参数之一(在Windows3.x中为16位值)<BR>　　<BR>　　同时，为了统一变量的命名，在Windows中，不同类型的变量拥有各自的标准前缀，一般情况如表所示。<BR>　　不同数据类型的前缀<BR>　　前缀 数据类型<BR>　　<BR>　　c 字符(char)<BR>　　<BR>　　s 短整数(short)<BR>　　<BR>　　cb 用于定义对象(一般为一个结构)尺寸的整数<BR>　　<BR>　　n 整数(integer)<BR>　　<BR>　　sz 以'\0'结尾的字符串<BR>　　<BR>　　b 字节<BR>　　<BR>　　f BOOL<BR>　　<BR>　　w 字(WORD，无符号短整数)<BR>　　<BR>　　l 长整数(LONG)<BR>　　<BR>　　h HANDLE(无符号整数)<BR>　　<BR>　　m_ 类成员变量<BR>　　<BR>　　fn 函数(function)<BR>　　<BR>　　dw 双字(DWORD,无符号长整数)]]></description>
</item><item>
<title><![CDATA[运用名字空间解决数据库冲突问题]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11576</link>
<author>chasetang</author>
<pubDate>2006/2/8 13:01:25</pubDate>
<description><![CDATA[任何的程序设计都离不开数据库的应用，数据库访问方式有ADO、DAO、ODBC、RDO、BDE......，正因为有这么多的数据库访问方式，往往由于数据库方式的不同其达到的功能也不同，一个大型软件项目各个模块的不同或一个开发小组各个成员掌握的数据库访问方式熟练程度的不同，都会出现一个软件项目使用几种数据库访问方式的情况。这时就会出现数据库访问方式冲突的问题。相信解决这种冲突的方法不止一种，但相信名字空间是最简单也是最容易让人一目了然的方法。<BR>　　<BR>　　下面以VC下ADO的数据库访问方式举例。<BR>　　<BR>　　先简单说说ADO(总结)。<BR>　　<BR>　　<B>在VC中使用ADO的开发步骤：</B><BR>　　<BR>　　1，引入ADO库文件<BR>　　<BR>　　在工程的stdafx.h里用#import引入ADO库文件。<BR>　　<BR>　　#import "C:\Program Files\Common Files\System\ado\msado15.dll"　no_namespace　rename("BOF","adoBOF") rename("EOF","adoEOF")<BR>　　<BR>　　2, 初始化COM环境<BR>　　<BR>　　::CoInitialize(NULL); //初始化OLE/COM库环境<BR>　　<BR>　　::CoUninitialize();　 //关闭OLE/COM库环境，释放资源<BR>　　<BR>　　AfxOleInit();//初始化OLE/COM库环境(MFC自带的)<BR>　　<BR>　　3，使用ADO库的三个基本接口<BR>　　<BR>　　ADO库包含三个基本接口:_ConnectionPtr接口、_RecordsetPtr接口和_CommandPtr接口。<BR>　　<BR>　　其分别对应Connection对象(完成应用程序对数据源的访问连接)、Recordset对象(将查询的结果以记录集的方式存储)和Command对象(对已连接的数据源进行命令操作)。<BR>　　<BR>　　<B>定义对象并创建对象实例：</B><BR>　　<BR>　　方法一：<BR>　　_ConnectionPtr m_pConnection;<BR>　　_RecordsetPtr m_pRecordset;<BR>　　_CommandPtr m_pCommand;<BR>　　m_pConnection.CreateInstance(__uuidof(Connection));<BR>　　m_pRecordset.CreateInstance(__uuidof(Recordset));<BR>　　m_pCommand.CreateInstance(__uuidof(Command));<BR>　　<BR>　　方法二：<BR>　　_ConnectionPtr m_pConnection("ADODB.Connection");<BR>　　_RecordsetPtr m_pRecordset("ADODB.Recordset");<BR>　　_CommandPtr m_pCommand("ADODN.Command");<BR>　　<BR>　　方法三：<BR>　　_ConnectionPtr m_pConnection;<BR>　　_RecordsetPtr m_pRecordset;<BR>　　_CommandPtr m_pCommand;<BR>　　m_pConnection.CreateInstance("ADODB.Connection");<BR>　　m_pRecordset.CreateInstance("ADODB.Recordset");<BR>　　m_pCommand.CreateInstance("ADODN.Command");<BR>　　<BR>　　这三种方法都是一样的，关键看你喜好。<BR>　　<BR>　　<B>分别举例简单说明一下：</B><BR>　　<BR>　　Connection对象：<BR>　　_ConnectionPtr m_pConnection;<BR>　　m_pConnection.CreateInstance(__uuidof(Connection));<BR>　　try{<BR>　　// 打开本地Access库ChatLog.mdb<BR>　　m_pConnection-&gt;Open　　("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=ChatLog.mdb","","",adModeUnknown);<BR>　　//SQL Server连接方法<BR>　　_bstr_t strConnect = "Provider=SQLOLEDB; Server=billgates;Database=HrMan; uid=sa; pwd=sa;";<BR>　　m_pConnection-&gt;Open(strConnect,"","",adModeUnknown);<BR>　　}<BR>　　catch(_com_error e){<BR>　　AfxMessageBox(e.Description());<BR>　　}<BR>　　Recordset对象：<BR>　　_RecordsetPtr m_pRecordset;<BR>　　m_pRecordset.CreateInstance(__uuidof(Recordset));<BR>　　CString sql;<BR>　　sql.Format("SELECT DISTINCT name FROM table1");<BR>　　try{<BR>　　m_pRecordset-&gt;Open(sql.GetBuffer(sql.GetLength()),<BR>　　_variant_t((IDispatch *)m_pConnection,true),<BR>　　adOpenDynamic,<BR>　　adLockOptimistic,<BR>　　adCmdText);<BR>　　}<BR>　　catch(_com_error *e){<BR>　　AfxMessageBox(e-&gt;ErrorMessage());<BR>　　}<BR>　　CString strName;<BR>　　while (!m_pRecordset-&gt;adoEOF) {<BR>　　strName.Format("%s",(char*)(_bstr_t)m_pRecordset-&gt;Fields-&gt;GetItem(_variant_t("Name"))-&gt;Value);<BR>　　m_listbox.AddString(strName);<BR>　　m_pRecordset-&gt;MoveNext();<BR>　　}<BR>　　Command对象:<BR>　　_CommandPtr m_pCommand;<BR>　　HRESULT hr = m_pCommand.CreateInstance(__uuidof(Command));<BR>　　if(FAILED(hr))<BR>　　{<BR>　　AfxMessageBox("创建Command对象实例失败!");<BR>　　}<BR>　　CString　strP_mailid;<BR>　　_ParameterPtr param;<BR>　　param=m_pCommand-&gt;CreateParameter("p_mailid",adVarChar,adParamOutput,strP_mailid.GetLength()+1,_variant_t(strP_mailid));<BR>　　m_pCommand-&gt;Parameters-&gt;Append(param);<BR>　　<BR>　　m_pCommand-&gt;ActiveConnection = m_pConnection;<BR>　　m_pCommand-&gt;CommandType = adCmdStoredProc;<BR>　　m_pCommand-&gt;CommandText = _bstr_t("P_MAIL_SEND");<BR>　　try{<BR>　　cmd-&gt;Execute(NULL,NULL,adCmdStoredProc);<BR>　　}<BR>　　catch (...) {<BR>　　AfxMessageBox("调用存储过程P_MAIL_SEND有错!");<BR>　　}<BR>　　try{<BR>　　strP_mailid = (char*)(_bstr_t)m_pCommand-&gt;Parameters-&gt;GetItem(_variant_t("p_mailid"))-&gt;GetValue();<BR>　　}catch (...) {<BR>　　strP_mailid = "";<BR>　　}<BR>　　m_pCommand.Detach();<BR>　　<BR>　　以上只是简单介绍和总结，更深入的请参考具体书籍和网站。<BR>　　<BR>　　ADO(总结)说完了，我们进入正题。<BR>　　<BR>　　如：置身于某个开发小组中，一个大的软件已经形成，但是数据库访问方式用的是DAO或别的不是ADO的方式。现给你一个模块通过数据库接口<BR>　　<BR>　　实现某些未完成的功能，这时就会有数据库的冲突问题。下面我们看看名字空间是怎么解决这个冲突问题的。<BR>　　<BR>　　我们还按在VC中使用ADO的开发步骤来。<BR>　　<BR>　　<B>在VC中使用ADO的开发步骤(名字空间)：</B><BR>　　<BR>　　1，引入ADO库文件<BR>　　<BR>　　在工程的stdafx.h里用#import引入ADO库文件。<BR>　　<BR>　　这时往往就不是在stdafx.h里用#import引入ADO库文件了，而是在你要使用ADO访问方式的工程类的.h中引入了。<BR>　　<BR>　　#import "C:\Program Files\Common Files\System\ado\msado15.dll"　rename_namespace("ARXADO")　rename("BOF","adoBOF")<BR>　　<BR>　　rename("EOF","adoEOF")<BR>　　<BR>　　2, 初始化COM环境<BR>　　<BR>　　和上面一样。<BR>　　<BR>　　3，使用ADO库的三个基本接口<BR>　　<BR>　　Connection对象：<BR>　　<BR>　　ARXADO::_ConnectionPtr m_pConnection;<BR>　　m_pConnection.CreateInstance(__uuidof(ARXADO::Connection));<BR>　　try{<BR>　　// 打开本地Access库ChatLog.mdb<BR>　　m_pConnection-&gt;Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ChatLog.mdb","","",ARXADO::adModeUnknown);<BR>　　//SQL Server连接方法<BR>　　_bstr_t strConnect = "Provider=SQLOLEDB; Server=billgates;Database=HrMan; uid=sa; pwd=sa;";<BR>　　m_pConnection-&gt;Open(strConnect,"","",ARXADO::adModeUnknown);<BR>　　}<BR>　　catch(_com_error e){<BR>　　AfxMessageBox(e.Description());<BR>　　}<BR>　　Recordset对象：<BR>　　ARXADO::_RecordsetPtr m_pRecordset;<BR>　　m_pRecordset.CreateInstance(__uuidof(ARXADO::Recordset));<BR>　　CString sql;<BR>　　sql.Format("SELECT DISTINCT name FROM table1");<BR>　　try{<BR>　　m_pRecordset-&gt;Open(sql.GetBuffer(sql.GetLength()),<BR>　　_variant_t((IDispatch *)m_pConnection,true),<BR>　　ARXADO::adOpenDynamic,<BR>　　ARXADO::adLockOptimistic,<BR>　　ARXADO::adCmdText);<BR>　　}<BR>　　catch(_com_error *e){<BR>　　AfxMessageBox(e-&gt;ErrorMessage());<BR>　　}<BR>　　CString strName;<BR>　　while (!m_pRecordset-&gt;adoEOF) {<BR>　　strName.Format("%s",(char*)(_bstr_t)m_pRecordset-&gt;Fields-&gt;GetItem(_variant_t("Name"))-&gt;Value);<BR>　　m_listbox.AddString(strName);<BR>　　m_pRecordset-&gt;MoveNext();<BR>　　}<BR>　　Command对象:<BR>　　ARXADO::_CommandPtr m_pCommand;<BR>　　HRESULT hr = m_pCommand.CreateInstance(__uuidof(ARXADO::Command));<BR>　　if(FAILED(hr))<BR>　　{<BR>　　AfxMessageBox("创建Command对象实例失败!");<BR>　　}<BR>　　CString　strP_mailid;<BR>　　ARXADO::_ParameterPtr param;<BR>　　param=m_pCommand-&gt;CreateParameter("p_mailid",adVarChar,adParamOutput,strP_mailid.GetLength()+1,_variant_t(strP_mailid));<BR>　　m_pCommand-&gt;Parameters-&gt;Append(param);<BR>　　<BR>　　m_pCommand-&gt;ActiveConnection = m_pConnection;<BR>　　m_pCommand-&gt;CommandType = ARXADO::adCmdStoredProc;<BR>　　m_pCommand-&gt;CommandText = _bstr_t("P_MAIL_SEND");<BR>　　try{<BR>　　cmd-&gt;Execute(NULL,NULL,ARXADO::adCmdStoredProc);<BR>　　}<BR>　　catch (...) {<BR>　　AfxMessageBox("调用存储过程P_MAIL_SEND有错!");<BR>　　}<BR>　　try{<BR>　　strP_mailid = (char*)(_bstr_t)m_pCommand-&gt;Parameters-&gt;GetItem(_variant_t("p_mailid"))-&gt;GetValue();<BR>　　}catch (...) {<BR>　　strP_mailid = "";<BR>　　}<BR>　　m_pCommand.Detach();<BR>　　<BR>　　方法很简单。却是开发中的精髓所在。<BR>　　<BR>　　由于是个人写作，难免会有不正确或不恰当之处，敬请大家不吝赐教。]]></description>
</item><item>
<title><![CDATA[如何在程序中打开另一个应用程序]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11575</link>
<author>chasetang</author>
<pubDate>2006/2/8 13:00:27</pubDate>
<description><![CDATA[Q: 如何打开一个应用程序？<BR>　　ShellExecute(this-&gt;m_hWnd,"open","calc.exe","","", SW_SHOW );<BR>　　或<BR>　　ShellExecute(this-&gt;m_hWnd,"open","notepad.exe",<BR>　　"c:\\MyLog.log","",SW_SHOW );<BR>　　As you can see, I havent passed the full path of the programs.<BR>　　<BR>　　Q: 如何打开一个同系统程序相关连的文档？<BR>　　ShellExecute(this-&gt;m_hWnd,"open",<BR>　　"c:\\abc.txt","","",SW_SHOW );<BR>　　<BR>　　Q: 如何打开一个网页？<BR>　　ShellExecute(this-&gt;m_hWnd,"open",<BR>　　" http://www.google.com","","", SW_SHOW );<BR>　　<BR>　　Q: 如何激活相关程序，发送EMAIL？<BR>　　ShellExecute(this-&gt;m_hWnd,"open",<BR>　　"mailto:nishinapp@yahoo.com","","", SW_SHOW );<BR>　　<BR>　　Q: 如何用系统打印机打印文档？<BR>　　ShellExecute(this-&gt;m_hWnd,"print",<BR>　　"c:\\abc.txt","","", SW_HIDE);<BR>　　<BR>　　Q: 如何用系统查找功能来查找指定文件？<BR>　　ShellExecute(m_hWnd,"find","d:\\nish",<BR>　　NULL,NULL,SW_SHOW);<BR>　　<BR>　　Q: 如何启动一个程序，直到它运行结束？<BR>　　SHELLEXECUTEINFO ShExecInfo = {0};<BR>　　ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);<BR>　　ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;<BR>　　ShExecInfo.hwnd = NULL;<BR>　　ShExecInfo.lpVerb = NULL;<BR>　　ShExecInfo.lpFile = "c:\\MyProgram.exe";<BR>　　ShExecInfo.lpParameters = "";<BR>　　ShExecInfo.lpDirectory = NULL;<BR>　　ShExecInfo.nShow = SW_SHOW;<BR>　　ShExecInfo.hInstApp = NULL;<BR>　　ShellExecuteEx(&amp;ShExecInfo);<BR>　　WaitForSingleObject(ShExecInfo.hProcess,INFINITE);<BR>　　或：<BR>　　PROCESS_INFORMATION ProcessInfo;<BR>　　STARTUPINFO StartupInfo; //This is an [in] parameter<BR>　　ZeroMemory(&amp;StartupInfo, sizeof(StartupInfo));<BR>　　StartupInfo.cb = sizeof StartupInfo ; //Only compulsory field<BR>　　if(CreateProcess("c:\\winnt\\notepad.exe", NULL,<BR>　　NULL,NULL,FALSE,0,NULL,<BR>　　NULL,&amp;StartupInfo,&amp;ProcessInfo))<BR>　　{<BR>　　WaitForSingleObject(ProcessInfo.hProcess,INFINITE);<BR>　　CloseHandle(ProcessInfo.hThread);<BR>　　CloseHandle(ProcessInfo.hProcess);<BR>　　}<BR>　　else<BR>　　{<BR>　　MessageBox("The process could not be started...");<BR>　　}<BR>　　<BR>　　Q: 如何显示文件或文件夹的属性？<BR>　　SHELLEXECUTEINFO ShExecInfo ={0};<BR>　　ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);<BR>　　ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST ;<BR>　　ShExecInfo.hwnd = NULL;<BR>　　ShExecInfo.lpVerb = "properties";<BR>　　ShExecInfo.lpFile = "c:\\"; //can be a file as well<BR>　　ShExecInfo.lpParameters = "";<BR>　　ShExecInfo.lpDirectory = NULL;<BR>　　ShExecInfo.nShow = SW_SHOW;<BR>　　ShExecInfo.hInstApp = NULL;<BR>　　ShellExecuteEx(&amp;ShExecInfo);]]></description>
</item><item>
<title><![CDATA[Visual C++编程之Windows编程基础【转】]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11574</link>
<author>chasetang</author>
<pubDate>2006/2/8 12:56:54</pubDate>
<description><![CDATA[<B>1.事件驱动程序</B><BR>　　<BR>　　要实现这种Windows的多任务工作方式，过程式编程方式显然是不适合的。于是就产生了适应于这种工作方式的编程模式：事件驱动编程方式。<BR>　　<BR>　　事件驱动程序以窗口为中心，根据用户的不同操作激活处理相应事件的代码并完成相应的任务。<BR>　　<BR>　　事件驱动的程序设计是一种“被动”式程序设计方法，程序开始运行时，处于等待用户输入事件状态，然后取得事件并作出相应反应，处理完毕又返回并处于等待事件状态。<BR>　　<BR>　　<B>2.消息</B><BR>　　<BR>　　消息是报告有关事件发生的通知。<BR>　　<BR>　　在Windows系统中，消息是一种Windows数据结构，其中包含有消息的名字、消息发生时的一些参数，以及处理这个消息的函数指针。<BR>　　<BR>　　用户操作——〉触发事件——〉通过消息的方式通知Windows系统<BR>　　<BR>　　应用程序获得某个消息——〉调用消息处理函数处理消息<BR>　　<BR>　　根据消息来源的不同，消息可分为以下4类：<BR>　　<BR>　　(1)输入消息<BR>　　<BR>　　(2)控制消息<BR>　　<BR>　　(3)系统消息<BR>　　<BR>　　(4)用户消息<BR>　　<BR>　　解读Win32应用程序<BR>　　<BR>　　在最简单的Win32程序中，一共有5个全局函数和3个全局变量。<BR>　　<BR>　　<B>1.句柄</B><BR>　　<BR>　　句柄是用来唯一标示某个对象的长整数，可以简单把句柄理解为指针，但实际上还不太一样。Windows系统定义了很多句柄，如窗口句柄、设备环境句柄等等，在MFC中都被封装起来了，因此一般看不到。但还有许多MFC中的函数沿用API的习惯，使用句柄作为函数的参数。如果使用API编程就得经常跟句柄打交道了。<BR>　　<BR>　　<B>2.Windows程序的入口点——WinMain函数</B><BR>　　<BR>　　WinMain函数主要执行了两个动作：一是产生几乎每个Windows程序都需要的主窗口界面；二是建立Windows程序的心脏：消息循环。<BR>　　<BR>　　分析代码：<BR>　　int APIENTRY _tWinMain(HINSTANCE hInstance,<BR>　　HINSTANCE hPrevInstance,<BR>　　LPTSTR　　lpCmdLine,<BR>　　int　　　 nCmdShow)<BR>　　{<BR>　　MSG msg; //定义一个Windows的消息结构<BR>　　<BR>　　// 初始化全局字符串<BR>　　MyRegisterClass(hInstance);　//首先调用此函数注册一个窗口类<BR>　　<BR>　　// 执行应用程序初始化:<BR>　　if (!InitInstance (hInstance, nCmdShow)) //在此函数中，就产生了主窗口界面。<BR>　　{<BR>　　return FALSE;　//如果产生主窗口不成功，程序直接返回，退出<BR>　　}<BR>　　<BR>　　//以上是WinMain()函数的第一项工作：产生主窗口。<BR>　　//下面是WinMain()函数的第二项工作：建立主消息循环。<BR>　　//下面这个循环就是Windows程序的心脏：主消息循环。一旦退出主消息循环，程序就结束了。<BR>　　<BR>　　// 主消息循环:<BR>　　while (GetMessage(&amp;msg, NULL, 0, 0)) //使用GetMessage函数从消息队列中获取消息；<BR>　　{<BR>　　if (!TranslateAccelerator(msg.hwnd, hAccelTable, &amp;msg)) //解释加速键<BR>　　{<BR>　　TranslateMessage(&amp;msg); //使用TranslateMessage函数解释消息；<BR>　　DispatchMessage(&amp;msg); //发送消息到主窗口函数中去。<BR>　　}<BR>　　}<BR>　　//退出消息循环，WinMain函数才返回，程序才结束。<BR>　　return (int) msg.wParam;<BR>　　}<BR>　　<BR>　　<B>3.消息队列</B><BR>　　<BR>　　消息队列是系统用来存放各种消息的地方，Windows操作系统有一个消息队列，各个应用程序也有自己的消息队列。上面的GetMessage函数就是从这两个消息队列中获取消息，当获取到了一个退出消息的时候，消息循环就终止了，程序也就相应的结束了。]]></description>
</item><item>
<title><![CDATA[typedef用法]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11572</link>
<author>chasetang</author>
<pubDate>2006/2/8 12:34:54</pubDate>
<description><![CDATA[
<P><STRONG>typedef用法[转帖]</STRONG></P>
<P><BR>&nbsp;&nbsp;&nbsp;typedef&nbsp;声明，简称&nbsp;typedef，为现有类型创建一个新的名字。比如人们常常使用&nbsp;typedef&nbsp;来编写更美观和可读的代码。所谓美观，意指&nbsp;typedef&nbsp;能隐藏笨拙的语法构造以及平台相关的数据类型，从而增强可移植性和以及未来的可维护性。 </P>
<DIV width="100%">
<DIV>
<P></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;使用最多的地方是创建易于记忆的类型名，用它来归档程序员的意图。类型出现在所声明的变量名字中，位于&nbsp;''typedef''&nbsp;关键字右边。例如：</P>
<P>typedef&nbsp;int&nbsp;size;</P>
<P>　　此声明定义了一个&nbsp;int&nbsp;的同义字，名字为&nbsp;size。注意&nbsp;typedef&nbsp;并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要&nbsp;int&nbsp;的上下文中使用&nbsp;size.</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;还可以掩饰符合类型，如指针和数组。例如，你不用象下面这样重复定义有&nbsp;81&nbsp;个字符元素的数组：</P>
<P>char&nbsp;line[81];<BR>char&nbsp;text[81];</P>
<P><BR>&nbsp;&nbsp;&nbsp;&nbsp;定义一个&nbsp;typedef，每当要用到相同类型和大小的数组时，可以这样：</P>
<P>typedef&nbsp;char&nbsp;Line[81];<BR>Line&nbsp;text,&nbsp;secondline;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;typedef&nbsp;有另外一个重要的用途，那就是定义机器无关的类型，例如，你可以定义一个叫&nbsp;REAL&nbsp;的浮点类型，在目标机器上它可以i获得最高的精度:</P>
<P>typedef&nbsp;long&nbsp;double&nbsp;REAL;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;在不支持&nbsp;long&nbsp;double&nbsp;的机器上，该&nbsp;typedef&nbsp;看起来会是下面这样：</P>
<P>typedef&nbsp;double&nbsp;REAL;</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;并且，在连&nbsp;double&nbsp;都不支持的机器上，该&nbsp;typedef&nbsp;看起来会是这样：</P>
<P>typedef&nbsp;float&nbsp;REAL;</P>
<P>　　你不用对源代码做任何修改，便可以在每一种平台上编译这个使用&nbsp;REAL&nbsp;类型的应用程序。唯一要改的是&nbsp;typedef&nbsp;本身。在大多数情况下，甚至这个微小的变动完全都可以通过奇妙的条件编译来自动实现。不是吗?&nbsp;标准库广泛地使用&nbsp;typedef&nbsp;来创建这样的平台无关类型：size_t，ptrdiff&nbsp;和&nbsp;fpos_t&nbsp;就是其中的例子。此外，象&nbsp;std::string&nbsp;和&nbsp;std::ofstream&nbsp;这样的&nbsp;typedef&nbsp;还隐藏了长长的，难以理解的模板特化语法，例如：basic_string&lt;char,&nbsp;char_traits&lt;char&gt;，allocator&lt;char&gt;&gt;&nbsp;和&nbsp;basic_ofstream&lt;char,&nbsp;char_traits&lt;char&gt;&gt;。</P>
<P>注1:注意typedef与define的区别</P>
<P>typdef&nbsp;kkk&nbsp;int&nbsp;*<BR>kkk&nbsp;a,b</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;则a,b类型相同</P>
<P>define&nbsp;kkk&nbsp;int&nbsp;*<BR>kkk&nbsp;a,b</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;则a,b类型不同<BR>注2:</P>
<P>typedef&nbsp;int&nbsp;(*mac_listen_func)(int*,char*);<BR>mac_listen_func&nbsp;mlf1,mlf2;</P>
<P>等价定义：</P>
<P>int&nbsp;(*mlf1)(int*,char*);<BR>int&nbsp;(*mlf1)(int*,char*);</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;上面的方式使用比较方便，可读性也比较好。</P></DIV></DIV>]]></description>
</item><item>
<title><![CDATA[小常识：各种文件后缀名详解]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11539</link>
<author>chasetang</author>
<pubDate>2006/2/6 17:03:38</pubDate>
<description><![CDATA[
<P><STRONG><FONT size=3>小常识：各种文件后缀名详解</FONT></STRONG></P>
<P>&nbsp;</P>
<P>说起来Windows工作界面下的文件名简直是随心所欲，比如：某编辑部的2000年工作计划。文件名即可用中文直接表达，而且长度最长可达256个字符，让人看起来真是一目了然。然而在Windows环境中，安装的软件中却大量存在着类似CALENDAR.EXE、GAMES.GRP等等的文件名，这又是为什么呢？原来这些文件名都是根据DOS环境的文件名命名规则而定的。<BR></P>
<P><BR>DOS环境下的文件名<BR>
<P>　　在DOS下，文件名采用8＋3结构，即：最长8位的文件名，由小数点分隔后再跟上最长3位的后缀名，如：READ.ME、SETUP.EXE，一般情况下文件名不允许使用汉字，只能由字母、数字和一些符号组成。如READ.ME用中文理解就是"读我"，即提示用户在使用软件前先看看这个文件的内容，以获取更多的提示信息。而更重要的是，DOS下规定用后缀名来区分各种不同的文件。<BR>
<P>　　在DOS下最容易遇到的首先是可执行文件，后缀名有两类：*.exe、*.com（此处的*表示文件名任意），它们是由汇编语言或其它高级语言编出的程序经过编译后直接在DOS下运行的文件。有时由于软件功能多、内存偏小，不能一次性全部调入内存还可能有同文件名的ovl文件，如ws.exe、ws.ovl。另外还有一种文件可以直接运行，*.bat,即批处理文件，其中有许多命令或可执行文件名，主要用于提高工作效率，其中最有用的是Autoexec.bat，这个文件在开机时会被自动执行（自动执行在英文中就是Automaticallyexecute）。而另外一种可以加载但不能直接运行的文件即是系统扩展管理文件*.sys（sys即系统system），它主要提供某些非标准设备如鼠标、扩充内存等的驱动程序，如mouse.sys、himem.sys。为了统一管理还专门规定了一个config.sys的文本文件来一次性地在开机时自动调入这些必需的设备驱动程序，这些文件一旦被误删或换名或被病毒侵袭则将直接导致系统工作不正常。<BR>
<P>　　DOS下字处理产生的文件原本是可以不用后缀的，但人们常用*.txt表示（txt即文本text）。被所有的平台和所有应用程序支持。而为了管理方便，人们也可以用自己的名字做后缀来表示是自己建的文本文件，如我输入的很多文章即为*.mcj，为了便于用户在意外删掉原文件的情况下能尽快恢复原文件，许多字处理系统都提供了一种自动备份的功能，如我第二次编辑JIHUA.MCJ时（JIHUA:计划的汉语拼音），系统会先拷贝一份原文件为JIHUA.BAK。使用具有特殊格式功能的字处理软件，如求伯君先生早年推出的WPS，就会规定其后缀为.wps，用以标识是用WPS生成的文本文件。当使用字处理软件编辑高级语言程序时，后缀通常为相应语言的前三个字母（如：*.BAS即BASIC语言源程序，*.PAS为PASCAL语言程序，*.FOR为Fortran语言程序，*.C即为C语言，*.ASM即为汇编语言程序）。<BR>
<P>　　伴随着可执行文件常附有以下几类文件：*.HLP即帮助文件(help)、*.CFG即配置文件(config)、*.DAT即数据文件(data)、*.LOG即日志文件(log)、*.TMP为临时文件(temporal)。<BR>
<P><BR>Windows环境下的文件名<BR>
<P>　　绝大多数DOS文件名后缀在Windows下继续有效，但Windows本身也引出了许多种崭新的后缀名，如：*.drv为设备驱动程序(Driver)、*.fon和*.fot都是字库文件、*.grp为分组文件(Group)、*.ini为初始化信息文件(Initiation)、*.pif为DOS环境下的可执行文件在Windows下执行时所需要的文件格式、*.crd即卡片文件(Card)、*.rec即记录器宏文件(Record)、*.wri即文本文件(Write)，它是字处理write.exe生成的文件、*.doc和*.rtf也是文本文件(Document)，它们是Word产生的文件、*.cal为日历文件、*.clp是剪贴板中的文件格式、*.htm和　*.html即主页文件、*.par为交换文件、*.pwl为口令文件(Password)等等。<BR>
<P><BR>图像文件名后缀<BR>
<P>　　进入多媒体世界后，大家会看到各种各样精彩的图片，会发现许多种后缀名。的确，由于各个公司在开发图形有关的软件时都自制标准，导致今日在图形方面有太多的格式，以下就是常见的几种格式：<BR>
<P>　　首先是一种位图文件格式，它是一组点（像素）组成的图像，它们由图像程序生成或在扫描图像时创建。主要有Windows位图（.BMP）：由Microsoft公司开发，它被Windows和WindowsNT平台及许多应用程序支持。支持32位颜色，用于为Windows界面创建图标的资源文件格式，光标（.CUR、.DLL、.EXE）：资源文件格式，用于创建Windows界面的光标。OS/2位图（.BMP）：Microsoft公司和IBM开发的位图文件格式。它为各种操作系统和应用程序所支持。支持压缩，最大的图像像素为64000×64000。画笔(.PCX)：由Zsoft公司推出，它对图像数据也进行了压缩，可由PCX生成。用于Windows的画笔。支持24位颜色，最大图像像素是64000×64000。支持压缩。图形交换格式:<BR>
<P>　　GraphicsInterchageFormat（.GIF）：由CompuServe创建，它能以任意大小支持图画，通过压缩可节省存储空间，还能将多幅图画存在一个文件中。支持256色，最大图像像素是64000×64000。<BR>
<P>　　KodakPhotoCD(.PCD)：EastmanKodak所开发的位图文件格式，被所有的平台所支持，PCD支持24位颜色，最大的图像像素是2048×3072，用于在CD－ROM上保存照片。<BR>
<P>　　AdobePhotoshop(.PSD)：AdobePhotoshop的位图文件格式，被Macintosh和MSWindows平台所支持，最大的图像像素是30000×30000，支持压缩，广泛用于商业艺术。<BR>
<P>　　Macintosh绘画（.MAC）：Apple公司所开发的位图文件格式。被Macintosh平台所支持，仅支持单色原图，最大图像像素是576×720。支持压缩，主要用于在Macintosh图形应用程序中保存黑白图形和剪贴画片。<BR>
<P>　　BMP：Windows系统下的标准位图格式，使用很普遍。其结构简单，未经过压缩，一般图像文件会比较大。它最大的好处就是能被大多数软件“接受”，可称为通用格式。<BR>
<P>　　JPEG：也是应用最广泛的图片格式之一，它采用一种特殊的有损压缩算法，将不易被人眼察觉的图像颜色删除，从而达到较大的压缩比(可达到2:1甚至40:1)，所以“身材娇小，容貌姣好”，特别受网络青睐。<BR>
<P>　　GIF：分为静态GIF和动画GIF两种，支持透明背景图像，适用于多种操作系统，“体型”很小，网上很多小动画都是GIF格式。其实GIF是将多幅图像保存为一个图像文件，从而形成动画,所以归根到底GIF仍然是图片文件格式。<BR>
<P>　　PSD：图像处理软件“大哥大”Photoshop的专用图像格式，图像文件一般较大。<BR>
<P>　　PCX：ZSOFT公司在开发图像处理软件Paintbrush时开发的一种格式，存储格式从1位到24位。它是经过压缩的格式，占用磁盘空间较少，并具有压缩及全彩色的优点。<BR>
<P>　　PNG：与JPG格式类似,网页中有很多图片都是这种格式，压缩比高于GIF，支持图像透明，可以利用Alpha通道调节图像的透明度。<BR>
<P>　　DXF：三维模型设计软件AutoCAD的专用格式，文件小，所绘制的图形尺寸、角度等数据十分准确，是建筑设计的首选。<BR>
<P>　　CDR：著名的图形设计软件——CorelDRAW的专用格式，属于矢量图像，最大的优点“体重”很轻，便于再处理。<BR>
<P><BR>动画文件的后缀名<BR>
<P>　　动画文件格式用于保存包含动画框架中的图形信息。主要有：AutodeskFLIC(.FLC)：即.FLI，AutodeskAnimator和AnimatorPro的动画文件格式。支持256色，最大的图像像素是64000×64000，支持压缩。广泛用于动画图形中的动画序列、计算机辅助设计和计算机游戏应用程序。不大适合制作真实世界图像动画。<BR>
<P>　　MacPICTS(.PCS，.PIC)：Macromedia开发的动画文件格式，为Macintosh应用程序使用。支持256色，支持压缩，用于保存动画数据，是QuickTime的前身。<BR>
<P>　　Microsoft资源互换文件格式，TIFF（.AVD）：Microsoft公司开发的动画文件格式，被Windows、Windows<BR>
<P>　　NT平台和OS/2多媒体应用程序所支持，支持256色和压缩，用于在多媒体应用程序中保存音频、视频和图形信息。<BR>
<P>　　MPEG（.MPEG）：国际标准化组织的运动图像专家小组开发的动画文件格式。被所有平台和XingTechnologies<BR>
<P>　　MPEG播放器及其它应用程序所支持，支持压缩，最大图像像素是4095×4094×30帧/每秒。用于编码音频、视频、文本和图形数据。<BR>
<P>　　QuickTime(.QTM)：Apple计算机公司开发的动画文件格式。被AppleMacintosh和Microsoft<BR>
<P>　　Windows平台所支持，支持25位颜色，最大图像像素是64000×64000，支持压缩，用于保存音频和运动视频信息。　　　　<BR>
<P><BR>声音文件的后缀名<BR>
<P>　　声音文件格式是用于保存数字音频信息的。它们主要有：<BR>
<P>　　AIFF（.AIF）：这是Apple计算机公司开发的声音文件格式，被Macintosh平台和应用程序所支持。支持压缩。<BR>
<P>　　Amiga声音(.SVX)：Commodore所开发的声音文件格式，被Amiga平台和应用程序所支持，不支持压缩。<BR>
<P>　　MAC声音(.SND)：Apple计算机公司开发的声音文件格式，被Macintosh平台和多种Macintosh应用程序所支持，支持某些压缩。<BR>
<P>　　MIDI（.MID）：国际MIDI协会开发的声音文件格式，被Windows平台和许多应用程序所支持，用于为乐器创建数字声音。<BR>
<P>　　声霸(.VOC)：CreativeLabs公司开发的声音文件格式，被Windows和DOS平台所支持，支持压缩。<BR>
<P>　　WAVE（.WAV）：微软公司用作Windows平台上保存音频信息的资源格式。<BR>
<P><BR>压缩文件的后缀名<BR>
<P>　　为了提高存储效率，许多公司都推出了压缩数据的方法和相应的软件，这类文件的使用主要通过压包和解包软件来进行，主要的后缀有：*.zip、*.arj、*.rar、*.lzh、*.jar。还有一些专用的压缩文件，如：*.ex_、*.dl_、*.d3_、*.cab等。<BR>
<P><BR>数据库类文件的后缀名<BR>
<P>　　在Dbase、FoxBase、Foxpro系列软件的环境下有以下几类后缀：<BR>
<P>　　.dbf数据库文件(databasefile).prg命令文件(即程序Program)<BR>
<P>　　.fxp编译后的程序.scx和.sct屏幕文件<BR>
<P>　　.fpt备注字段文件.frx和.frt报表文件<BR>
<P>　　.cbx和.pjt标签文件.mnx和.mnt菜单文件<BR>
<P>　　.pjx和.pjt工程文件.app应用文件<BR>
<P>　　.cdx和.idx索引文件.qpr和.qpxSQL查询文件<BR>
<P>　　.fp配置文件.ap生成应用<BR>
<P>　　.err编译错误文件.men内存应用<BR>
<P>　　.fky键宏文件.win窗口文件<BR>
<P>　　.pcb库文件.tmp临时文件<BR>
<P>　　.tbk临时数据库文件<BR>
<P><BR>可安全删除的文件类型<BR>
<P>　　临时文件：*.tmp,*.syd,*.$$$,*.@@@,*._mp,*.gid,*.~*,*.gts<BR>
<P>　　备份文件：*.bak,*.old,*.wbk,*.xlk,*.ckr_<BR>
<P>　　帮助文件：*.hlp、*.chm、*.cnt　　　　　　<BR>
<P><BR>后记<BR>
<P>　　用户要注意在不同的操作系统下，后缀名的约定会有所不同，如在Unix下，*.p代表Pascal语言程序，*.z代表压缩文件，*.tar代表归档文件。另外，针对极特殊的设备，其驱动程序也会有特殊的后缀，如3DS显示卡的驱动程序是*.exp。还有某些公司针对自己的产品也规定了文件名后缀，如方正公司的图像排版文件规定用*.grh(即Graph)。<BR>
<P>　　文件名的后缀代表着某一种类型的文件，一般会由某一种特定的软件产生和处理。只有对这些后缀名的知识有一定的了解，才能在上机的过程中知道其所以然。这儿带着大家看到了常见的一些后缀类型，实际上还有很多类型，不可能全部讲完。常言说，师傅领进门，修行在个人，以后大家在计算机世界中自己转着看吧。<BR>
<P>　<BR>
<P>　<BR>
<P>常见的文件后缀名<BR>
<P>ACA　　Microsoft的代理使用的角色文档<BR>acf　　系统管理配置<BR>acm　　音频压缩管理驱动程序,为Windows系统提供各种声音格式的编码和解码功能<BR>aif　　声音文件，支持压缩，可以使用WindowsMediaPlayer和QuickTimePlayer播放<BR>AIF　　音频文件，使用WindowsMediaPlayer播放<BR>AIFC　　音频文件，使用WindowsMediaPlayer播放<BR>AIFF　　音频文件，使用WindowsMediaPlayer播放<BR>ani　　动画光标文件扩展名，例如动画沙漏。<BR>ans　　ASCII字符图形动画文件<BR>arc　　一种较早的压缩文件，可以使用WinZip,WinRAR,PKARC等软件打开<BR>arj　　压缩文件。可以使用WinZip,WinRAR,PKARC等软件打开<BR>asf　　微软的媒体播放器支持的视频流，可以使用WindowsMediaPlayer播放<BR>asp　　微软的视频流文件，可以使用WindowsMediaPlayer打开<BR>asp　　微软提出的ActiveServerPage,是服务器端脚本，常用于大型网站开发，支持数据库连接，类似PHP。可以使用VisualInterDev编写，是目前的大热门<BR>asx　　WindowsMedia媒体文件的快捷方式<BR>au　　是Internet中常用的声音文件格式，多由Sun工作站创建，可使用软件WaveformHoldandModify播放。NetscapeNavigator中的LiveAudio也可以播放.au文件<BR>avi　　一种使用MicrosoftRIFF规范的Windows多媒体文件格式，用于存储声音和移动的图片<BR>bak　　备份文件，一般是被自动或是通过命令创建的辅助文件，它包含某个文件的最近一个版本，并且具有于该文件相同的文件名<BR>bas　　Basic语言源程序文件，可编译成可执行文件,目前使用Basic开发系统的是VisualBasic<BR>bat　　批处理文件，在MS-DOS中，.bat文件是可执行文件，有一系列命令构成，其中可以包含对其他程序的调用<BR>bbs　　电子告示板系统文章信息文件<BR>bfc　　Windows的公文包文件<BR>bin　　二进制文件，其用途依系统或应用而定<BR>bmp　　Bitmap位图文件，这是微软公司开发Paint的自身格式，可以被多种Windows和WindowsNT平台及许多应用程序支持，支持32位颜色，用于为Windows界面创建图标的资源文件格式。<BR>c　　C语言源程序文件，在C语言编译程序下编译使用<BR>cab　　Microsoft制订的压缩包格式，常用于软件的安装程序，使用Windows自带的实用程序，Extract.exe可以对其解压缩，WinZip,WinRAR等都支持这种格式<BR>cal　　Windows中的日历文件<BR>cdf　　InternetExplorer的频道文件<BR>cdr　　CorelDraw中的一种图形文件格式，它是所有CorelDraw应用程序中均能够使用的一种图形图像文件格式<BR>cdx　　索引文件，存在于Dbase,Foxbase,Foxpro系统软件环境下<BR>cfg　　配置文件，系统或应用软件用于进行配置自己功能，特性的文件<BR>chm　　编译过后的HTML文件，常用于制作帮助文件和电子文档<BR>clp　　在Windows下剪贴板中的文件格式<BR>cmd　　用于WindowsNT/2000的批处理文件，其实与BAT文件功能相同，只是为了与DOS/Windows9x下的BAT有所区别<BR>cmf　　声卡标准的音乐文件，FM合成器等可以回放<BR>cnf　　NetMeetting会议连接文件<BR>cnt　　联机帮助文件目录索引文件，通常和同名的.hlp文件一起保存<BR>col　　由AutodeskAnimator,AutodeskAnimatorPor等程序创建的一种调色板文件格式，其中存储的是调色板中各种项目的RGB值<BR>com　　DOS可执行命令文件，一般小于64KB<BR>cpl　　控制面板扩展文件，Windows操作系统使用<BR>cpp　　C++语言源程序，非常强大的语言，在各种平台中都有相应的开发系统<BR>crd　　Windows中的卡片文件<BR>crt　　用于安全方面的证书认证文件<BR>cur　　Windows下的光标资源文件格式，可用光标编辑软件编辑<BR>css　　Text/css文件<BR>dat　　数据文件，在应用程序中使用<BR>dat　　VCD中的图象声音文件，VCD播放软件可调用，或是通过VCD机播放<BR>dbf　　数据库文件，Foxbase,Dbase,VisualFoxPro,等数据库处理系统所产生的数据库文件<BR>dcx　　传真浏览文档文件<BR>ddi　　映象文件，DUP,HD,IMG等工具可展开<BR>dev　　设备驱动程序<BR>dib　　设备无关位图文件，这是一种文件格式，其目的是为了保证用某个应用程序创建的位图图形可以被其它应用程序装载或显示一样<BR>dir　　目录文件<BR>dll　　Windows动态连接库，几乎无处不在，但有时由于不同版本DLL冲突会造成败各种各样的问踢<BR>doc　　是目前市场占有率最高的办公室软件MicrosoftOffice中的字处理软件Word创建的文档<BR>dos　　Windows保留的MS-DOS的某些系统文件<BR>dot　　MicrosoftWord的文档模板文件，通过模板可以简化一些常用格式文档的创建工作,而且可以内嵌VBA程序来实现某些自动化功能<BR>drv　　设备驱动程序文件，用在各种系统中<BR>dwg　　AutoCAD的图纸文件，也是许多绘图软件都支持的格式，常用于共享数据<BR>dxb　　AutoCAD创建的一中图形文件格式<BR>dxf　　图形交换格式，一种计算机辅助设计的文件格式，最初开发用来与AutoCAD一起使用，以便于图形文件在应用程序之间的传递,它以ASCII方式储存图形，在表现图形的大小方面十分精确<BR>der　　Certiticate文件<BR>dic　　Txt文件<BR>emf　　由Microsoft公司开发的Windows32位扩展图元文件格式，其总体设计目标是要彌补在MicrosoftWindows3.1(Win16)中用的*.wmf文件格式的不足,使得图元文件更加易于使用<BR>eps　　用PostScript语言描述的一种图形文件格式，以文本文件保存，在PostScript图形打印机上能打印出高品质的图形图象，最高能表示32位图形图象<BR>err　　编译错误文件，存在于Dbase,Foxbase,Foxpro系列软件环境下<BR>exe　　可执行文件，虽然后缀名相同，但具有不同的格式和版本<BR>exp　　3DS使用的显示卡驱动程序<BR>exc　　Txt文件<BR>flc　　AutodeskAnimator和Animatorpro的动画文件，支持256色，最大的图象象索是64000*64000,支持压缩，广泛用于动画图形中的动画序列，计算机辅助设计和计算机游戏应用程序<BR>fnd　　保存的搜索结果<BR>fon　　点阵字库文件<BR>for　　Fortran语言程序<BR>fot　　指向字体的快捷键<BR>fp　　配置文件，存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>fpt　　备注字段文件，存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>frt　　报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>frx　　报表文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>fxp　　编译后的程序，存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>gif　　在各种平台的各种图形处理软件上均能够处理的，经过压缩的一种图形文件格式<BR>grh　　方正公司的图象排版文件<BR>grp　　Windows下的程序管理器产生的组窗口文件<BR>goc　　Gocserve<BR>gra　　MSGraph.Chart.5<BR>h　　C语言源程序头文件<BR>hlp　　Windows应用程序帮助文件<BR>hqx　　Macintosh中使用BinHex将二进制文件编码为7位的文本文件，大多数Macintosh文件皆以.hqx出现(.bin极少使用)，在Macintosh中,可使用StuffItExpander对.hqx解码，在Windows中可使用BinHex13解码<BR>ht　　超级终端<BR>htm　　保存超文本描述语言的文本文件，用于描述各种各样的网页，使用各种浏览器打开<BR>html　　同.htm文件<BR>icm　　图象配色描述文件<BR>ico　　Windows中的图标文件，可以包含同一个图标的多种格式，使用图标编辑软件创建<BR>idf　　MIDI乐器定义<BR>idx　　索引文件，存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>iff　　文件交换格式文件，这种文件格式多用于Amiga平台,在这种平台上它几乎可以存储各种类型的数据，在其它平台上，IFF文件格式多用于存储图象和声音文件<BR>image　　MAcintosh磁盘映象文件，常见于萍果机的FTP网点，在Macintosh中由ShrinkWrap处理<BR>ime　　Windows下的输入法文件<BR>img　　磁盘映象文件，用HD-COPY,WinImage等工具打开后可以恢复到一张磁盘上<BR>inc　　汇编语言包含文件，类似C/C++中的.H文件<BR>inf　　Windows下的软件安装信息，Windows的标准安装程序根据此文件内的安装信息对软件，驱动程序等进行安装<BR>ini　　Windows中的初始化信息文件,已经用的不多了，新的应用程序将设置保存在系统的注册表中<BR>jar　　一种压缩文件，ARJ的新版本，不过不太流行，可以使用WinJar,Winrar等打开<BR>jpeg　　一种图片压缩文件,同.jpg<BR>jpg　　静态图象专家组制订的静态图象压缩标准，具有很高的压缩比，使用非常广泛，可使用PhotoShop等图象处理软件创建<BR>lnk　　快捷方式，这个文件指向另一个文件，开始菜单的程序文件夹下每条项目都是一个LNK文件<BR>log　　日志文件,通常用来记录一些事件之类<BR>lzh　　一种古老的压缩文件，可以使用WinRAR打开<BR>mac　　Macintosh中使用的一中灰度图形文件格式，在MacintoshPaintbrush中使用，其分辨率只能是720*567<BR>mag　　图形文件格式<BR>mdb　　MicrosoftAccess使用的数据库格式，是非常流行的桌面数据库<BR>men　　内存应用文件,存在于Dbase,Foxbase,Foxpro系列软件的环境下<BR>mid　　音频压缩文件，曾经非常流行，不过在现在的软件中用的很少了<BR>mif　　MIDI乐器<BR>mov　　使用Apple"sQuickTime格式的电影文件，在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放，在Windows中可由Quicktime播放<BR>movie　　QuickTime或苹果机的影视格式，在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放,在Windows中可由QuickTime播放<BR>mp3　　采用MPEG-1Layout3标准压缩的音频文件，是网上主要的压缩音频文件，这种文件由于具有极高的压缩率和失真低的特点，是目前音乐盗版的主要文件格式，但目前受到VQF,WMA等新标准的挑战<BR>mpg　　采用MPEG-1标准压缩的视频文件，与VCD使用的格式非常相近，提供CD质量的音频信号和320*240的视频分辩率，目前的媒体播放软件大都能播放,Microsoft的WMV8和MPEG-4压缩的AVI文件是其强大的竞争对手<BR>mpt　　Macintosh中使用的一种图形文件格式<BR>msg　　Microsoft邮件文档<BR>obj　　对象代码<BR>ovl　　由于软件功能多，内存偏小，不能一次性全部调入内存的可执行文件可能有同文件名的ovl文件<BR>pcd　　位图文件，由EastmanKodak开发，被所有的平台所支持，PCD支持24位颜色，最大的图象像索是2048*3072，用于在CD-ROM上保存图片<BR>pcs　　动画文件，是Macromedia开发的动画文件格式，为Macintosh应用程序使用,支持压缩，支持256色，用于保存动画数据，是QuickTime的前身<BR>pcx　　图像文件，PCX格式是ZSOFT公司在开发图像处理软件Paintbrush是开发的一种格式，这是一种经过压缩的格式，占用磁盘空间较少<BR>pdf　　图文多媒体文件，Adobe公司定义的电子印刷品文件格式，它是一种事实上的标准，在Internet网上的很多电子印刷品，都是.pdf格式的<BR>psd　　是PhotoShop中使用的一种标准图形文件格式，能够保存图像数据的每一个细小部分，包括层，附加的蒙版通道以及其他内容<BR>pwl　　Windows下的口令文件<BR>qt　　Machintosh的QuickTime影视格式，在Macintosh中由Sparkle,FastPlayer,MoviePlayer等软件播放，在Windows中可由Quicktime播放<BR>qtm　　动画文件，这种文件格式是由Apple计算机公司开发，被AppleMacintosh和MicrosoftWindows平台所支持，支持25位颜色，最大图像分辩率是64000*64000,支持压缩，用于保存音频和运动视频信息<BR>rec　　Windows下的记录器宏文件<BR>reg　　Windows95/98的系统及应用程序注册文件，这种文件虽然以纯文本文件保存，但一样存在版本问题，不同的操作系统使用的REG文件版本是不同的<BR>rle　　一种压缩过的位图文件格式，RLE压缩方案是一种极其成熟的压缩方案，特点是无损失压缩，既节省了磁盘空间又不损失任何图像数据，但在打开这种压缩文件时，要花费更多时间，此外，一些兼容性不太好的应用程序可能会搭不开<BR>rm　　Windows下的RealPlayer所支持的视频压缩文件，网上非常流行的流式视频文件，很多实时视频新闻等都是采用这种格式的，不过，最新的WindowsMediaVideoV8已经对其发起了强大的攻势<BR>rmi　　MIDI音序文件<BR>rtf　　丰富文本格式文件，以纯文本描述内容，能够保存各种格式信息，可以用写字版，Word等创建<BR>sav　　存档文件<BR>scp　　用于Windows系统中Internet拨号用户，自动拨号登录用的脚本文件，可避免手动登录时繁琐的键盘输入<BR>scr　　屏障保护文件<BR>sct　　屏幕文件<BR>scx　　屏幕文件<BR>set　　Microsoft备份集文件，用于保存要备份的内容，设置等信息<BR>shb　　指向一个文档的快捷方式<BR>snd　　Mac声音文件,Apple计算机公司开发的声音文件格式，被Macintosh平台和多种Macintosh应用程序所支持，支持某些压缩<BR>sql　　查询文件，在Dbase,Foxbase,Foxpro系列软件的环境下使用<BR>svg　　SVG可以算是目前最火热的图像文件格式了，它是基于XML由WorldWideWebConsortium联盟开发的，SVG是可缩放的矢量图形<BR>svx　　Amiga声音文件，Commodore所开发的声音文件格式，被Amiga平台和应用程序所支持，不支持压缩<BR>swf　　flash是Micromedia公司的产品，严格说它是一种动画编辑软件，实际上它是制作出一种后缀名为.swf的动画，这种格式的动画能用比较小的体积来表现丰富的多媒体形式，并且还可以与HTML文件达到一种"水乳交融"的境界<BR>swg　　虚拟内存交换文件，由操作系统使用<BR>sys　　系统文件，驱动程序等，在不同的操作系统中有不同的定义<BR>tbk　　临时数据库文件，在Dbase,Foxbase,Foxpro系列软件的环境下使用<BR>tga　　图像文件，此文件格式的结构比较简单，属于一种图形，图像数据的通用格式，在多媒体领域有着很大影响，是计算机生成图像向电视转换的一种首选格式<BR>tiff　　图像文件，此图像格式复杂，存储内容多，占用存储空间大，其大小是GIF图像的3倍，是相应的JPEG图像的10倍，最早流行于Macintosh,现在Windows主流的图像应用程序都支持此格式<BR>tmp　　临时文件，一般是系统和应用程序产生的临时使用的文件，当系统和应用程序退出时，会自动地删除其建立的临时文件，如果是非正常退出，临时文件可能保留在磁盘上，在单任务系统下，可立即删除它们，在多任务系统下，应删除那些不是正在使用的临时文件<BR>txt　　文本文件<BR>url　　InternetShortcut(internet上URL地址的快捷方式)<BR>vcd　　虚拟光驱工具制作的光盘镜像文件<BR>ver　　版本描述，用于描述某个软件的版本信息的文件，内容因软件而异<BR>voc　　声音文件，此文件格式由CreativeLabs公司开发，被Windows和DOS平台所支持，支持压缩<BR>vxd　　虚拟设备驱动程序，在Windows操作系统中非常常见，是重要的系统文件<BR>wab　　通信簿文件，由系统中的通信簿程序使用<BR>wav　　音频文件，此文件格式是在Windows上用于保存音频信息的资源格式，Windows中由WaveformHoldandModify或Navigator，或"媒体播放机"播放，存在许多编码方式，需要相应的解码程序才能播放<BR>win　　窗口文件，在Dbase,Foxbase,Foxpro系列软件的环境下使用<BR>wmf　　MicrosoftWindows中常见的一种图元文件格式，它具有文件短小，图案造型化的特点，整个图形常由各个独立的组成部分拼接而成，但其图形往往较粗糙，并且只能在MicrosoftOffice中调用编辑<BR>wpc　　写字板文档转换<BR>wps　　Wps文本文件，有多种版本，可以使用WpsOffice,Wps2000等打开<BR>wri　　Windows写字板文档<BR>xab　　Microsoft邮件地址簿<BR>xbm　　AnimatorPro创建的一种图形文件格式，其中包含用来描述多边形的一系列点的信息<BR>zip　　是DOS/Windows中最常见文件压缩格式，也是互联网上的标准压缩格式，可以包含路径和多个文件<BR>
<P>-----A-------<BR>
<P>A　　对象代码库文件<BR>AAM　　Authorwareshocked文件<BR>AAS　　Authorwareshocked包<BR>ABF　　Adobe二进制屏幕字体<BR>ABK　　CorelDRAW自动备份文件<BR>ABS　　该类文件有时用于指示一个摘要（就像在一篇有关科学方面的文章的一个摘要或概要，取自abstract）<BR>ACE　　Ace压缩档案格式<BR>ACL　　CorelDRAW6键盘快捷键文件<BR>ACM　　Windows系统目录文件<BR>ACP　　Microsoftoffice助手预览文件<BR>ACR　　美国放射医学大学文件格式<BR>ACT　　Microsoftoffice助手文件<BR>ACV　　OS/2的驱动程序，用于压缩或解压缩音频数据<BR>AD　　AfterDark屏幕保护程序<BR>ADA　　Ada源文件（非-GNAT）<BR>ADB　　Ada源文件主体（GNAT）；HP100LX组织者的约定数据库<BR>ADD　　OS/2用于引导过程的适配器驱动程序<BR>ADF　　Amiga磁盘文件<BR>ADI　　AutoCAD设备无关二进制绘图仪格式<BR>ADM　　AfterDark多模块屏幕保护；WindowsNT策略模板<BR>ADP　　FaxWork用于传真调制解调器的交互安装文件；AstoundDynamite文件<BR>ADR　　AfterDark随机屏幕保护；SmartAddress的地址簿<BR>ADS　　Ada源文件说明书（GNAT）<BR>AFM　　Adobe的字体尺度<BR>AF2，AF3　　ABC的FlowChat文件<BR>AI　　AdobeIllustrator格式图形<BR>AIF，AIFF　　音频互交换文件，SiliconGraphicandMacintosh应用程序的声音格式<BR>AIFC　　压缩AIF<BR>AIM　　AOL即时信息传送<BR>AIS　　ACDSee图形序列文件；VelvetStudio设备文件<BR>AKW　　RoboHELP的帮助工程中所有A-关键词<BR>ALAW　　欧洲电话音频格式<BR>ALB　　JASCImageCommander相册<BR>ALL　　艺术与书信库<BR>AMS　　VelvetStudio音乐模块（MOD）文件；Extreme的Tracker模块文件<BR>ANC　　CanonComputer的调色板文件，包含一系列可选的颜色板<BR>ANI　　Windows系统中的动画光标<BR>ANS　　ANSI文本文件<BR>ANT　　SimAntForWindows中保存的游戏文件<BR>API　　AdobeAcrobat使用的应用程序设计接口文件<BR>APR　　LotusApproach97文件<BR>APS　　MicrosoftVisualC++文件<BR>ARC　　LHARC的压缩档案文件<BR>ARI　　Aristotle声音文件<BR>ARJ　　RobertJungARJ压缩包文件<BR>ART　　XaraStudio绘画文件；CanonCrayola美术文件；ClipArt文件格式；另一种光线跟踪格式；AOL使用的用Johnson—Grace压缩算法压缩的标记文件<BR>ASA　　MicrosoftVisualInterDev文件<BR>ASC　　ASCⅡ文本文件；PGP算法加密文件<BR>ASD　　MicrosoftWord的自动保存文件；Microsoft高级流媒体格式（microsoftadvancedstreamingFORMat，ASF）的描述文件；可用NSREX打开VelvetStudio例子文件<BR>ASE　　VelvetStudio采样文件<BR>ASF　　Microsoft高级流媒体格式文件<BR>ASM　　汇编语言源文件，Pro/E装配文件<BR>ASO　　AstoundDynamite对象文件<BR>ASP　　动态网页文件；ProCommPlus安装与连接脚本文件；Astound介绍文件<BR>AST　　Astound多媒体文件；ClarisWorks“助手”文件<BR>ASV　　DataCAD自动保存文件<BR>ASX　　Cheyenne备份脚本文件；Microsoft高级流媒体重定向器文件，视频文件<BR>ATT　　AT&nbsp;ATW　　来自个人软件的AnyTimeDeluxeForWindows个人信息管理员文件<BR>AU　　Sun/NeXT/DEC/UNIX声音文件；音频U-Law（读作“mu-law”）文件格式<BR>AVB　　ComputerAssociatesInoculan反病毒软件的病毒感染后文件<BR>AVI　　MicrosoftAudioVideoInterleave电影格式<BR>AVR　　AudioVisualResearch文件格式<BR>AVS　　应用程序可视化格式<BR>AWD　　FaxVien文档<BR>AWR　　Telsis数字储存音频文件扩展名格式<BR>Axx　　ARJ压缩文件的分包序号文件，用于将一个大文件压至几个小的压缩包中（xx取01-99的数字）<BR>A3L　　Authorware3.x库文件<BR>A4L　　Authorware4.x库文件<BR>A5L　　Authorware5.x库文件<BR>A3M，A4M　　AuthorwareMacintosh未打包文件<BR>A4P　　Authorware无运行时间的打包文件<BR>A3W，A4W，A5W　　未打包的AuthorwareWindows文件<BR>
<P>-----B-------<BR>
<P>BAK　　备份文件<BR>BAS　　BASIC源文件<BR>BAT　　批处理文件<BR>BDF　　WestPointBridgerDesigner文件<BR>BFC　　Windows95Briefcase文档<BR>BG　　BackgammonForWindows下的游戏文件<BR>BGL　　MicrosoftFlightSimulator（微软飞行模拟器）的视景文件<BR>BI　　二进制文件<BR>BIF　　GroupWise的初始化文件<BR>BIFF　　XLIFE3D格式文件<BR>BIN　　二进制文件<BR>BK，BK$　　有时用于代表备份版本<BR>BKS　　IBMBookManagerRead书架文件<BR>BMK　　书签文件<BR>BMP　　Windows或OS/2位图文件<BR>BMI　　ApogeeBioMenace数据文件<BR>BOOK　　AdobeFrameMakerBook文件<BR>BOX　　LotusNotes的邮箱文件<BR>BPL　　BorlardDelph4打包库<BR>BQY　　BrioQuery文件<BR>BRX　　用于查看多媒体对象目录的文件<BR>BSC　　MSDeveloperStudio浏览器信息文件<BR>BSP　　Quake图形文件<BR>BS1　　ApogeeBlakeStone数据文件<BR>BS_　　MicrosoftBookshelfFind菜单外壳扩展名<BR>BTM　　Norton应用程序使用的批处理文件<BR>BUD　　Quicken的备份磁盘<BR>BUN　　CakeWalk声音捆绑文件(一种MIDI程序)<BR>BW　　SGI黑白图像文件<BR>BWV　　商业波形文件<BR>BYU　　BYU的电影文件格式<BR>B4　　HelixNutsandBolts文件<BR>
<P>-----C-------<BR>
<P>C　　C代码文件<BR>C0l　　台风波形文件<BR>CAB　　Microsoft压缩档案文件<BR>CAD　　Softdek的DrafixCAD文件<BR>CAL　　CALS压缩位图；日历计划表数据<BR>CAM　　Casio照相机格式<BR>CAP　　压缩音乐文件格式<BR>CAS　　逗号分开的ASCⅡ文件<BR>CAT　　Quicken使用的IntellCharge分类文件<BR>CB　　Microsoft干净引导文件<BR>CBI　　二进制卷格式文件(用于IBM大型机系统)<BR>CC　　VisualdBASE用户自定义类文件<BR>CCA　　cc：邮件文件<BR>CCB　　VisualBasic动态按钮配置文件<BR>CCF　　多媒体查看器配置文件，用于OS/2<BR>CCH　　Corel图表文件<BR>CCM　　Lotuscc：邮箱（例如“INBOX.CCM”）<BR>CCO　　CyberChat数据文件<BR>CCT　　MacromediaDirectorShockwave投影<BR>CDA　　CD音频轨道<BR>CDF　　Microsoft频道定义格式文件<BR>CDI　　Philip的高密盘交互格式<BR>CDM　　VisualdBASE自定义数据模块文件<BR>CDR　　CorelDRAW绘图文件；原始音频CD数据文件<BR>CDT　　CorelDRAW模板<BR>CDX　　CorelDRAW压缩绘图文件；MicrosoftVisualFoxPro索引文件<BR>CEL　　CIMFast事件语言文件<BR>CER　　证书文件（MIMEx-x509-ca-cert）<BR>CFB　　Compton的多媒文件<BR>CFG　　配置文件<BR>CFM　　CotdFusion模板文件；VisualdBASEWindows用户定制表单<BR>CGI　　公共网关接口脚本文件<BR>CGM　　计算机图形元文件<BR>CH　　OS/2配置文件<BR>CHK　　由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片<BR>CHM　　编译过的HTML文件<BR>CHR　　字符集（字体文件）<BR>CHP　　VenturaPublisher章节文件<BR>CHT　　ChartViem文件；HarvardGraphics矢量文件<BR>CIF　　AdaptecCD创建器CD映像文件<BR>CIL　　ClipGallery下载包<BR>CIM　　SimCity2000文件<BR>CIN　　OS/2改变控制文件用于跟踪INI文件中的变化<BR>CK1　　iD/ApogeeCommanderKeen1数据文件<BR>CK2　　iD/ApogeeCommanderKeen2数据文件<BR>CK3　　iD/ApogeeCommanderKeen3数据文件<BR>CK4　　iD/ApogeeCommanderKeen4数据文件<BR>CK5　　iD/ApogeeCommanderKeen5数据文件<BR>CK6　　iD/ApogeeCommanderKeen6数据文件<BR>CLASS　　Java类文件<BR>CLL　　CrickSoftwareClicker文件<BR>CLP　　Windows剪贴板文件<BR>CLS　　VisualBasic类文件<BR>CMD　　WindowsNT，OS/2的命令文件；DOSCD/M命令文件；dBASEⅡ程序文件<BR>CMF　　Corel元文件<BR>CMG　　Chessmaster保存的游戏文件<BR>CMP　　JPEG位图文件；地址文档<BR>CMV　　CorelMove动画文件<BR>CMX　　CorelPresentationExchange图像<BR>CNF　　Telnet，Windows和其他其内格式会发生改变的应用程序使用的配置文件<BR>CNM　　Windows应用程序菜单选项和安装文件<BR>CNQ　　CompuworksDesignShop文件<BR>CNT　　Windows（或其他）系统用于帮助索引或其他目的内容文件<BR>COB　　TrueSpace2对象文件<BR>COD　　MicrosoftC编译器产生的可显示机器码/汇编代码文件，其中附有源C代码作为注释<BR>COM　　命令文件（程序）<BR>CPD　　CorelPrintOffice文件（图形）<BR>CPD，CPE传真覆盖文档<BR>CPI　　MicrosoftMS-DOS代码页信息文件<BR>CPL　　控制面板扩展名，Corel颜色板<BR>CPO　　Corel打印存储文件<BR>CPP　　C++代码文件<BR>CPR　　Corel提供说明书文件<BR>CPT　　Corel照片-绘画图像<BR>CPX　　CorelPresentationExchange压缩图形文件<BR>CRD　　WindowsCardfile文件<BR>CRP　　Corel提供的运行时介绍文件；VisualdBASE自定义报表文件<BR>CRT　　认证文件<BR>CSC　　Corel脚本文件<BR>CSP　　PCEmceeOn_Screen图像<BR>CSS　　瀑布式表格文件<BR>CST　　MacromediaDirectorCast文件<BR>CSV　　逗号分隔的值文件<BR>CT　　ScitexCT位图文件；PaintShopProGrapic编辑器文件<BR>CTL　　通常用于表示一个包含控件信息的文件；FaxWork用它来保持有关每个传真收到或发出的信息<BR>CUE　　Microsoft提示牌数据文件<BR>CUR　　Windows光标文件<BR>CUT　　DrHalo位图文件<BR>CV　　Corel版本的档案文件；MicrosoftCodeView信息屏幕文件<BR>CWK　　ClarisWorks数据文件.<BR>CWS　　ClarisWorks模块<BR>CXT　　MacromediaDirector受保护的（不可编辑的）投影文件<BR>CXX　　C++源代码文件<BR>
<P>-----D-------<BR>
<P>DAT　　数据文件；WrodPerfect合并数据文件；用于一些MPEG格式的文件<BR>DB　　Borland的Paradox7表<BR>DBC　　MicrosoftVisualFoxPro数据库容器文件<BR>DBF　　dBASE文件，一种由Ashton-Tate创建的格式，可以被ACT！、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别；可用数据文件（能被Excel97打开）；Oracle8.1.x表格空间文件<BR>DBX　　DataBearn图像；MicrosoftVisualFoxPro表格文件<BR>DCM　　DCM模块格式文件<BR>DCR　　冲击波文件<BR>DCS　　桌面颜色分隔文件<BR>DCT　　MicrosoftVisualFoxPro数据库容器<BR>DCU　　Delphi编译单元文件<BR>DCX　　MicrosoftVisualFoxPro数据库容器；基于PCX的传真图像；宏<BR>DC5　　DataCAD绘图文件<BR>DDF　　Btrieve或Xtrieve数据定义文件，它包含用于描述Btrieve或Xtrieve文件的元数据<BR>DDIF　　DigitalEquipment或Compaq格式，用于保存他们图像与字处理文档<BR>DEF　　SmartWareⅡ数据文件；C++模块定义文件<BR>DEFI　　Oracle7卸载脚本文件<BR>DEM　　用于表示数字高度模型的USGS基准的文件<BR>DER　　认证文件<BR>DEWF　　MacintoshSoundCap/SoundEdit录音设备格式<BR>DGN　　Macintosh95CAD绘图文件<BR>DIB　　设备无关位图<BR>DIC　　目录<BR>DIF　　可进行数据互换的电子表格<BR>DIG　　DigiLink格式；SoundDesignerⅠ音频文件<BR>DIR　　MacromediaDirector文件<BR>DIZ　　描述文件<BR>DLG　　C++对话框脚本文件<BR>DLL　　动态链接库<BR>DLS　　可下载声音文件<BR>DMD　　VisualdBASE数据模块文件<BR>DMF　　X-Trakker音乐模块（MOD）文件<BR>DOC　　FrameMaker或FrameBuilder文档；WordStar文档、WordPerfect文档、MicrosoftWord文档；DisplayWrite文档<BR>DOT　　MicrosoftWord文档模板<BR>DPL　　BorlandDelph3压缩库<BR>DPR　　BorlandDelphi工程头文件<BR>DRAW　　Acorn的基于对象的矢量图像文件<BR>DRV　　驱动程序<BR>DRW　　MicrografxDesigner/Draw；Pro/E绘画文件<BR>DSF　　MicrografxDesignerVFX文件<BR>DSG　　DOOM保存的文件<BR>DSM　　DynamicStudio音乐模块（MOD）文件<BR>DSP　　MicrosoftDeveloperStudio工程文件<BR>DSQ　　CorelQUERY（查询）文件<BR>DST　　刺绣机图形文件<BR>DSW　　MicrosoftDeveloperStudio工作区文件<BR>DTA　　WordBank（世界银行）的STARS数据文件<BR>DTD　　SGML文档类型定义（DTD）文件<BR>DTED　　地面高度数字数据（图形的数据格式）文件<BR>DTF　　SymantecQ&amp;A相关的数据库数据文件<BR>DTM　　DigiTrakker模块文件<BR>DUN　　Microsoft拔号网络导出文件<BR>DV　　数字视频文件（MIME）<BR>DWD　　DiamondWare数字化文件<BR>DWG　　AutoCAD工程图文件；AutoCAD或GenericCADD老版本的绘图格式<BR>DXF　　可进行互交换的绘图文件格式，二进制的DWG格式的文本表示；数据交换文件<BR>DXR　　MacromediaDirector受保护（不可编辑）电影文件<BR>D64　　Commodore的64位模拟磁盘图像文件<BR>
<P>-----E-------<BR>
<P>EDA　　EnsoniqASR磁盘映像<BR>EDD　　元素定义文档（FrameMaker+SGML文档）<BR>EDE　　EnsoniqEPS磁盘映像<BR>EDK　　EnsoniqKT磁盘映像<BR>EDQ　　EnsoniqSQ1/SQ2/Ks32磁盘映像<BR>EDS　　EnsoniqSQ80磁盘映像<BR>EDV　　EnsoniqVFX-SD磁盘映像<BR>EFA　　EnsoniqASR文件<BR>EFE　　EnsoniqEPS文件<BR>EFK　　EnsoniqKT文件<BR>EFQ　　EnsoniqSQ1/SQ2/Ks32文件<BR>EFS　　EnsoniqSQ80文件<BR>EFV　　EnsoniqVFX-SD文件<BR>EMD　　ABT扩展模块<BR>EMF　　Windows增强元文件<BR>EML　　MicrosoftOutlookExpress邮件消息（MIMERTC822）文件<BR>ENC　　重演文件<BR>ENFF　　中性文件格式扩展名<BR>EPHTML　　Perl解释增强HTML文件<BR>EPS　　压缩的PostScript图像<BR>EPSF　　压缩的PostScript文件<BR>ERI　　ERWin文件<BR>ERR　　当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件<BR>EPX　　ERWin文件<BR>ESPS　　ESPS音频文件<BR>EUI　　EnsoniqESP家族的压缩磁盘映像<BR>EVY　　特使文档<BR>EWL　　MicrosoftEncarta文档<BR>EXC　　MicrosoftWord禁止字字典<BR>EXE　　可执行文件（程序）<BR>
<P>-----F-------<BR>
<P>F　　FORTRAN文件<BR>F2R　　Farandoyle线性模块格式<BR>F3R　　Farandoyle分块线性模块格式<BR>F77　　FORTRAN文件<BR>F90　　FORTRAN文件<BR>FAR　　FradoleComposer音乐模块（MOD）文件<BR>FAV　　MicrosoftOutlook导航条<BR>FAX　　传真类型图像<BR>FBK　　Navison金融备份<BR>FCD　　虚拟CD-ROM<BR>FDB　　Navison金融数据库<BR>FDF　　AdobeAcrobat表单文档文件<BR>FEM　　CADRE有限元素网络文件<BR>FFA，FFL，FFO，FFK　　Microsoft快速查找文件<BR>FFF　　GUSPnP银行文件格式<BR>FFT　　最终格式文本（IBM的DCA一部分）<BR>FH3　　AldusFreehand3绘图文件<BR>FIF　　Fractal图像文件<BR>FIG　　REND386/AVRIL使用的文件格式<BR>FITS　　CCD照相机图像；灵活图像传输系统<BR>FLA　　MacromediaFlash电影<BR>FLC　　AutodeskFLIC动画文件<BR>FLF　　CorelParadox产生的格式：NavisonFinancials许可文件；OS/2驱动程序文件<BR>FLI　　AutodeskFLIC动画<BR>FLT　　StarTrekker音乐模块(MOD)文件；MultiGenInc的OpenFlight使用的文件格式；Corel过滤器文件<BR>FM　　AdobeFrameMaker文档<BR>FMB　　Oracle4.0版或以后版本表单的二进制源代码文件<BR>FML　　文件镜象列表（GetRight）<BR>FMT　　Oracle4.0版或以后版本表单的文本格式；MicrosoftSchedule+打印文件<BR>FMX　　Oracle4.0版或以后版本可执行表单<BR>FND　　MicrosoftExplorer保存的搜索文件（Findapplet）<BR>FNG　　字体组文件（字体导航器，FontNavigator）<BR>FNK　　FunkTracker模块格式<BR>FOG　　Fontographer模块字体<BR>FON　　系统字体<BR>FOR　　FORTRAN文件<BR>FOT　　字体相关文件<BR>FP　　FileMakerPro文件<BR>FP1　　FlyingPigsforWindows数据文件<BR>FP3　　FileMakerPro文件<BR>FPT　　FileMakerPro文件；MicrosoftFoxPro备注字体文件<BR>FPX　　FlashPix位图<BR>FRM　　表单；FrameMaker或FrameBuilder文档；Oracle可执行表(3.0版或早期版本)；VisualBasic表单；WordPerfectMerge表单；DataCAD标志报表文件<BR>FRT　　MicrosoftFoxPro报表文件<BR>FRX　　VisualBasic表单文本；MicrosoftFoxPro报表文件<BR>FSF　　fPrintAuditTool文件格式<BR>FSL　　Borland的Paradox7表单；CorelParadox保存的表单<BR>FSM　　Parandoyle示例格式<BR>FT　　LotusNotes全文本索引<BR>FTG　　全文本搜索组文件，由Windows帮助系统查找时产生——可以删除，并在需要时重建起来<BR>FTS　　全文本搜索引文件，由Windows帮助系统查找时产生<BR>FW2　　FrameworkⅡ文件<BR>FW3　　FrameworkⅢ文件<BR>FW4　　FrameworkⅣ文件<BR>FXP　　经MicrosoftFoxPro编译的源文件<BR>FZB　　CasioFZ-1银行转储<BR>FZF　　CasioFZ-1完全转储<BR>FZV　　CasioFZ-1声音转储<BR>
<P>-----G-------<BR>
<P>G721　　RawCCITTG.721$bitADPCM格式数据<BR>G723　　RawCCITTG.7233或5bitADPCM格式数据<BR>GAL　　Corel多媒体管理器相集<BR>GCD　　GenericCADD绘画文件（后续版本）<BR>GCP　　GroundControlPoint（地面控制点）文件，用于远景数据形成图像过程，经常用于生成图工程—CHIPS（copenhagenimageprocessingsystem）使用这些文件<BR>GDB　　InterBase数据库文件<BR>GDM　　铃声、口哨声和声音板模块格式<BR>GED　　GEDCOM系谱数据文件，用于记录和交换系谱数据的流行格式；图形环境文档绘画<BR>GEM　　GEM元文件<BR>GEN　　Ventura产生的文本文件<BR>GetRight　　GetRight未完成的下载文件<BR>GFC　　Patton&amp;PattonFlowCharting4flowchart文件<BR>GFI，GFX　　Genigraphics图形链接表示文件<BR>GHO　　Norton克隆磁盘映像<BR>GID　　Windows95全局索引文件（包括帮助状态）<BR>GIF　　CompuServe位图文件<BR>GIM，GIX　　Genigraphics图形链接介绍文件<BR>GKH　　EnsoniqEPS家簇磁盘映像文件<BR>GKS　　GravisGripKey文档<BR>GL　　动画格式<BR>GNA　　Genigraphics图形链接介绍文件<BR>GNT　　生成代码，MicroFocus属性格式里的可执行代码<BR>GNX　　Genigraphics图形链接介绍文件<BR>GRA　　MicrosoftGraph文件<BR>GRD　　用于远程视景数据产生地图过程的格式文件，通常应用于形成地图工程—CHIPS（copenhagenimageprocessingsystem）使用这些文件<BR>GRF　　Grapher（GoldenSoftware公司）图形文件<BR>GRP　　程序管理组<BR>GSM　　RawGSM6.10音频流；Raw“bytealigned（比特对齐的）”GSM6.10音频流；USRobotics语音调制解调器<BR>GTK　　Graoumftracker（老）音乐模块（MOD）文件<BR>GT2　　Graoumftracker（新）音乐模块（MOD）文件<BR>GWX，GWZ　　Cenigraphis图形链接介绍文件<BR>GZ　　UNIXgzip压缩文件<BR>
<P>-----H-------<BR>
<P>H　　C程序头文件<BR>HCM　　IBMHCM配置文件<BR>HCOM　　声音工具HCOM格式<BR>HCR　　IBMHCD/HCM产品配置文件<BR>HDF　　高级计算机应用程序本地中心（NCSA）geospatialHierarchial数据格式文件<BR>HED　　HighEdit文档<BR>HEL　　MicrosoftHellbender格式保存的游戏文件<BR>HEX　　MacintoshBinHex2.0文件<BR>HGL　　HP图形语言绘图文件<BR>HH　　映射文件，包括一些话题ID和在帮助文件系统中话题的映射数字—允许运行中应用程序发送给用户合适的上下文帮助话题<BR>HLP　　帮助文件；DateCADWindows帮助文件<BR>HOG　　LucasArts的DarkForcesWAD文件<BR>HPJ　　VisualBasic帮助工程<BR>HPP　　C++程序头文件<BR>HQX　　MacintoshBinHex4.0文件<BR>HST　　历史文件<BR>HT　　HyperTerminal（超级终端）<BR>HTM，HTML　　超文本文档<BR>HTT　　Microsoft超文本模板<BR>HTX　　扩展HTML模板<BR>HXM　　Descent2HAM文件扩展<BR>
<P>-----I-------<BR>
<P>ICA　　Citrix文件<BR>ICB　　Targa位图文件<BR>ICC　　Kodak打印机格式文件<BR>ICL　　图标库文件<BR>ICM　　图形颜色匹配配置文件<BR>ICO　　Windows图标<BR>IDB　　MSDev中间层文件<BR>IDD　　MIDI设备定义<BR>IDF　　MIDI设备定义（Windows95需要的文件）<BR>IDQ　　Internet数据查询文件<BR>IDX　　MicrosoftFoxPro相关数据库索引文件；SymantecQ&amp;A相关数据库索引文件；MicrosoftOutlookExpress文件<BR>IFF　　交换格式文件；AmigaILBM<BR>IGES　　初始图形交换说明文件<BR>IGF　　插入系统元文件<BR>IIF　　QuickBooksforWindows交换文件<BR>ILBM　　位图图形文件<BR>IMA　　WinImage磁盘映像文件<BR>IMG　　GEM映像<BR>IMZ　　WinImage压缩磁盘映像文件<BR>INC　　汇编语言或动态服务器包含文件<BR>INF　　信息文件<BR>INI　　初始化文件；MWaveDSPSynth的“nwsynth.ini”GMS安装；CravisUltrasoundbank安装<BR>INP　　Oracle3.0版或早期版本的表单源代码<BR>INRS　　INRS远程通信声频<BR>INS　　InstallShield安装脚本；X-Internet签字文件；EnsoniqEPS字簇设备；Cell/ⅡMAC/PC抽样设备<BR>INT　　中间代码，当一个源程序经过语法检查后编译产生一个可执行代码<BR>IOF　　Findit文档<BR>IQY　　MicrosoftInternet查询文件<BR>ISO　　根据ISD9660有关CD-ROM文件系统标准列出CD-ROM上的文件<BR>ISP　　X-Internet签字文件<BR>IST　　数字跟踪设备文件<BR>ISU　　InstallShield卸装脚本<BR>IT　　脉冲跟踪系统音乐模块(MOD)文件<BR>ITI　　脉冲跟踪系统设备<BR>ITS　　脉冲跟踪系统抽样，Internet文档位置<BR>IV　　OpenInventor中使用的文件格式<BR>IVD　　超过20/20微观数据维数或变量等级文件<BR>IVP　　超过20/20的用户子集配置文件<BR>IVT　　超过20/20表或集合数据文件<BR>IVX　　超过20/20微数据目录文件<BR>IW　　Idlewild屏幕保护程序<BR>IWC　　InstallWatch文档<BR>
<P>-----J-------<BR>
<P>J62　　Ricoh照相机格式<BR>JAR　　Java档案文件（一种用于applet和相关文件的压缩文件）<BR>JAVA　　Java源文件<BR>JBF　　PaintShopPro图像浏览文件<BR>JFF，JFIF，JIF　　JPEG文件<BR>JMP　　SAS的JMPDiscovery表格统计文件<BR>JN1　　EpicMegaGames的JilloftheJungle数据文件<BR>JPE，JPEG，JPG　　JPEG图形文件<BR>JS　　javascript源文件<BR>JSP　　HTML网页，其中包含有对一个Javaservlet的参考<BR>JTF　　JPEG位图文件<BR>
<P>-----K-------<BR>
<P>K25　　Kurzweil2500抽样文件<BR>KAR　　卡拉OKMIDI文件（文本+MIDI）<BR>KDC　　Kodak光增强器<BR>KEY　　DataCAD图标工具条文件<BR>KFX　　KoFakGroup4图像文件<BR>KIZ　　Kodak数字明信片文件<BR>KKW　　RoboHELP帮助工程索引设计器中与主题无关的K开头的所有关键字<BR>KMP　　KorgTrinityKeyMap文件<BR>KQP　　Konica照相机本地文件<BR>KR1　　Kurzweil2000抽样（多软驱）文件<BR>KRZ　　Kurzweil2000抽样文件<BR>KSF　　KorgTrinity抽样文件<BR>KYE　　Kye游戏数据<BR>
<P>-----L-------<BR>
<P>LAB　　VisualdBASE标签文件<BR>LBM　　DeluxePaint位图文件<BR>LBT，LBX　　MicrosoftFoxPro标签文件<BR>LDB　　MicrosoftAccess加锁文件<BR>LDL　　CorelParadox分发库<BR>LEG　　Legacy文档<BR>LES　　Logitech娱乐系统游戏配置文件（与REC文件一样）<BR>LFT　　3DStudio（DOS）放样文件<BR>LGO　　Paintbrush（Microsoft画图应用程序）的徽标文件<BR>LHA　　LZH更换文件后缀<BR>LIB　　库文件<BR>LIN　　DataCAD线型文件<BR>LIS　　结构化查询报告（SQR）程序产生的输出文件<BR>LLX　　Laplink交换代理<BR>LNK　　Windows快捷方式文件<BR>LOG　　日志文件<BR>LPD　　HelixNut和Bolt文件<BR>LRC　　Intel可视电话文件<BR>LSL　　CorelParadox保存的库文件<BR>LSP　　AutoLISP、CommonLISP和其他LISP语言文件<BR>LST　　列表文件<BR>LU　　ThoughtWing库单元文件<BR>LVL　　ParallaxSoftware的MinerDescent/D2Level扩展<BR>LWLO　　Lightwave分层对象文件<BR>LWOB　　Lightwave对象文件<BR>LWP　　LotusWordPro96/97文件<BR>LWSC　　Lightwave视景文件<BR>LYR　　DataCAD层文件<BR>LZH　　LHARC压缩档案<BR>LZS　　Skyroads数据文件<BR>
<P>-----M-------<BR>
<P>M1V　　MPEG相关文件(MIME“mpeg”类型)<BR>M3D　　CorelMotion3D动画文件<BR>M3U　　MPEGURL（MIME声音文件）<BR>MAC　　MacPaint图像文件<BR>MAD　　MicrosoftAccess模块文件<BR>MAF　　MicrosoftAccess表单文件<BR>MAG　　在一些日本文件中发现的图形文件格式<BR>MAGIC　　魔力邮件监视器配置文件<BR>MAK　　VisualBasil或MicrosoftVisualC++工程文件<BR>MAM　　MicrosoftAccess宏<BR>MAN　　UNIX手册页输出<BR>MAP　　映射文件；DukeNukem3DWAD游戏文件<BR>MAQ　　MicrosoftAccess查询文件<BR>MAR　　MicrosoftAccess报表文件<BR>MAS　　LotusFreelanceGraphicsSmartMaster文件<BR>MAT　　MicrosoftAccess表；3DStudioMAX材料库<BR>MAUD　　MAUD抽样格式<BR>MAX　　Kinetx的3DStudioMAX文件；该格式用于一个3D场景文件；Paperport文件；OrCAD设计文件<BR>MAZ　　Hover迷路数据；Division的dVS/dVISE使用的文件格式<BR>MB1　　ApogeeMonsterBash数据文件<BR>MBOX　　BerkeleyUnix邮箱格式<BR>MBX　　MicrosoftOutlook保存email格式；Eudora邮箱<BR>MCC　　Dailerl0呼叫卡<BR>MCP　　MetrowerksCodeWarrior工程文件<BR>MCR　　DataCAD键盘宏文件<BR>MCW　　MicrosoftWord的Macintosh文档<BR>MDA　　MicrosoftAccess内抽入器；MicrosoftAccess2.0版及其后续版本的工作组事件<BR>MDB　　MicrosoftAccess数据库<BR>MDE　　MicrosoftAccessMDE文件<BR>MDL　　数字跟踪器音乐模块（MOD）文件；Quake模块文件<BR>MDN　　MicrosoftAccess空数据库模板<BR>MDW　　MicrosoftAccess工作组文件<BR>MDZ　　MicrosoftAccess向导模板文件<BR>MED　　音乐编辑器，OctaMED音乐模块（MOD）文件<BR>MER　　电子表格/数据库数据交换格式；FileMaker、Excel及其他软件能识别<BR>MET　　表示管理器元文件<BR>MFG　　Pro/ENGINEER制造文件<BR>MGF　　在材料与几何学里的文件格式<BR>MHTM，MHTML　　MHTML文档（MIME）<BR>MI　　杂项<BR>MIC　　MicrosoftImageComposer文件<BR>MID　　MIDI音乐<BR>MIF　　AdobeFramMaker交换格式<BR>MIFF　　与机器无关格式文件<BR>MIM，MIME，MME　　Internet邮件扩展格式的多用途文件，经常作为发送e-mail时在AOL里附件而创建的文件；在一个多区MIM文件里的文件能用WinZip或其他类似程序打开<BR>MLI　　3DStudio的材料库格式文件<BR>MMF　　MealMaster格式；一个处方类格式；Microsoft邮件文件<BR>MMG　　超过20/20表或集会数据文件<BR>MMM　　Microsoft多媒体电影<BR>MMP　　MindmaporMindManager文件<BR>MN2　　Descent2任务文件<BR>MND，MNI　　MandelbortforWindows<BR>MNG　　多映像网络图形<BR>MNT,MNX　　MicrosoftFoxPro菜单文件<BR>MNU　　VisualdBASE菜单文件；IntertelSystemsInteract菜单文件<BR>MOD　　FastTracker、StarTrekker、NoiseTracker(等等)音乐模块文件；Microsoft多计划电子表格；Amiga/PC磁道文件<BR>MOV　　QuickTimeforWindows电影<BR>MP2　　第二层MPEG音频文件<BR>MP3　　第三层MPEG音频文件<BR>MPA　　MPEG相关文件，MIME“mpeg类型”<BR>MPE，MPEG，MPG　　MPEG动画文件<BR>MPP　　Microsoft工程文件；CAD绘图文件格式<BR>MPR　　MicrosoftFoxPro菜单（已编译）<BR>MRI　　MRI扫描文件<BR>MSA　　魔术阴影档案<BR>MSDL　　Manchester的场景描述语言<BR>MSG　　Microsoft邮件消息<BR>MSI　　Windows安装器包<BR>MSN　　Microsoft网络文档；DescentMission文件<BR>MSP　　MicrosoftPaint（画图）位图文件；WindowsInstaller路径文件<BR>MST　　Windows安装器传输文件<BR>MTM　　Multi跟踪器音乐模块（MOD）文件<BR>MUL　　Ultima在线<BR>MUS　　音乐<BR>MUS10　　Mus10声音<BR>MVB　　Microsoft多媒体查看器文件<BR>MWP　　LotusWordPro97SmartMaster文件<BR>
<P>-----N-------<BR>
<P>NAN　　Nanoscope文件(RawGrayscale)<BR>NAP　　NAP元文件<BR>NCB　　MicrosoftDeveloperStudio文件<BR>NCD　　Norton改变目录<BR>NCF　　NetWare命令文件；LotusNotes内部剪切板<BR>NDO　　3D低多边形建模器，Nendo<BR>netCDF　　网络公用数据表单<BR>NFF　　中性文件格式<BR>NFT　　NetObjectFusion模板文件<BR>NIL　　Norton光标库文件（EasyIcons-兼容）<BR>NIST　　NISTSphere声音<BR>NLB　　Oracle7数据<BR>NLM　　NetWare可装载模块<BR>NLS　　用于本地化的国家语言支持文件（例如，Uniscape）<BR>NLU　　NortonLiveUpdatee-mail触发器文件<BR>NOD　　NetObjectFusion文件<BR>NSF　　LotusNotes数据库<BR>NSO　　NetObjectFusion文档文件<BR>NST　　NoiseTracker音乐模块（MOD）文件<BR>NS2　　LotusNotes数据库（第二版）<BR>NTF　　LotusNotes数据库模板<BR>NTX　　CA-Clipper索引文件<BR>NWC　　NoteworthyComposer歌曲文件<BR>NWS　　MicrosoftOutlookExpress新闻消息（MIMERFC822）<BR>
<P>-----O-------<BR>
<P>O01　　台风声音文件<BR>OBD　　MicrosoftOffice活页夹<BR>OBJ　　对象文件<BR>OBZ　　MicrosoftOffice活页夹向导<BR>OCX　　Microsoft对象链接与嵌入定制控件<BR>ODS　　MicrosoftOutlookExpress邮箱文件<BR>OFF　　3D网状物对象文件格式<BR>OFN　　MicrosoftOfficeFileNew文件<BR>OFT　　MicrosoftOutlook模板<BR>OKT　　Oktalyzer音乐模块（MOD）文件<BR>OLB　　OLE对象库<BR>OLE　　OLE对象<BR>OOGL　　面向对象图形库<BR>OPL　　组织者编程语言源文件——Psion/Symbian<BR>OPO　　OPL输出可执行文件<BR>OPT　　MicrosoftDeveloperStudio文件<BR>OPX　　OPL扩展DLL（动态链接库）<BR>ORA　　Oracle7配置文件<BR>ORC　　Oracle7脚本文件<BR>ORG　　LotusOrganizer文件<BR>OR2　　LotusOrganizer2文件<BR>OR3　　LotusOrganizer97文件<BR>OSS　　MicrosoftOffice查找文件<BR>OST　　MicrosoftExchange/Outlook离线文件<BR>OTL　　SuperNoteTab模板文件<BR>OUT　　C语言输出文件<BR>
<P>-----P-------<BR>
<P>P3　　PrimaveraProjectPlanner（工程设计器）文件<BR>P10　　TektronixPlot10绘图文件<BR>P65　　PageMaker6.5文件<BR>P7C　　DigitalID文件（MIME）<BR>PAB　　Microsoft个人地址簿<BR>PAC　　SBStudioⅡ包<BR>PAK　　QuakeWAD文件<BR>PAL　　压缩文件<BR>PART　　Go！Zilla部分下载文件<BR>PAS　　Pascal源代码<BR>PAT　　DataCADHatch模式文件；CorelDRAW模式；高级GravisUltrasound/Forte技术；碎片文件<BR>PBD　　PowerBuilder动态库，作为本地DLL的一个替代物<BR>PBF　　TurtleBeach的Pinnacle银行文件<BR>PBK　　MicrosoftPhoneBook（电话簿）<BR>PBL　　用于在PowerBuilder开发环境中的PowerBuilder动态库<BR>PBM　　可导出位图<BR>PBR　　PowerBuilder资源<BR>PCD　　KodakPhoto-CD映像；P-Code编译器测试脚本，由Microsoft测试与MicrosoftVisual测试<BR>PCE　　MapsEudora邮箱名字的DOS文件名<BR>PCL　　Hewlett-Packard打印机控制语言文件（打印机备用位图）<BR>PCM　　声音文件格式；OKIMSM6376合成芯片PCM格式<BR>PCP　　SymantecLiveUpdatePro文件<BR>PCS　　PICS动画文件<BR>PCT　　MacintoshPICT绘画文件<BR>PCX　　ZsoftPC画笔位图<BR>PDB　　3ComPalmPilot数据库文件<BR>PDD　　可以用PaintShopPro或其他图像处理软件打开的图形图像<BR>PDF　　AdobeAcrobat可导出文档格式文件（可用Web浏览器显示）；Microsoft系统管理服务器包定义文件；NetWare打印机定义文件<BR>PDP　　Broderbund的PrintShopDeluxe文件<BR>PDQ　　Patton&amp;PattonFlowerchartingPDQLite文件<BR>PDS　　摄影图像文件（该文件格式的来源不清楚）<BR>PF　　Aladdin系统对私人文件进行加密的文件<BR>PFA　　类型1字体（ASCⅡ）<BR>PFB　　类型1字体（二进制）<BR>PFC　　PF组件<BR>PFM　　打印机字体尺度<BR>PGD　　良好隐私（PrettyGoodPrivacy，PGP）虚拟磁盘文件<BR>PGL　　HP绘图仪绘图文件<BR>PGM　　可输出灰度图（位图）<BR>PGP　　用良好隐私（PGP）算法加密文件<BR>PH　　由Microsoft帮助文件编译器产生的临时文件<BR>PHP，PHP3　　包含有PHP脚本的HTML网页<BR>PHTML　　包含有PHP脚本的HTML网页；由Perl分析解释的HTML<BR>PIC　　PC画图位图；Lotus图片；MacintoshPICT绘图<BR>PICT　　MacintoshPICT图形文件<BR>PIF　　程序信息文件；IBMPIF绘图文件<BR>PIG　　LucasArts的DarkForcesWAD文件<BR>PIN　　EpicPinball数据文件<BR>PIX　　内置系统位图<BR>PJ　　MKS源完整性文件<BR>PJX，PJT　　MicrosoftVisualFoxPro工程文件<BR>PKG　　MicrosoftDeveloperStudio应用程序扩展（与DLL文件类似）<BR>PKR　　PGP的公用钥匙环<BR>PL　　Perl程序<BR>PLG　　由REND386/AVRIL使用的文件格式<BR>PLI　　Oracle7数据描述<BR>PLM　　DiscorderTracker2模块<BR>PLS　　DisorderTracker2抽样文件；MPEGPlayList文件（由WinAmp使用）<BR>PLT　　HPGL绘图仪绘图文件；AutoCADplot绘图文件；Gerber标志制作软件<BR>PM5　　Pagemaker5.0文件<BR>PM6　　Pagemaker6.0文件<BR>PNG　　可移植的网络图形位图；PaintShopPro浏览器目录<BR>PNT，PNTG　　MacPaint图形文件<BR>POG　　Descent2PIG文件扩展<BR>POL　　WindowsNT策略文件<BR>POP　　VisualdBASE上托文件<BR>POT　　MicrosoftPowerpoint模块<BR>POV　　视频射线跟踪器暂留<BR>PP4　　PicturePublisher4位图<BR>PPA　　MicrosoftPowerpoint内插器<BR>PPF　　TurtleBeach的Pinnacle程序文件<BR>PPM　　可移植的象素映射位图<BR>PPP　　ParsonPowerPublisher；SerifPagePlus桌面出版缺省输出<BR>PPS　　MicrosoftPowerpoint幻灯片放映<BR>PPT　　MicrosoftPowerpoint演示文稿<BR>PQI　　PowerQuest驱动器图像文件<BR>PRC　　3COMPalmPiltt资源（文本或程序）文件<BR>PRE　　LotusFreelance演示文稿<BR>PRF　　Windows系统文件，Macromedia导演设置文件<BR>PRG　　dBASEClipper和FoxPro程序源文件；WAVmaker程序<BR>PRJ　　3DStudio（DOS）工程文件<BR>PRN　　打印表格（用空格分隔的文本）；DataCADWindows打印机文件<BR>PRP　　Oberson的Prospero数据转换产品保存的工程文件<BR>PRS　　HarvardGraphicsforWindows演示文件<BR>PRT　　打印格式化文件；Pro/ENGINEER元件文件<BR>PRV　　PsiMailInternet提供者模板文件<BR>PRZ　　LotusFreelanceGraphics97文件<BR>PS　　Postscript格式化文件（PostScript打印机可读文件）<BR>PSB　　PinnacleSoundBank<BR>PSD　　Adobephotoshop位图文件<BR>PSI　　PSIONa-Law声音文件<BR>PSM　　ProtrackerStudio模型格式；Epic游戏的源数据文件<BR>PSP　　PaintShopPro图像文件<BR>PST　　MicrosoftOutlook个人文件夹文件<BR>PTD　　Pro/ENGINEER表格文件<BR>PTM　　Polytracker音乐模块（MOD）文件<BR>PUB　　VenturaPublisher出版物；MicrosoftPublisher文档<BR>PWD　　MicrosoftPocketWord文档<BR>PWL　　Windows95口令列表文件<BR>PWP　　Photoworks图像文件（能被Photoworks浏览的一系列文件）<BR>PWZ　　MicrosoftPowerpoint向导<BR>PXL　　MicrosoftPocketExcel电子表格<BR>PY　　来自Yahoo的电子消息；Python脚本文件<BR>PYC　　Python脚本文件<BR>
<P>-----Q-------<BR>
<P>QAD　　PFQuickArt文档<BR>QBW　　QuickBooksforWindows文件<BR>QDT　　来自QuickenUK的QuickBooks数据文件，帐目/税/货单程序<BR>QD3D　　Apple的QuickDraw3D元文件格式<BR>QFL　　FAMILYLAWYER文档<BR>QIC　　Microsoft备份文件<BR>QIF　　QuickTime相关图像（MIME）；Quicken导入文件<BR>QLB　　Quick库<BR>QM　　QualityMotion文件<BR>QRY　　Microsoft查询文件<BR>QST　　QuakeSpyTab文件<BR>QT，QTM　　QuickTime电影<BR>QTI，QTIF　　QuickTime相关图像<BR>QTP　　QuickTime优先文件<BR>QTS　　MacPICT图像文件；QuickTime相关图像<BR>QTX　　QuickTime相关图像<BR>QW　　SymantecQ&amp;AWrite程序文件<BR>QXD　　QuarkXPress文件<BR>
<P>-----R-------<BR>
<P>RA　　RealAudio声音文件<BR>RAM　　RealAudio元文件<BR>RAR　　RAR压缩档案（EugeneRoshall格式）<BR>RAS　　Sun光栅图像位图<BR>RAW　　RAW文件格式（位图）；Raw标识的PCM数据<BR>RBH　　由RoboHELP维持的RBH文件，它加入到一个帮助工程文件的信息中<BR>RDF　　资源描述框架文件（涉及XML和元数据）<BR>RDL　　Descent注册水平文件<BR>REC　　录音机宏；RapidComm声音文件<BR>REG　　注册表文件<BR>REP　　VisualdBASE报表文件<BR>RES　　MicrosoftVisualC++资源文件<BR>RFT　　可修订的表单文本（IBM的DCA一部分或文档内容框架结构一部分）<BR>RGB，SGI　　Silicon图形RGB文件<BR>RLE　　Run-Length编码的位图<BR>RL2　　Descent2注册水平文件<BR>RM　　RealAudio视频文件<BR>RMD　　MicrosoftRegMaid文档<BR>RMF　　RichMap格式（3D游戏编辑器使用它来保存图）<BR>RMI　　M1D1音乐<BR>ROM　　基于盒式磁带的家庭游戏仿真器文件（来自Atari2600、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝，在两个仿真器之间不可互修改）<BR>ROV　　RescueRover数据文件<BR>RPM　　RedHat包管理器包（用于LinR　　Pegasus邮件资源文件<BR>[colorux）<BR>RPT　　MicrosoftVisualBasicCrystal报表文件<BR>RRS　　AcegameRoadRash保存的文件<BR>RSL　　Borland的Paradox7报表<BR>RSM　　WinWayResumeWriter恢复文件<BR>RTF　　RichText格式文档<BR>RTK　　RoboHELP使用的用来模拟Windows帮助的搜索功能<BR>RTM　　RealTracker音乐模块（MOD）文件<BR>RTS　　RealAudio的RTSL文档；RoboHELP对复杂操作进行加速<BR>RUL　　InstallShield使用的扩展名<BR>RVP　　MicrosoftScan配置文件（MIME）<BR>Rxx　　多卷档案上的RAR压缩文件（xx=1～99间的一个数字）<BR>
<P>-----S-------<BR>
<P>S　　汇编源代码文件<BR>S3I　　ScreamTrackerv3设备<BR>S3M　　ScreamTrackerv3的声音模块文件<BR>SAM　　Ami专业文档；8位抽样数据<BR>SAV　　游戏保存文件<BR>SB　　原始带符号字节（8位）数据<BR>SBK　　CreativeLabs的Soundfont1.0Bank文件；(Soundblaster)/EMUSonndFontv1.xBank文件<BR>SBL　　ShockwaveFlash对象文件<BR>SC2　　MicrosoftSchedule+7文件格式；SAS目录（Windows95/NT、OS/2、Mac）<BR>SC3　　SimCity3000保存的游戏文件<BR>SCC　　MicrosoftSourceSafe文件<BR>SCD　　Matrix/ImaproSCODL幻灯片图像；MicrosoftSchedule+7<BR>SCF　　WindowsExplorer命令文件<BR>SCH　　MicrosoftSchedule+1<BR>SCI　　ScanVecInspire本地文件格式<BR>SCN　　TrueSpace2场景文件<BR>SCP　　拨号网络脚本文件<BR>SCR　　Windows屏幕保护；传真图像；脚本文件<BR>SCT　　SAS目录（DOS）；ScitexCT位图；MicrosoftFoxPro表单<BR>SCT01　　SAS目录（UNIX）<BR>SCV　　ScanVecCASmate本地文件格式<BR>SCX　　MicrosoftFoxPro表单文件<BR>SD　　SoundDesigner1声音文件<BR>SD2　　SoundDesigner2展平文件/数据分*指令；SAS数据库（Windows95/NT、OS/2、Mac）<BR>SDF　　系统数据文件格式—LegacyUnisys（Sperry）格式<BR>SDK　　RolandS—系列软盘映像<BR>SDL　　SmartDraw库文件<BR>SDR　　SmartDraw绘图文件<BR>SDS　　原始Midi抽样转储标准文件<BR>SDT　　SmartDraw模板<BR>SDV　　分号分隔的值文件<BR>SDW　　LotusWordPro图形文件；原始带符号的DWORD（32位）数据<BR>SDX　　由SDX压缩的Midi抽样转储标准文件<BR>SEA　　自解压档案（StuffltforMacintosh或其他软件使用的文件）<BR>SEP　　标签图像文件格式（TIFF）位图<BR>SES　　CoolEditSession文件（普通数据声音编辑器文件）<BR>SF　　IRCAM声音文件格式<BR>SF2　　EmuSoundfontv2.0文件；CreativeLabs的Soundfont2.0Bank文件（SoundBlaster）<BR>SFD　　SoundStage声音文件数据<BR>SFI　　SoundStage声音文件信息<BR>SFR　　SonicFoundrySample资源<BR>SFW　　Seattle电影工程（损坏的JPEG）<BR>SFX　　RAR自解压档案<BR>SGML　　标准通用标签语言<BR>SHB　　CorelShow演示文稿；文档快捷文件<BR>SHG　　热点位图<BR>SHP　　3DStudio（DOS）形状文件；被一些应用程序用于多部分交互三角形模型的3D建模<BR>SHS　　Shellscrap文件；据载用于发送“口令盗窃者”<BR>SHTML　　含有服务器端包括（SSI）的HTML文件<BR>SHW　　CorelShow演示文稿<BR>SIG　　符号文件<BR>SIT　　Mac的StuffIt档案文件<BR>SIZ　　Oracle7配置文件<BR>SKA　　PGP秘钥<BR>SKL　　Macromedia导演者资源文件<BR>SL　　PACT的保存布局扩展名<BR>SLB　　AutodeskSlide库文件格式<BR>SLD　　AutodeskSlide文件格式<BR>SLK　　SymbolicLink（SYLK）电子表格<BR>SM3　　DataCAD标志文件<BR>SMP　　Samplevision格式；AdLibGold抽样文件<BR>SND　　NeXT声音；Mac声音资源；原始的未符号化的PCM数据；AKAIMPC系列抽样文件<BR>SNDR　　Sounder声音文件<BR>SNDT　　Sndtool声音文件<BR>SOU　　SBStudioⅡ声音<BR>SPD　　Speech数据文件<BR>SPL　　ShockwaveFlash对象；DigiTrakker抽样<BR>SPPACK　　SPPack声音抽样<BR>SPRITE　　Acorn的位图格式<BR>SQC　　结构化查询语言（SQR）普通代码文件<BR>SQL　　InFORMixSQL查询；通常被数据库产品用于SQL查询（脚本、文本、二进制）的文件扩展名<BR>SQR　　结构化查询语言（SQR）程序文件<BR>SSDO1　　SAS数据集合（UNIX）<BR>SSD　　SAS数据库（DOS）<BR>SSF　　可用的电子表格文件<BR>ST　　AtariST磁盘映像<BR>STL　　Sterolithography文件<BR>STM　　.shtml的短后缀形式，含有一个服务端包括（SSI）的HTML文件；ScreamTrackerV2音乐模块（MOD）文件<BR>STR　　屏幕保护文件<BR>STY　　VenturaPublisher风格表<BR>SVX　　Amiga8SVX声音；互交换文件格式，8SVX/16SV<BR>SW　　原始带符号字（16位）数据<BR>SWA　　在Macromedia导演文件（MP3文件）中的Shockwave声音文件<BR>SWF　　ShockwaveFlash对象<BR>SWP　　DataCAD交换文件<BR>SYS　　系统文件<BR>SYW　　YamahaSY系列波形文件<BR>
<P>-----T-------<BR>
<P>T64　　Commodore64仿真器磁带映像文件<BR>TAB　　Guitar表文件<BR>TAR　　磁带档案<BR>TAZ　　UNIXgzip/tape档案<BR>TBK　　AsymetrixToolbook交互多媒体文件<BR>TCL　　用TCL/TK语言编写的脚本<BR>TDB　　ThumbsPlus数据库<BR>TDDD　　Imagine和TurboSilver射线跟踪器使用的文件格式<BR>TEX　　正文文件<BR>TGA　　Targa位图<BR>TGZ　　UNIXgzip/tap档案文件<BR>THEME　　Windows95桌面主题文件<BR>THN　　GraphicsWorkShopforWindows速写<BR>TIF，TIFF　　标签图像文件格式（TIFF）位图<BR>TIG　　虎形文件，美国政府用于分发地图<BR>TLB　　OLE类型库<BR>TLE　　两线元素集合（NASA）<BR>TMP　　Windows临时文件<BR>TOC　　Eudora邮箱内容表<BR>TOL　　Kodak照片增强器<BR>TOS　　Atari16/32和32/32计算机操作系统文件<BR>TPL　　CakeWalk声音模板文件；DataCAD模板文件<BR>TPP　　TeleportPro工程<BR>TRK　　Kermit脚本文件<BR>TRM　　终端文件<BR>TRN　　MKS源完整性工程用法日志文件<BR>TTF　　TrueType字体文件<BR>TTK　　CorelCatalystTranslatonToolKit<BR>TWF　　TabWorks文件<BR>TWW　　Tagwrite模板<BR>TX8　　MS-DOS文本<BR>TXB　　Descent/D2编码概要文件<BR>TXT　　ASCⅡ文本格式的声音数据<BR>TXW　　YamahaTX16W波形文件<BR>TZ　　老的压缩格式文件<BR>T2T　　SonateCAD建模软件文件<BR>
<P>-----U-------<BR>
<P>UB　　原始未符号化的字节（8位）数据<BR>UDF　　WindowsNT/2000唯一性数据库文件<BR>UDW　　原始未符号化的双字（32位）数据<BR>ULAW　　美国电话格式（CCITTG.711）声音<BR>ULT　　UltraTracker音乐模块（MOD）文件<BR>UNI　　MikModUniMod格式化文件<BR>URL　　Internet快捷方式文件<BR>USE　　MKS源完整性文件<BR>UU，UUE　　UU编码文件<BR>UW　　原始未符号化字（16位）数据<BR>UWF　　UltraTracker波形文件<BR>
<P>-----V-------<BR>
<P>V8　　Covox8位声音文件<BR>VAP　　加注讲演文件<BR>VBA　　VBase文件<BR>VBP　　MicrosoftVisualBasic工程文件<BR>VBW　　MicrosoftVisualBasic工作区文件<BR>VBX　　MicrosoftVisualBasic用户定制控件<BR>VCE　　NaturalMicroSystems（NMS）未格式化声音文件（由CoolEdit使用）<BR>VCF　　虚拟卡文件（Netscape）；Veri配置文件；为与Sense8的WordToolkit一起使用而定义对象<BR>VCT，VCX　　MicrosoftFoxPro类库<BR>VDA　　Targa位图<BR>VI　　NationalInstrumentsLABView产品的虚拟设备文件<BR>VIFF　　KhorosVisualisation格式<BR>VIR　　NortonAnti-Virus或其他杀毒产品用于标识被病毒感染的文件<BR>VIV　　VivoActivePlayer流视频文件<BR>VIZ　　Division的dVS/dVISE文件<BR>VLB　　CorelVentura库<BR>VMF　　FaxWorks声音文件<BR>VOC　　CreativeLabs的SoundBlaster声音文件<BR>VOX　　用ADPCM编码的对话声音文件；NaturalMicroSystems（NMS）格式化声音文件，TalkingTechnology声音文件<BR>VP　　VenturaPublisher出版物<BR>VQE，VQL　　YamahaSound-VQ定位器文件<BR>VQF　　YamahaSound-VQ文件（可能出现标准）<BR>VRF　　Oracle7配置文件<BR>VRML　　虚拟现实建模语言文件<BR>VSD　　Visio绘画文件（流程图或图解）<BR>VSL　　下载列表文件（GetRight）<BR>VSN　　Windows9x/NTVirusafe版文件，用于保持有关目录中所有信息，当一个文件被访问，其中信息与VSN信息进行比较，以确保它们保持一致<BR>VSS　　Visio模板文件<BR>VST　　Targa位图<BR>VSW　　Visio工作区文件<BR>VXD　　MicrosoftWindows虚拟设备驱动程序<BR>
<P>-----W-------<BR>
<P>W3L　　W3Launch文件<BR>WAB　　MicrosoftOutlook文件<BR>WAD　　包含有视频、玩家水平和其他信息的DOOM游戏的大文件<BR>WAL　　Quake2正文文件<BR>WAV　　Windows波形声形<BR>WB1，WB2　　QuattoProforWindows电子表格<BR>WBK　　MicrosoftWord备份文件<BR>WBL　　ArgoWebLoadⅡ上载文件<BR>WBR　　CrickSoftware的WordBar文件<BR>WBT　　CrickSoftware的WordBar模板<BR>WCM　　WordPerfect宏<BR>WDB　　MicrosoftWorks数据库<BR>WDG　　WarFTP远程守护者文件<BR>WEB　　CorelXARAWeb文档<BR>WFB　　TurtleBeach的WavefontBank（Maui/Rio/Monterey）<BR>WFD　　TurtleBeach的WavefontDrum集合（Maui/Rio/Monterey）<BR>WFM　　VisualdBASEWindows表单<BR>WFN　　在CorelDRAW中使用的符号<BR>WFP　　TurtleBeach的Wavefont程序（Maui/Ri/Monterey）<BR>WGP　　WildBoard游戏数据文件<BR>WID　　Ventura宽度表<BR>WIL　　WinImage文件<BR>WIZ　　MicrosoftWord向导<BR>WK1　　Lotus1-2-3版第1、2版的电子表格<BR>WK3　　Lotus1-2-3版第3版的电子表格<BR>WK4　　Lotus1-2-3版第4版的电子表格<BR>WKS　　Lotus1-2-3电子表格；MicrosoftWorks文档<BR>WLD　　REND386/AVRIL文件<BR>WLF　　ArgoWebLoadⅠ上载文件<BR>WLL　　MicrosoftWord内插器<BR>WMF　　Windows元文件<BR>WOW　　GraveComposer音乐模块（MOD）文件<BR>WP　　WordPerfect文档<BR>WP4　　WordPerfect4文档<BR>WP5　　WordPerfect5文档<BR>WP6　　WordPerfect6文档<BR>WPD　　WordPerfect文档或演示<BR>WPF　　可字处理文档<BR>WPG　　WordPerfect图形<BR>WPS　　MicrosoftWorks文档<BR>WPT　　WordPerfect模板<BR>WPW　　NovellPerfectWorks文档<BR>WQ1　　QuattroPro/DOS电子表格<BR>WQ2　　QuattroPro/DOS第5版电子表格<BR>WR1　　LotusSymphony<BR>WRG　　ReGet文档<BR>WR1　　书写器文档<BR>WRK　　Cakewalk音乐声音工程文件<BR>WRL　　虚拟现实模型<BR>WRZ　　VRML文件对象<BR>WS1　　WordStarforWindows1文档<BR>WS2　　WordStarforWindows2文档<BR>WS3　　WordStarforWindows3文档<BR>WS4　　WordStarforWindows4文档<BR>WS5　　WordStarforWindows5文档<BR>WS6　　WordStarforWindows6文档<BR>WS7　　WordStarforWindows7文档<BR>WSD　　WordStar2000文档<BR>WVL　　Wavelet压缩位图<BR>WWL　　MicrosoftWord内插器文件<BR>
<P>-----X-------<BR>
<P>X　　AVS图像格式<BR>XAR　　CorelXARA绘画<BR>XBM　　MIME“xbitmap”图像<BR>XI　　ScreamTracker设备抽样文件<BR>XIF　　Wang映像文件（Windows95带有的文件）<BR>XLA　　MicrosoftExcel内插器<BR>XLB　　MicrosoftExcel工具条<BR>XLC　　MicrosoftExcel图表<BR>XLD　　MicrosoftExcel对话框<BR>XLK　　MicrosoftExcel备份<BR>XLL　　MicrosoftExcel内插器文件<BR>XLM　　MicrosoftExcel宏<BR>XLS　　MicrosoftExcel工作单<BR>XLT　　MicrosoftExcel模板<BR>XLV　　MicrosoftExcelVBA模块<BR>XLW　　MicrosoftExcel工作簿/工作区<BR>XM　　FastTracker2，DigitalTracker音乐模块（MOD）文件<BR>XNK　　MicrosoftExchange快捷方式文件<BR>XPM　　X位图格式<BR>XR1　　EpicMegaGamesXargon数据文件<BR>XTP　　Xtree数据文件<BR>XWD　　XWindows转储格式<BR>XWF　　YamahaXGWorks文件（MIDI序列）<BR>XY3　　XYWriteⅢ文档<BR>XY4　　XYWriteⅣ文档<BR>XYP　　XYWriteⅢPlus文档<BR>XYW　　XYWriteforWindows4.0文档<BR>X16　　宏媒体扩展（程序扩展），16位<BR>X32　　宏媒体扩展（程序扩展），32位<BR>
<P>-----Y-------<BR>
<P>YAL　　Arts&amp;Letters剪贴艺术库<BR>YBK　　MicrosoftEncarta年鉴<BR>
<P>-----Z-------<BR>
<P>Z　　UNIXgzip文件<BR>ZAP　　Windows软件安装配置文件<BR>ZIP　　Zip文件<BR>ZOO　　早前版本的压缩文件<BR>
<P>-----其他-------<BR>
<P>000-999　　用于为老版本（或备份）文件编号（比如：被安装程序改变的CONFIG.SYS文件）；又可用于为小范围的PC应用程序的多个用户相关数据文件编号<BR>12M　　Lotus1-2-397SmartMaster文件<BR>123　　Lotus1-2-397文件<BR>2D　　VersaCAD的2维绘画文件<BR>2GR，3GR　　在Windows之下的VGA图形驱动程序/配置文件<BR>3D　　VersaCAD的3维绘画文件<BR>3DM　　3DNURBS建模器，Rhino<BR>3DS　　3DStudio（DOS下）格式文件<BR>386　　在386或更高级处理器上使用的文件<BR>4GE　　InFORMix4GL编译后代码<BR>4GL　　InFORMix4GL源代码<BR>669　　Composer669；UNIXComposer音乐模型文件；669磁道模块<BR>#01　　及更高的号为计算机演示而扫描的一系列电影的图片文件编号方法<BR>$$$　　OS/2用来跟踪档案文件<BR>@@@　　用于安装过程中的屏幕文件和用于MicrosoftCodeviewforC这样的应用程序的指导文件。</P>]]></description>
</item><item>
<title><![CDATA[细说Java之util类 【转载】]]></title>
<link>http://blogger.org.cn/blog/more.asp?name=chasetang&amp;id=11532</link>
<author>chasetang</author>
<pubDate>2006/2/6 12:05:09</pubDate>
<description><![CDATA[
<TABLE cellSpacing=1 cellPadding=4 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top>
<DIV class=subhead><B><FONT size=4>细说Java之util类</FONT></B></DIV></TD></TR>
<TR>
<TD class=content vAlign=top>
<TABLE width=200 align=right border=0>
<TBODY>
<TR>
<TD><FONT size=4></FONT></TD></TR></TBODY></TABLE>
<P><FONT size=4>　　线性表，链表，哈希表是常用</FONT>的数据结构，在进行Java开发时，JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述，向读者阐述各个类的作用以及如何正确使用这些类。 <BR><BR>Collection <BR>├List <BR>│├LinkedList <BR>│├ArrayList <BR>│└Vector <BR>│　└Stack <BR>└Set <BR>Map <BR>├Hashtable <BR>├HashMap <BR>└WeakHashMap <BR><BR><FONT color=#0011ff>Collection接口</FONT> <BR>　　Collection是最基本的集合接口，一个Collection代表一组Object，即Collection的元素（Elements）。一些Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类，Java SDK提供的类都是继承自Collection的“子接口”如List和Set。 <BR>　　所有实现Collection接口的类都必须提供两个标准的构造函数：无参数的构造函数用于创建一个空的Collection，有一个Collection参数的构造函数用于创建一个新的Collection，这个新的Collection与传入的Collection有相同的元素。后一个构造函数允许用户复制一个Collection。 <BR>　　如何遍历Collection中的每一个元素？不论Collection的实际类型如何，它都支持一个iterator()的方法，该方法返回一个迭代子，使用该迭代子即可逐一访问Collection中每一个元素。典型的用法如下： <BR>　　　　Iterator it = collection.iterator(); // 获得一个迭代子 <BR>　　　　while(it.hasNext()) { <BR>　　　　　　Object obj = it.next(); // 得到下一个元素 <BR>　　　　} <BR>　　由Collection接口派生的两个接口是List和Set。 <BR><BR><FONT color=#0000ff>List接口</FONT> <BR>　　List是有序的Collection，使用此接口能够精确的控制每个元素插入的位置。用户能够使用索引（元素在List中的位置，类似于数组下标）来访问List中的元素，这类似于Java的数组。 <BR>和下面要提到的Set不同，List允许有相同的元素。 <BR>　　除了具有Collection接口必备的iterator()方法外，List还提供一个listIterator()方法，返回一个ListIterator接口，和标准的Iterator接口相比，ListIterator多了一些add()之类的方法，允许添加，删除，设定元素，还能向前或向后遍历。 <BR>　　实现List接口的常用类有LinkedList，ArrayList，Vector和Stack。 <BR><BR><FONT color=#0000ff>LinkedList类</FONT> <BR>　　LinkedList实现了List接口，允许null元素。此外LinkedList提供额外的get，remove，insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈（stack），队列（queue）或双向队列（deque）。 <BR>　　注意LinkedList没有同步方法。如果多个线程同时访问一个List，则必须自己实现访问同步。一种解决方法是在创建List时构造一个同步的List： <BR>　　　　List list = Collections.synchronizedList(new LinkedList(...)); <BR><BR><FONT color=#0011ff>ArrayList类</FONT> <BR>　　ArrayList实现了可变大小的数组。它允许所有元素，包括null。ArrayList没有同步。 <BR>size，isEmpty，get，set方法运行时间为常数。但是add方法开销为分摊的常数，添加n个元素需要O(n)的时间。其他的方法运行时间为线性。 <BR>　　每个ArrayList实例都有一个容量（Capacity），即用于存储元素的数组的大小。这个容量可随着不断添加新元素而自动增加，但是增长算法并没有定义。当需要插入大量元素时，在插入前可以调用ensureCapacity方法来增加ArrayList的容量以提高插入效率。 <BR>　　和LinkedList一样，ArrayList也是非同步的（unsynchronized）。 <BR><BR><FONT color=#0800ff>Vector类</FONT> <BR>　　Vector非常类似ArrayList，但是Vector是同步的。由Vector创建的Iterator，虽然和ArrayList创建的Iterator是同一接口，但是，因为Vector是同步的，当一个Iterator被创建而且正在被使用，另一个线程改变了Vector的状态（例如，添加或删除了一些元素），这时调用Iterator的方法时将抛出ConcurrentModificationException，因此必须捕获该异常。 <BR><BR><FONT color=#0019ff>Stack 类</FONT> <BR>　　Stack继承自Vector，实现一个后进先出的堆栈。Stack提供5个额外的方法使得Vector得以被当作堆栈使用。基本的push和pop方法，还有peek方法得到栈顶的元素，empty方法测试堆栈是否为空，search方法检测一个元素在堆栈中的位置。Stack刚创建后是空栈。 <BR><BR><FONT color=#0008ff>Set接口</FONT> <BR>　　Set是一种不包含重复的元素的Collection，即任意的两个元素e1和e2都有e1.equals(e2)=false，Set最多有一个null元素。 <BR>　　很明显，Set的构造函数有一个约束条件，传入的Collection参数不能包含重复的元素。 <BR>　　请注意：必须小心操作可变对象（Mutable Object）。如果一个Set中的可变元素改变了自身状态导致Object.equals(Object)=true将导致一些问题。 <BR><BR><FONT color=#0011ff>Map接口</FONT> <BR>　　请注意，Map没有继承Collection接口，Map提供key到value的映射。一个Map中不能包含相同的key，每个key只能映射一个value。Map接口提供3种集合的视图，Map的内容可以被当作一组key集合，一组value集合，或者一组key-value映射。 <BR><BR><FONT color=#0011ff>Hashtable类</FONT>　　Hashtable继承Map接口，实现一个key-value映射的哈希表。任何非空（non-null）的对象都可作为key或者value。 <BR>　　添加数据使用put(key, value)，取出数据使用get(key)，这两个基本操作的时间开销为常数。 <BR>Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大，这会影响像get和put这样的操作。 <BR>使用Hashtable的简单示例如下，将1，2，3放到Hashtable中，他们的key分别是”one”，”two”，”three”： <BR>　　　　Hashtable numbers = new Hashtable(); <BR>　　　　numbers.put(“one”, new Integer(1)); <BR>　　　　numbers.put(“two”, new Integer(2)); <BR>　　　　numbers.put(“three”, new Integer(3)); <BR>　　要取出一个数，比如2，用相应的key： <BR>　　　　Integer n = (Integer)numbers.get(“two”); <BR>　　　　System.out.println(“two = ” + n); <BR>　　由于作为key的对象将通过计算其散列函数来确定与之对应的value的位置，因此任何作为key的对象都必须实现hashCode和equals方法。hashCode和equals方法继承自根类Object，如果你用自定义的类当作key的话，要相当小心，按照散列函数的定义，如果两个对象相同，即obj1.equals(obj2)=true，则它们的hashCode必须相同，但如果两个对象不同，则它们的hashCode不一定不同，如果两个不同对象的hashCode相同，这种现象称为冲突，冲突会导致操作哈希表的时间开销增大，所以尽量定义好的hashCode()方法，能加快哈希表的操作。 <BR>　　如果相同的对象有不同的hashCode，对哈希表的操作会出现意想不到的结果（期待的get方法返回null），要避免这种问题，只需要牢记一条：要同时复写equals方法和hashCode方法，而不要只写其中一个。 <BR>　　Hashtable是同步的。 <BR><BR><FONT color=#0019ff>HashMap类</FONT> <BR>　　HashMap和Hashtable类似，不同之处在于HashMap是非同步的，并且允许null，即null value和null key。，但是将HashMap视为Collection时（values()方法可返回Collection），其迭代子操作时间开销和HashMap的容量成比例。因此，如果迭代操作的性能相当重要的话，不要将HashMap的初始化容量设得过高，或者load factor过低。 <BR><BR><FONT color=#0022ff>WeakHashMap类</FONT> <BR>　　WeakHashMap是一种改进的HashMap，它对key实行“弱引用”，如果一个key不再被外部所引用，那么该key可以被GC回收。 <BR><BR><FONT color=#ff0000>总结</FONT> <BR>　　如果涉及到堆栈，队列等操作，应该考虑用List，对于需要快速插入，删除元素，应该使用LinkedList，如果需要快速随机访问元素，应该使用ArrayList。 <BR>　　如果程序在单线程环境中，或者访问仅仅在一个线程中进行，考虑非同步的类，其效率较高，如果多个线程可能同时操作一个类，应该使用同步的类。 <BR>　　要特别注意对哈希表的操作，作为key的对象要正确复写equals和hashCode方法。 <BR>　　尽量返回接口而非实际的类型，如返回List而非ArrayList，这样如果以后需要将ArrayList换成LinkedList时，客户端代码不用改变。这就是针对抽象编程。 <BR></P></TD></TR></TBODY></TABLE>]]></description>
</item>
</channel>
</rss>