博文

CTime COleDateTime的常用操作和比较(2006-11-27 23:00:00)

摘要:  CTime类 1) 获取当前时间。
CTime time;
time = CTime::GetCurrentTime();
2) 获取时间元素。
int year = time.GetYear() ;
int month = time.GetMonth();
int day = time.GetDay();
int hour = time.GetHour();
int minute = time.GetMinute();
int second = time.GetSecond();
int DayOfWeek = time.GetDayOfWeek() ;
3) 获取时间间隔。
CTimeSpan timespan(0,0,1,0); // days,hours,minutes,seconds
timespan = CTime::GetCurrentTime() - time;
4) 把时间转换为字符串。
CString sDate,sTime,sElapsed Time ;
sDate = time.Format("%m/%d/%y"); //ex: 12/10/98
sTime = time.Format("%H:%M:%S"); //ex: 9:12:02
sElapsed Time = timespan.Format("%D:%H:%M:%S");
// %D is total elapsed days
要想知道更多的时间格式,参见M F C文档中的strftime。
使用COleDateTime类
1) 获得一年中的某一天。
COleDate Time datetime;
datetime = COleDateTime::GetCurrentTime();
int DayOfYear = datetime.GetDayOfYear();
2) 从文本串中读取时间。
COleDate Time datetime;
datetime.ParseDateTime("12:12:23 27 January 93");
说明。
CTime和COle......

阅读全文(15168) | 评论:3

CString,string,char*的综合比较(一)(2006-11-21 18:40:00)

摘要:概述 string和CString均是字符串模板类,string为标准模板类(STL)定义的字符串类,已经纳入C++标准之中; CString(typedef CStringT<TCHAR, StrTraitMFC<TCHAR>> CString)为Visual C++中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,主要数据类型有char(应用于ANSI),wchar_t(unicode),TCHAR(ANSI与unicode均可); char*为C编程中最常用的字符串指针,一般以’\0’为结束标志; (二)  构造 ²        string是方便的,可以从几乎所有的字符串构造而来,包括CString和char*; ²        CString次之,可以从基本的一些字符串变量构造而来,包括char*等; ²        char*没有构造函数,仅可以赋值; ²        举例: char* psz = “joise”; CString cstr( psz ); string str( cstr ); (三)  运算符重载 a)       operator= ²        string是最方便的,几乎可以直接用所有的字符串赋值,包括CString和char*; ²        CString次之,可以直接用些基本的字符串赋值,包括char*等; ²        char*只能由指针赋值,并且是极危险的操作,建议使用st......

阅读全文(1456) | 评论:0

第一个win32程序的学习笔记(2006-11-18 12:36:00)

摘要:#include <windows.h>
#include <stdio.h> LRESULT CALLBACK WinSunProc(
  HWND hwnd,      // handle to window
  UINT uMsg,      // message identifier
  WPARAM wParam,  // first message parameter
  LPARAM lParam   // second message parameter
);
//wParam lParam 为消息的附加信息,均为整型。例如按下A键,附加信息为A的ASCII码
//主函数
int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance当前实例句柄
  HINSTANCE hPrevInstance,  // handle to previous instance前一个实例句柄
  LPSTR lpCmdLine,          // command line命令行参数
  int nCmdShow              // show state显示状态
)
{ /*------------设计窗口--------------------*/
 WNDCLASS wndcls;//创建窗口类对象
 wndcls.cbClsExtra=0;//类附加字节数
 wndcls.cbWndExtra=0;//窗口......

阅读全文(1879) | 评论:0

如何在SQL server生成脚本语言,并保留原表的内容?(2006-11-14 16:31:00)

摘要:在本机上: 1、首先在"企业管理器"中点击所要生成脚本的数据库文件,点击右键选择"所有任务"然后生成脚本,并保存成.sql文件。 2、在"查询管理器"中在所要生成脚本的数据库下创建存储过程: CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int

set nocount on
set @objectId=object_id(@tablename)

if @objectId is null -- 判断对象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))

if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end

if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
begin
print 'The object is not table'
return
end

select @ident=status&0x80 from syscolumns where id=@objectid and status&0x8......

阅读全文(4141) | 评论:0

给在IT行业的同行们——谈谈IT人的发展(2006-11-11 12:47:00)

摘要:一个人如果能确定他喜欢的行业,他一生都会非常幸福。相反,则往往痛苦,也许竟然会因此成为一个哲学家也说不定。

    中国的贫穷决定了我们当中的大多数人不能根据自己的爱好来选择职业,而只是因为生活所迫,或者世风所迫——当这个社会只崇尚有钱者有权者的时候,当周围的人不断地向我们灌输这种价值观的时候,我们除非是圣人,要不然都会为之所动的,这就是众所周知的三人成虎,或者鲁迅先生说的人言可畏。

    所以,中国IT行业的从业者当中,有很大一部分做着自己不喜欢的工作。做着不喜欢的工作,倘若这种工作在另外一个方面还有补偿,例如工资不错,或者地位很高。那么即使不喜欢也会变得喜欢的。但是,倘若这种工作不能出现这种补偿,则往往意味着一种巨大的失落感。

    所以,IT人抱怨,起得比鸡早,干活儿比驴累。世人也跟着起哄,把IT人和妓女相提并论。主要是说明两者都是吃青春饭。而现在当IT人的工资降下来之后,IT人似乎练妓女都不如了。这种情况下,IT人的失望痛苦可想而知。

    到底IT人应该怎么发展?

    第一, 做管理。这个似乎到处都在这么说。学而优则仕,这不只是中国人的习惯。这有合理性。原因很简单。因为,如果你是行业中的优秀者,那么,当年轻人走进这个行业的时候,你可以给于他很优秀的指点,可以很快让他们从你的终点前进,相当于用你的肩膀支撑起他们。而幸运的他们,就成了站在巨人肩膀上的牛顿——如果他们竟然很幸运的话。

    第二, 继续做技术。一个人倘若真的喜欢技术,没有年龄限制。技术可以做到老。但是技术不是重复劳动,把技术理解成单纯的编码,把编码理解成单纯的体力劳动,都是错误的。我和一个日本老头共事过,他很喜欢技术,他当时已经是富翁,然而依旧在编程。用程序实现自己的思想,这是一项非常有乐趣的事情。另外,网易的主人丁磊也可以说明问题,他早已经身价多少万了,恐怕也很老了吧,但是他现在依旧在做技术。那些以为老了不能做技术的人,需要好好研究研究什么叫技......

阅读全文(1646) | 评论:0

最近IT行业行业发展(2006-11-11 12:45:00)

摘要:二十一世纪进入信息时代,席卷全球的信息科技给人类的生产和生活方式带来了深刻的变革,信息产业已成为推动国家经济发展的主导产业之一。目前,中国软件产业还处于成长期,其市场潜力还远远没有挖掘出来。2005年中国软件市场总体规模将达到907亿元,增长率达到33%。2010年左右,中国软件产业将步入成熟期。IT产业作为知识密集、技术密集的产业,其迅猛发展的关键是有一大批从事IT技术创新的人才。一定数量、结构和质量的IT人才队伍是IT产业发展的支撑,一个国家的IT人力资源储备、IT人才培养及使用状况决定着该国IT产业发展的水平和潜力。也可以说,IT产业的竞争就是人才的竞争,高水平的IT人才培养和队伍建设是走向IT产业大国和强国的前提条件。美国、印度和爱尔兰的信息产业发展就是最好的例证。

就中国来说,IT产业在过去5年经历了年28%的增长速度,是同期国家GDP增长速度的三倍,对GDP增长的拉动作用已进一步增强,对我国国民经济增长的贡献率不断提高。2003年,我国IT全行业实现销售收入1。88万亿元,完成工业增加值4000亿元,利税总额1000亿元,IT产品出口额1421亿美元。软件与系统集成销售收入1600亿元,软件出口额20亿美元,创历史最好水平。IT产业占全国工业比重达到12。3%,占GDP的9。1%,成为第一大产业。

而未来一段时期,我国将会利用国际产业转移的重大机遇,聚集各种资源,突破核心技术制约,在集成电路、软件、计算机与信息处理、现代移动通信、信息安全、信息服务和系统集成等技术领域加强创新,促进IT产品更新换代,推动我国由IT大国向IT强国转变,并进而推动国民经济信息化进程,以信息化带动工业化,走出一条新型工业化道路。

所以,无论是从大的方向讲,还是从小的方面讲,培养和储备高素质的IT人才都显得非常重要。



五部委报告:IT人才需求每年增加100万



中国计算机报讯 教育部、信息产业部、国防科工委、交通部、卫生部日前联合发布数控技术应用、计算机应用与软件技术、汽车运用与维修、护理等四个专业领域的人才需求状况。

计算机人才:需求每年增加100万!

据介绍,目前我国的计算机应用水平还处于初级阶段,现有计算机和信息技术设施的功能没有得到......

阅读全文(1919) | 评论:0

asp购物车前台代码(原创)(2006-11-04 14:54:00)

摘要:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
dim bookid,booknum,num,shopid,conn,connstr,rs,sql
connstr="driver={microsoft access driver (*.mdb)}; dbq="&server.MapPath("book.mdb")
set conn=server.CreateObject("adodb.connection")
conn.open connstr
set rs=server.CreateObject("adodb.recordset")
sql="select * from orde"
rs.open sql,conn,1,3
if session("userid")=""then
   response.Write("请先登录该系统,谢谢合作!")
   response.End()
end if if request.QueryString("mode")="add" then
  index=0
  shopid=request.QueryString("itemo")
  for i=1 to rs.recordcount 
       if rs("bookid")=shopid then
       index=i
    exit for
    end if
  rs.movenext() 
  next
  if index=0 then
     rs.addnew()
     rs("bookid")=shopid
  rs("user......

阅读全文(7256) | 评论:0

如何遍历文件夹中的所有文件?(2006-10-22 14:48:00)

摘要:如何遍历文件夹中的所有文件?
void CFileTreeDlg::BrowseFile(int CallNum, CString strFile)
{
   CallNum++;
   CFileFind ff;
   CString szDir = strFile;
 
   if(szDir.Right(1) != "\\")//字符串右边第一个字符为"\\"
   szDir += "\\";
 
   szDir += "*.*";
 
   BOOL res = ff.FindFile(szDir);//确认是否存在
   while(res)
   { res = ff.FindNextFile();
     if(ff.IsDirectory() && !ff.IsDots())
     {
 //如果是一个子目录,用递归继续往深一层找
 CString strPath = ff.GetFilePath();
 CString strTitle = ff.GetFileTitle();
 int i =0;
 switch(CallNum)
 {
    case 1:
            strHTFir = m_FileTree.InsertItem(strTitle,0,0,NULL);          break;
    case 2:
   ......

阅读全文(2244) | 评论:0

如何使用“浏览文件夹”选择对话框? (2006-10-22 14:47:00)

摘要:有时我们需要获得某个文件夹的路径,而不是文件的路径,这时需要用API函数SHBrowseForFolder来实 现。 函数原型为: LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi); 其中LPBROWSEINFO为BROWSEINFO结构的指针。 BROWSEINFO结构如下: typedef struct _browseinfo { HWND hwndOwner;
LPCITEMIDLIST pidlRoot;
LPSTR pszDisplayName;
LPCSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage; } BROWSEINFO; 调用例子如下:
void CTestDlg::OnBtndlg()
{
 CString sFolderPath;//用来存储路径
 char szPath[MAX_PATH]={0};//用来得到,你选择的活页夹路径,相当于提供一个缓冲区
    BROWSEINFO m_bi;
 //初始化入口参数bi开始
BIF_RETURNONLYFSDIRS,只有用户选择的是文件夹时“确定”按钮才有效。
BIF_STATUSTEXT 创建一个状态窗口,你可以设置其文本
m_bi.ulFlags=80;实现如图:在文件夹浏览对话框上加一个新建文件夹按钮。
    m_bi.ulFlags = BIF_RETURNONLYFSDIRS  | BIF_STATUSTEXT;
    m_bi.hwndOwner = GetSafeHwnd(); //得到父窗口Handle值
    m_bi.pidlRoot = NULL;
    m_bi.lpszTitle ="网上邻居";     //设置标题
 &nbs......

阅读全文(5770) | 评论:0

debug和release的区别(2006-10-19 18:48:00)

摘要:Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MFC动态库,则需要MFC42D.DLL等库支持,而Release版本需要MFC42.DLL支持。Release  Build不对源代码进行调试,不考虑MFC的诊断宏,使用的是MFC  Release库,编译十对应用程序的速度进行优化,而Debug  Build则正好相反,它允许对源代码进行调试,可以定义和使用MFC的诊断宏,采用MFC  Debug库,对速度没有优化。    
 
 
一、Debug  和  Release  编译方式的本质区别  
 
Debug  通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release  称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。  
Debug  和  Release  的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd  /Fo,但区别并不重要,通常他们也不会引起  Release  版错误,在此不讨论)  
 
Debug  版本:  
/MDd  /MLd  或  /MTd  使用  Debug  runtime  library(调试版本的运行时刻函数库)  
/Od  关闭优化开关  
/D  "_DEBUG"  相当于  #define  _DEBUG,打开编译调试代码开关(主要针对  
assert函数)  
/ZI  创建  Edit  ......

阅读全文(1292) | 评论:0