barriers / 阅读 / 详情

c语言可以连接access数据库??

2023-07-27 04:27:52
共1条回复
苏州马小云
#import "C:program filescommon filessystemadomsado15.dll " no_namespace rename( "EOF ", "adoEOF ")
//#import "c:program filescommon filessystemadomsado15.dll " rename ( "EOF ", "adoEOF ") no_namespace
#define CREATEiNSTANCE(sp,riid) { HRESULT _hr =sp .CreateInstance( __uuidof( riid ) );
if (FAILED(_hr)) _com_issue_error(_hr); }

#define RsITEM(rs,x) ((rs-> Fields-> Item[_variant_t(x)]-> Value))

class CHmbAdoDB
{
public:
BOOL m_bOpen;
_ConnectionPtr m_DbConn;
CString m_ErrMsg;
CString m_SQLState;
long mSqlCode;
public:
void Cancel();
BOOL IsOpen();
void RollbackTrans();
void CommitTrans();
long BeginTrans();
void Close();
BOOL Open(LPCSTR lpszConnect);
BOOL Execute(LPCTSTR lpSQL);
void ProviderError();

CHmbAdoDB()
{
}
virtual ~CHmbAdoDB()
{
}

};

class CHmbAdoDBRs : public CObject
{
public:
_RecordsetPtr m_Rs;
public:
CHmbAdoDBRs();
virtual ~CHmbAdoDBRs();
BOOL Open( CHmbAdoDB *pDB, LPCSTR szSource,long option=-1);
void Close();
void GetRs(_variant_t x,_bstr_t &ret);
void GetRs(_variant_t x,CString &ret);
BOOL IsEOF();
BOOL IsOpen();
BOOL MoveNext();
BOOL MovePrev();
BOOL MoveFirst();
BOOL MoveLast();
};

#endif // !defined(AFX_RfidAdoDB_H__7C539954_1C62_47B6_AB6E_1A5BB73A67E5__INCLUDED_) truct InitOle
{
InitOle() { ::CoInitialize(NULL); }
~InitOle() { ::CoUninitialize(); }
} _init_InitOle_;

long mSqlCode;
BOOL CHmbAdoDB::Open(LPCSTR lpszConnect)
{
try
{
CREATEiNSTANCE(m_DbConn,Connection);
m_DbConn-> Open(lpszConnect, " ", " ", adModeUnknown );
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}
return TRUE;
}

void CHmbAdoDB::Close()
{
if( IsOpen() )
{
m_DbConn-> Close();
}
}

long CHmbAdoDB::BeginTrans()
{
return m_DbConn-> BeginTrans();
}

void CHmbAdoDB::CommitTrans()
{
m_DbConn-> CommitTrans();
}

void CHmbAdoDB::RollbackTrans()
{
m_DbConn-> RollbackTrans();
}

void CHmbAdoDB::Cancel()
{
m_DbConn-> Cancel();
}

BOOL CHmbAdoDB::IsOpen()
{
return ( (m_DbConn-> GetState() != 0) ? TRUE : FALSE );
}

BOOL CHmbAdoDB::Execute(LPCTSTR lpSQL)
{
if (!IsOpen())
{
AfxMessageBox( "Network error, Database do not open. ");
return FALSE;
}

CString strSQL(lpSQL);
strSQL.TrimLeft();
strSQL.TrimRight();

try
{
m_DbConn-> Execute(_bstr_t(strSQL), NULL, adExecuteNoRecords);
}
catch( _com_error &e)
{
return FALSE;
}
catch(...)
{
return FALSE;
}

return TRUE;
}

void CHmbAdoDB::ProviderError()
{
// Print Provider Errors from Connection object.
// pErr is a record object in the Connection "s Error collection.
ErrorPtr pErr = NULL;

if( (m_DbConn-> Errors-> Count) > 0)
{
long nCount = m_DbConn-> Errors-> Count;

// Collection ranges from 0 to nCount -1.
for(long i = 0; i < nCount; i++)
{
pErr = m_DbConn-> Errors-> GetItem(i);
mSqlCode = pErr-> NativeError;
m_ErrMsg.Format( "SQLCODE : %ld %s ",mSqlCode, LPCTSTR(pErr-> Description));
m_SQLState.Format( "%s ",(char*)pErr-> SQLState);
printf( "%s // %s ",m_SQLState,m_ErrMsg);
}
}
m_DbConn-> Errors-> Clear();
}

CHmbAdoDBRs::CHmbAdoDBRs( )
{
}

CHmbAdoDBRs::~CHmbAdoDBRs()
{

}

BOOL CHmbAdoDBRs::Open( CHmbAdoDB *pDB, LPCSTR szSource,long option )
{
CString strSQL;
strSQL = CString(szSource);
strSQL.TrimLeft();
strSQL.TrimRight();
_variant_t vRecsAffected(0L);
// CREATEiNSTANCE( m_Rs,Recordset) ;
// m_Rs-> PutRefActiveConnection( pDB-> m_DbConn );
try
{
m_Rs = pDB-> m_DbConn-> Execute(_bstr_t(strSQL),
&vRecsAffected,
adOptionUnspecified);
m_Rs-> AddRef();
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockBatchOptimistic, adOptionUnspecified);
// m_Rs-> Open(szSource, vtMissing, adOpenKeyset, adLockReadOnly, option);
// m_Rs-> Open(szSource,pDB-> m_DbConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic, adCmdText);

}
catch( _com_error &e)
{
//ErrorMessage();
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
catch(...)
{
m_Rs-> Close();
m_Rs-> Release();
return FALSE;
}
return TRUE;
}

void CHmbAdoDBRs::Close()
{
m_Rs-> Close();
m_Rs-> Release();
}
void CHmbAdoDBRs::GetRs(_variant_t x,_bstr_t &ret)
{
ret = (m_Rs-> Fields-> Item[x]-> Value);
}

void CHmbAdoDBRs::GetRs(_variant_t x,CString &ret)
{
_bstr_t retVal;

try{
retVal = (m_Rs-> Fields-> Item[x]-> Value);
}
catch(...){

ret = " ";
return;
}

ret = CString((char*) retVal);
}

BOOL CHmbAdoDBRs::IsEOF()
{
return m_Rs-> adoEOF;
}

BOOL CHmbAdoDBRs::IsOpen()
{
return ( (m_Rs-> GetState() != 0) ? TRUE : FALSE );
}

BOOL CHmbAdoDBRs::MoveNext() { return (FAILED(m_Rs-> MoveNext()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MovePrev() { return (FAILED(m_Rs-> MovePrevious()) ? FALSE : TRUE ); }
BOOL CHmbAdoDBRs::MoveFirst() { return (FAILED(m_Rs-> MoveFirst()) ? FALSE : TRUE ) ; }
BOOL CHmbAdoDBRs::MoveLast() { return (FAILED(m_Rs-> MoveLast()) ? FALSE : TRUE ) ; }
以上为一个ADO的封装类.
c语言如何连接access数据库
现在一般是用ADO的方法.

相关推荐

CString类的成员函数TrimRight和TrimLeft是什么功能

假设有CString a和ba.TrimLeft(b)的作用:从a的第一字符开始往后遍历,如果发现某个字符出现在b中,就从a删除,直到某个字符没有在b中出现或者遇到a的结尾。###a trimleft # =a###a## trimleft # = a##TrimRight就是从a的最后一个字符开始往前遍历,规则一样Trim就是两边遍历,也就是分别执行一次TrimLeft()和TrimRight()###a## trim # = a
2023-07-25 18:08:331

mfc编程中trimleft是什么函数

针对windows平台的CString::TrimLeft(LPCTSTR lpszTargets)函数,在unix平台下自己增加该功能函数,下面是微软提供的TrimLeft函数源码:C/C++ code void CString::TrimLeft(LPCTSTR lpszTargets){ // if we"re not trimming anything, we"re not doing any work if (SafeStrlen(lpszTargets) == 0) return; CopyBeforeWrite(); LPCTSTR lpsz = m_pchData; while (*lpsz != "") { if (_tcschr(lpszTargets, *lpsz) == NULL) break; lpsz = _tcsinc(lpsz); } if (lpsz != m_pchData) { // fix up data and length int nDataLength = GetData()->nDataLength - (lpsz - m_pchData); memmove(m_pchData, lpsz, (nDataLength+1)*sizeof(TCHAR)); GetData()->nDataLength = nDataLength; }}
2023-07-25 18:08:401

CString的TrimLeft怎么用的

假设有CString a和ba.TrimLeft(b)的作用:从a的第一字符开始往后遍历,如果发现某个字符出现在b中,就从a删除,直到某个字符没有在b中出现或者遇到a的结尾。###a trimleft # =a###a## trimleft # = a##TrimRight就是从a的最后一个字符开始往前遍历,规则一样Trim就是两边遍历,也就是分别执行一次TrimLeft()和TrimRight()###a## trim # = a
2023-07-25 18:08:471

node.js怎么去除字符串空格

忘了U0001f61cU0001f61c
2023-07-25 18:08:575

js去掉字符串前后空格的五种方法

第一种:循环检查替换 [javascript] //供使用者调用 function trim(s){ return trimRight(trimLeft(s)); } //去掉左边的空白 function trimLeft(s){ if(s == null) { return ""; } var whitespace = new String(" "); var str = new String(s); if (whitespace.indexOf(str.charAt(0)) != -1) { var j=0, i = str.length; while (j < i && whitespace.indexOf(str.charAt(j)) != -1){ j++; } str = str.substring(j, i); } return str; } //去掉右边的空白 www.2cto.com function trimRight(s){ if(s == null) return ""; var whitespace = new String(" "); var str = new String(s); if (whitespace.indexOf(str.charAt(str.length-1)) != -1){ var i = str.length - 1; while (i >= 0 && whitespace.indexOf(str.charAt(i)) != -1){ i--; } str = str.substring(0, i+1); } return str; } 第二种:正则替换 [javascript] <SCRIPT LANGUAGE=" Java Script"> </SCRIPT> 第三种:使用jquery [javascript] $.trim(str) jquery内部实现为: [javascript] function trim(str){ return str.replace(/^(s|u00A0)+/,"").replace(/(s|u00A0)+$/,""); } 第四种:使用motools [javascript] function trim(str){ return str.replace(/^(s|xA0)+|(s|xA0)+$/g, ""); } 第五种:裁剪字符串方式 [javascript] function trim(str){ str = str.replace(/^(s|u00A0)+/,""); for(var i=str.length-1; i>=0; i--){ if(/S/.test(str.charAt(i))){ str = str.substring(0, i+1); break; } } return str; } 经过测试第五种方法在处理长字符串时效率最高。
2023-07-25 18:09:121

如何判断CString只有空格

用TrimRight();TrimLeft();
2023-07-25 18:09:284

测试的时候点击“确定”按钮后直接退出了,没执行函数,哪位大虾来帮忙解决一下呀?

给对话框的“确定”按钮添加了消息映射,但测试的时候点击“确定”按钮后直接退出了,没执行OnBnClickedOk() 函数,这是为什么?哪位大虾来帮忙解决一下呀?void CSearchDlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 CIngformation iSet; UpdateData(); m_strSearch.TrimLeft(); if (m_strSearch.IsEmpty()) { MessageBox(_T("要查询的学号不能为空!")); return; } if (iSet.IsOpen()) iSet.Close(); iSet.m_strFilter.Format(_T("PID="%s""), m_strSearch); iSet.m_strSort = "ID"; iSet.Open(); if (!iSet.IsEOF()) UpdateData(FALSE);//改 else CDialogEx::OnOK(); MessageBox(_T("没有查到你要找的信息!"));}
2023-07-25 18:09:381

c++中TrimLeft(),IsEmpty(),GetDlgItem(),InsertColumn 是什么意思

执行不同的方法哦不,函数。呵呵
2023-07-25 18:09:452

vb常用函数

没有常用的关键看你的应用一个应用可能会用到上百个函数的
2023-07-25 18:10:084

两个指针相减是什么意思或者说是要实现什么功能?

指针相减还是相加得到的实际上就是int型数据。至于为什么要相减相加,得到的int数据有什么用要根据程序上下文来判断
2023-07-25 18:10:183

那位高手告诉下Pascal语言中读程序里的各种符号和字母(单词)各代表什么意思?

函数标识符 自变量类型 意义 结果类型 abs 整型、实型 绝对值 同自变量 arctan 整型、实型 反正切 实型 cos 整型、实型 余弦 实型 exp 整型、实型 指数 实型 frac 整型、实型 小数部分 实型 int 整型、实型 整数部分 实型 ln 整型、实型 自然对数 实型 pi 无自变量 圆周率 实型 sin 整型、实型 正弦 实型 sqr 整型、实型 平方 同自变量 sqrt 整型、实型 平方根 实型 例: abs(-4)=4 abs(-7.49)=7.49 -- arctan(0)=0.0 sin(pi)=0.0 cos(pi)=-1.0 frac(-3.71)=-0.71 int(-3.71)=-3.0 -- sqr(4)=16 sqrt(4)=2 -- 2.标量函数 函数标识符 自变量类型 意义 结果类型 odd 整型 判断奇数 布尔型 pred 离散类型 求前趋 同自变量 succ 离散类型 求后继 同自变量 例: odd(1000)=false odd(3)true pred(2000)=1999 succ(2000)=2001 pred("x")="w" succ("x")="y" 3.转换函数 函数标识符 自变量类型 意义 结果类型 chr byte型 自量对应的字符 字符型 ord 离散类型 自量对应的序号 longint round 实型 四舍五入 longint trunc 实型 截断取整 longint 4.杂类函数 函数标识符 自变量类型 意义 结果类型 random 无自变量 [0,1)之间的随机实数 real random word [0,自变量)之间的随机整数 wird randomize 无自变量 用一随机值初始化内部随机数产生器 longint upcase 字符型 使小写英文字母变为大写 字符型 Pascal语言函数集(含Delphi控件属性) abort 函数 引起放弃的意外处理 abs 函数 绝对值函数 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks函数 将给定字符串的行分隔符调整为cr/lf序列 align 属性 使控件位于窗口某部分 alignment 属性 控件标签的文字位置 allocmem 函数 在堆栈上分配给定大小的块 allowgrayed 属性 允许一个灰度选择 ansicomparestr 函数 比较字符串(区分大小写) ansicomparetext 函数 比较字符串(不区分大小写) ansilowercase 函数 将字符转换为小写 ansiuppercase 函数 将字符转换为大写 append 函数 以附加方式打开已有的文件 arctan 函数 余切函数 assignfile 函数 给文件变量赋一外部文件名 assigned 函数 测试函数或过程变量是否为空 autosize 属性 自动控制标签的大小 backgrounddi2001.jpg 属性 背景色 beginthread 函数 以适当的方式建立用于内存管理的线程 bevelinner 属性 控件方框的内框方式 bevelouter 属性 控件方框的外框方式 bevelwidth 属性 控件方框的外框宽度 blockread 函数 读一个或多个记录到变量中 blockwrite 函数 从变量中写一个或多个记录 borderstyle 属性 边界类型 borderwidth 属性 边界宽度 break 命令 终止for、while、repeat循环语句 brush 属性 画刷 caption 属性 标签文字的内容 changefileext 函数 改变文件的后缀 chdir 函数 改变当前目录 checked 属性 确定复选框选中状态 chr 函数 返回指定序数的字符 closefile 命令 关闭打开的文件 color 属性 标签的颜色 columns 属性 显示的列数 comparestr 函数 比较字符串(区分大小写) concat 函数 合并字符串 continue 命令 继续for、while、repeat的下一个循环 copy 函数 返回一字符串的子串 cos 函数 余弦函数 ctl3d 属性 是否具有3d效果 cursor 属性 鼠标指针移入后的形状 date 函数 返回当前的日期 datetimetofiledate函数 将delphi的日期格式转换为dos的日期格式 datetimetostr 函数 将日期时间格式转换为字符串 datetimetostring 函数 将日期时间格式转换为字符串 datetostr 函数 将日期格式转换为字符串 dayofweek 函数 返回星期的数值 dec 函数 递减变量值 decodedate 函数 将日期格式分解为年月日 decodetime 函数 将时间格式分解为时、分、秒、毫秒 delete 函数 从字符串中删除子串 deletefile 命令 删除文件 diskfree 函数 返回剩余磁盘空间的大小 disksize 函数 返回指定磁盘的容量 dispose 函数 释放动态变量所占的空间 disposestr 函数 释放字符串在堆栈中的内存空间 ditherbackgrounddi2001.jpg? 使背景色的色彩加重或减少50% dragcursor 属性 当鼠标按下时光标的形状 dragmode 属性 按动的作用方式 dropdowncount 属性 容许的显示数据项的数目 editmask 属性 编辑模式 enabled 属性 是否使标签呈现打开状态 encodedate 函数 将年月日合成为日期格式 encodetime 函数 将时、分、秒、毫秒合成为时间格式 endmargin 属性 末尾边缘 eof 函数 对有类型或无类型文件测试是否到文件尾 eoln 函数 返回文本文件的行结束状态 erase 命令 删除外部文件 exceptaddr 函数 返回引起当前意外的地址 exclude 函数 从集合中删除一些元素 exceptobject 函数 返回当前意外的索引 exit 命令 立即从当前的语句块中退出 exp 函数 指数函数 expandfilename 函数 返回包含绝对路径的字符串 extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义 extractfiledir 函数 返回驱动器和路径 extractfileext 函数 返回文件的后缀 extractfilename 函数 返回文件名 extractfilepath 函数 返回指定文件的路径 fileage 函数 返回文件已存在的时间 fileclose 命令 关闭指定的文件 filecreate 命令 用指定的文件名建立新文件 filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式 fileexists 函数 检查文件是否存在 filegatattr 函数 返回文件的属性 filegetdate 函数 返回文件的dos日期时间标记 fileopen 命令 用指定的存取模式打开指定的文件 filepos 函数 返回文件的当前指针位置 fileread 命令 从指定的文件读取 filesearch 命令 在目录中搜索指定的文件 fileseek 函数 改变文件的指针 filesetattr 函数 设置文件属性 filesetdate 函数 设置文件的dos日期时间标记 filesize 函数 返回当前文件的大小 filewrite 函数 对指定的文件做写操作 fillchar 函数 用指定的值填充连续字节的数 findclose 命令 终止findfirst/findnext序列 findfirst 命令 对指定的文件名及属性搜索目录 findnext 命令 返回与文件名及属性匹配的下一入口 floattodecimal 函数 将浮点数转换为十进制数 floattostrf 函数 将浮点数转换为字符串 floattostr 函数 将浮点数转换为字符串 floattotext 函数 将给定的浮点数转换为十进制数 floattotextfmt 函数 将给定的浮点数转换为十进制数 flush 函数 将缓冲区的内容刷新到输出的文本文件中 fmtloadstr 函数 从程序的资源字符串表中装载字符串 fmtstr 函数 格式化一系列的参数,其结果以参数 result 返回 font 属性 设置字体 format 函数 格式化一系列的参数并返回pascal字符串 formatbuf 函数 格式化一系列的参数 formatdatetime函数 用指定的格式来格式化日期和时间 formatfloat 函数 指定浮点数格式 frac 函数 返回参数的小数部分 freemem 函数 按给定大小释放动态变量所占的空间 getdir 返回指定驱动器的当前目录 getheapstatus 返回内存管理器的当前状态 getmem 建立一指定大小的动态变量,并将指针指向该处 getmemorymanager 返回内存管理器的入口点 glyph 函数 按钮上的图象 halt 停止程序的执行并返回到操作系统 hi 返回参数的高地址位 high 返回参数的上限值 hint 属性 提示信息 int 返回参数的整数部分 include 添加元素到集合中 insert 在字符串中插入子串 inttohex 将整型数转换为十六进制数 inttostr 将整型数转换为字符串 ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 items 属性 默认显示的节点 kind 属性 摆放样式 largechange 属性 最大改变值 layout 属性 图象布局 length 函数 返回字符串的动态长度 lines 属性 缺省显示内容 ln 函数 自然对数函数 lo 函数 返回参数的低地址位 loadstr 函数 从应用程序的可执行文件中装载字符资源 lowercase 函数 将给定的字符串变为小写 low 函数 返回参数的下限值 max 属性 最大值 maxlength 属性 最大长度 min 属性 最小值 mkdir 命令 建立一子目录 move 函数 从源到目标复制字节 multiselect 属性 允许同时选择几个数据项 name 属性 控件的名字 new 函数 建立新的动态变量并设置一指针变量指向它 newstr 函数 在堆栈上分配新的字符串 now 函数 返回当前的日期和时间 odd 测试参数是否为奇数 onactivate 事件 焦点移到窗体上时触发 onclick 事件 单击窗体空白区域触发 ondblclick 事件 双击窗体空白区域触发 onclosequery 事件 使用者试图关闭窗体触发 onclose 事件 窗体关闭后才触发 oncreate 事件 窗体第一次创建时触发 ondeactivate 事件 用户切换到另一应用程序触发 ondragdrop 事件 鼠标拖放操作结束时触发 ondragover 事件 有其他控件从他上面移过触发 onmousedown 事件 按下鼠标键时触发 onmouseup 事件 释放鼠标键时触发 onmousemove 事件 移动鼠标时触发 onhide 事件 隐藏窗体时触发 onkeydown 事件 按下键盘某键时触发 onkeypress 事件 按下键盘上的单个字符键时触发 onkeyup 事件 释放键盘上的某键时触发 onpaint 事件 窗体上有新部分暴露出来触发 onresize 事件 重新调整窗体大小触发 onshow 事件 在窗体实际显示之前瞬间触发 ord 返回序数类的序数 outlinestyle 属性 类型 outofmemoryerror 引起 outofmemory 意外 pageindex 属性 页索引 pages 属性 页 paramcount 函数 返回在命令行上传递给程序的参数数量 paramstr 函数 返回指定的命令行参数 pen 属性 画刷设置 pi 函数 返回圆周率pi picture 属性 显示图象 pictureclosed 属性 设置closed位图 pictureleaf 属性 设置leaf位图 pictureminus 属性 设置minus位图 pictureopen 属性 设置open位图 pictureplus 属性 设置plus位图 pos 函数 在字符串中搜索子串 pred 函数 返回先前的参数 random 函数 返回一随机函数 randomize 函数 用一随机数初始化内置的随机数生成器 read 函数 对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中 readln 函数 执行read过程,然后跳到文件下一行 readonly 属性 只读属性 reallocmem 函数 分配一动态变量 rename 函数 重命名外部文件 renamefile 函数 对文件重命名 reset 函数 打开已有的文件 rewrite 函数 建立并打开一新的文件 rmdir 函数 删除空的子目录 round 函数 将实数值舍入为整型值 runerror 函数 停止程序的执行 scrollbars 属性 滚动条状态 seek 函数 将文件的当前指针移动到指定的组件上 seekeof 函数 返回文件的文件结束状态 seekeoln 函数 返回文件的行结束状态 selectedcolor 属性 选中颜色 setmemorymanager 函数 设置内存管理器的入口点 settextbuf 函数 给文本文件指定i/o缓冲区 shape 属性 显示的形状 showexception 函数 显示意外消息与地址 sin 函数 正弦函数 sizeof 函数 返回参数所占的字节数 smallchange 属性 最小改变值 sorted 属性 是否允许排序 sqr 函数 平方函数 sqrt 函数 平方根函数 startmargin 属性 开始边缘 state 属性 控件当前状态 str 函数 将数值转换为字符串 stralloc 函数 给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数 strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串 strcomp 函数 比较两个字符串 strcopy 函数 将一个字符串复制到另一个字符串中 strdispose 函数 释放堆栈上的字符串 strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针 strend 函数 返回指向字符串尾部的指针 stretch 属性 自动适应控件的大小 strfmt 函数 格式化一系列的参数 stricomp 函数 比较两个字符串(不区分大小写) stringtowidechar 函数 将ansi字符串转换为unicode字符串 strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串 strlcomp 函数 以最大长度比较两个字符串 strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 strlen 函数 返回字符串中的字符数 strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 strlicomp 函数 以最大长度比较两个字符串(不区分大小写) strlower 函数 将字符串中的字符转换为小写 strmove 函数 将一个字符串中的字符复制到另一个字符串中 strnew 函数 在堆栈上分配一个字符串 strpas 函数 将以null结束的字符串转换为pascal类的字符串 strpcopy 函数 将pascal类的字符串复制为以null结束的字符串 strplcopy 函数 从pascal类的最大长度字符串复制为以null结束的字符串 strpos 函数 返回一个字符串在另一个字符串中首次出现指针 strrscan 函数 返回字符串中最后出现字符的指针 strscan 函数 返回字符串中出现首字符的指针 strtodate 函数 将字符串转换为日期格式 strtodatetime 函数 将字符串转换为日期/时间格式 strtofloat 函数 将给定的字符串转换为浮点数 strtoint 函数 将字符串转换为整型 strtointdef 函数 将字符串转换为整型或默认值 strtotime 函数 将字符串转换为时间格式 strupper 函数 将字符串中的字符转换为大写 style 属性 类型选择 suce 函数 返回后继的参数 swap 函数 交换参数的高低地址位 tabs 属性 标记每一项的内容 tabindex 属性 标记索引 text 属性 显示的文本 texttofloat 函数 将字符串(以null结束的格式)转换为浮点数 time 函数 返回当前的时间 timetostr 函数 将时间格式转换为字符串 trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符 trimleft 函数 从给定的字符串中删除首部的空格及控制字符 trimright 函数 从给定的字符串中删除尾部的空格及控制字符 trunc 函数 将实型值截取为整型值 truncate 函数 截去当前文件位置后的内容 unselectedcolor 属性 未选中颜色 upcase 将字符转换为大写 uppercase 将给定的字符串变为大写 val 函数 将字符串转换为整型值 vararraycreate 函数 以给定的界限和维数建立变体数组 vararraydimcount 函数 返回给定变体的维数 vararrayhighbound 函数 返回给定变体数组维数的上界 vararraylock 函数 锁定给定的变体数组 vararraylowbound 函数 返回给定变体数组维数的下界 vararrayof 函数 返回指定变体的数组元素 vararrayredim 函数 通过改变上限来调整变体的大小 vararrayunlock 函数 解锁指定的变体数组 varastype 函数 将变体转换为指定的类型 varcase 函数 将变体转换为指定的类型并保存它 varclear 函数 清除指定的变体 varcopy 函数 将指定的变体复制为指定的变体 varformdatetime 函数 返回包含日期时间的变体 varisarray 函数 测试变体是否为数组 varisempty 函数 测试变体是否为unassigned varisnull 函数 测试变体是否为null vartodatetime 函数 将给定的变体转换为日期时间 vartype 函数 将变体转换为指定的类型并保存它 visible 属性 控件的可见性 wantreturns 属性 为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中 writeln 命令 执行write过程,然后输出一行结束标志 widecharlentostring 函数 将ansi字符串转换为unicode字符串 widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量 widechartostring 函数 将unicode字符串转换为ansi字符串 widechartostrvar 函数 将unicode字符串转换为ansi字符串变量
2023-07-25 18:10:251

MFC下面一段程序是一个对话框上OK按钮的消息处理函数

从代码来看,应该是 mf->m_options.SaveOption这个函数中出现,你可以看看这个函数如何实现的。
2023-07-25 18:10:363

怎么把软件放到网络验证中

1. 请问怎么给软件加注册验证 要实现软件注册功能,首先需要知道实现注册机制要涉及到的几个问题:1、如何加入注册检测,判断软件是否注册;2、如何生成注册码,如何保证一个用户名只生成与之唯一对应的注册码;3、在软件不注册情况下,如何限制软件功能的局限性;4、对已经负费使用用户而言,不应造成使用不便。 首先,应该有一个生成注册码的算法,以下是我简单的一个生成15位注册码的算法:该函数返回一个CSTRING类型的15位注册码,入口参数为用户名CString GetRegPasswd(CString &DirName) {将用户名换算成15位注册码long Num1,Num2,Num3;char sn[16]={0};CString p;int i,len;Num1=0; Num2=0;Num3=0;len=int(strlen(DirName));if(len!=0){for( i=1;i<=len;i++){第一步算法Num1=(long(Num1+(int(DirName[i-1])*i*i)*(i*sqrt(DirName[i-1])+1)))%100000;第二步算法Num2=(Num2*i+(long(pow((int)DirName[i-1],2)*i)))%100000;第三步算法Num3=(Num2+(long)sqrt(Num1))%100000;}以下把三个算法结果分别生成5个字符,共有15个for(i=0;i<5;i++)sn[i]=(int)(Num1+31+i*i*i)%128;for(i=5;i<10;i++)sn[i]=(int)(Num2+31+i*i*i)%128;for(i=10;i<15;i++)sn[i]=(int)(Num3+31+i*i*i)%128;sn[15]=0;以下循环把所有生成的字符转换为0---9,A---Z,a----zfor(i=0;i<15;i++){while((sn[i]<"0" || sn[i]>"9") && (sn[i]<"A" || sn[i]>"Z") &&(sn[i]<"a" || sn[i]>"z") ){sn[i]=(sn[i]+31+7*i)%128;}}赋值给一个CSTRING变量,用做函数返回值p.Format("%s",sn);}return p;} 检查软件是否注册的函数BOOL GetRegFlag(void){HKEY hKey = NULL;BYTE i;CString str;str.LoadString(IDS_REG_KEY); IDS_REG_KEY为在注册表中的子目录字符串if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;DWORD cbA;cbA=sizeof(int);if( RegQueryValueEx(hKey, "SzMima",NULL,NULL, &i,&cbA) != ERROR_SUCCESS)return false;BYTE j=i;if(j==0)0代表软件已经注册,可以正常使用{RegCloseKey(hKey);return true;}else{RegCloseKey(hKey);return false;}return false;};设置软件已经注册标志的函数BOOL SetRegFlag(void){HKEY hKey = NULL;BYTE i;CString str;str.LoadString(IDS_REG_KEY); IDS_REG_KEY为在注册表中的子目录字符串if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;BYTE j=0;0代表已经注册if(RegSetValueEx(hKey, "SzMima", 0, REG_BINARY, &j,4) != ERROR_SUCCESS){AfxMessageBox("设置注册表数据失败!");return FALSE;}return false;};以上三个函数即可实现软件注册机制,只需要在程序初始化的时候加入以下几句代码即可BOOL bReg= GetRegFlag ();if(!bReg){在此加入限制功能或者拒绝是使用的代码}如果用户注册只需要加入以下代码即可这是我的程序中的一个注册界面,输入用户名和注册码提交后检验注册码是否正确的代码void CRegEdit::OnBnClickedOk(){if(!UpdateData()) return;取得编辑框的内容,并赋值到类变量中m_RegUser.TrimLeft();m_RegUser是用户名m_RegUser.TrimRight();if(m_RegUser.IsEmpty()){AfxMessageBox("用户名不能为空,请重新输入。");GetDlgItem(IDC_REGUSER)->SetFocus();return;}m_RegPasswd.TrimLeft();m_RegPasswd是注册码m_RegPasswd.TrimRight();if(m_RegPasswd.IsEmpty()){AfxMessageBox("注册码不能为空,请重新输入。 ");GetDlgItem(IDC_REGPASSWD)->SetFocus();return;}CString Passwd;Passwd=GetRegPasswd(m_RegUser);调用算法取得该用户名的注册码if(Passwd==m_RegPasswd)与用户输入的注册进行比较{SetRegFlag();设置注册标志OnOK();}elseAfxMessageBox("注册码错误,请重新输入。");UpdateData(false);}RSA做软件的注册功能,如果密钥设置的比较大位数的话,基本别人是无法写出注册机的,但是防止别人暴破你的程序又是另一回事了。 Imports System.Security.CryptographyImports System.TextImports System.IOImports System.XmlPublic Class FrmReg Inherits System.Windows.Forms.Form "Dim xmlKeys As String "A bination of both the public and "private keys "Dim xmlPublicKey As String "The public key only ""The plaintext message in a byte array "Dim PlainTextBArray As Byte() ""The cyphertext message in a byte array "Dim CypherTextBArray As Byte()#Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() "该调用是 Windows 窗体设计器所必需的。 Initializeponent() "在 Initializeponent() 调用之后添加任何初始化 End Sub "窗体重写 dispose 以清理组件列表。Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (ponents Is Nothing) Then ponents.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Windows 窗体设计器所必需的 Private ponents As System.ponentModel.IContainer "注意: 以下过程是 Windows 窗体设计器所必需的 "可以使用 Window。 2. 怎么样把苹果软件放网络上让别人下载 打开“设置”, 选择“通用”—— 按照前面介绍的方法,启用“访问限制”——在“允许的内容”中,点击“应用程序”—— 选择“不允许应用程序”来隐藏所有从App Store下载的从应用程序 这时你回到主屏幕会发现从App Store下载的应用全部消失了,连苹果官方的应用也不例外。 与前面的设置相同,全部的应用只是被隐藏起来,并没有被删除;撤销原来的操作,只需要在“访问限制”里设置“允许所有应用程序”就可以了。这个小技巧在你要把iOS设备临时借给别人用的时候也非常有用,你不用删除那些包含个人隐私的应用;如果小朋友想用你的iPad,在“访问限制”里同样可以隐藏掉不适宜小朋友使用的应用、禁止删除应用并且关闭应用内的支付功能。 iPad/iPhone中如何把应用图标放到文件夹里面 按住应用图标不放直到他们开始左右晃动——把一个图标拽到另外一个图标的上面去,就会创建一个文件夹,给新文件夹起一个名字——把其他的应用拽到这个新建的文件夹里面去 这种做法有点像你收拾屋子的时候把一些不常用的东西放到角落的一个箱子里去。
2023-07-25 18:10:431

MFC的CString的数据结构

MFC所有源代码都是公开的,在Visual Studio的src目录里,但是由于代码量很大,文件数量很多,所以你自己很难找到。如果只要看定义,h文件,那么直接在相应的类或者函数上面右键选择转到定义就可以看到,如果要看源代码,最好的办法是用调试。你写好代码比如CString str(_T("Test"));然后在这行设断点,然后调试,停在这行之后按F11单步进行,然后就就转到了CString类的构造函数了:CStringT( __in_z_opt const XCHAR* pszSrc ) : CThisSimpleString( StringTraits::GetDefaultManager() ) { if( !CheckImplicitLoad( pszSrc ) ) { // nDestLength is in XCHARs *this = pszSrc; } } 继续单步就可以进一步看到CheckImplicitLoad函数: bool CheckImplicitLoad( __in_opt const void* pv ) { bool bRet = false; if( (pv != NULL) && IS_INTRESOURCE( pv ) ) { UINT nID = LOWORD( reinterpret_cast< DWORD_PTR >( pv ) ); if( !LoadString( nID ) ) { ATLTRACE( atlTraceString, 2, _T( "Warning: implicit LoadString(%u) failed " ), nID ); } bRet = true; } return( bRet ); }
2023-07-25 18:11:002

MFC中几种常用的字符串分割方法

1、CString 自带的函数TokenizeCStringT Tokenize( _In_ PCXSTR pszTokens, _Inout_ int& iStart ) const功能介绍:从iStart位置取出字符串中含pszTokens分割符间的内容;istart是开始分割的位置,一般设为0,下面是一段运用实例:vector<CString> SplitCString(CString strSource, CString ch){ vector <CString> vecString; intiPos = 0; CString strTmp; strTmp = strSource.Tokenize(ch,iPos); while(strTmp.Trim() != _T("")) { vecString.push_back(strTmp); strTmp = strSource.Tokenize(ch,iPos); }}上述函数将字符串strSource按照字符串ch进行分割,分割得带的子字符串放到vector中。其中函数中的iPos是不断变化的,而Tokenize本身不会改变源字符串。2、char *strtok(char s[], const char *delim);功能介绍:分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。从s开头开始的一个个被分割的串。当查找不到delim中的字符时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。下面是一段运用实例。vector<CString> SplitCString(CString strSource, charch){ vector<CString> vecString; CString strTmp=strtok((LPSTR)(LPCTSTR)strSource,ch);//(LPSTR)(LPCTSTR)将CString转char* while(1) { strTmp=strtok(NULL,ch); if(strTmp==_T("")) break; strTmp.TrimLeft(); vecString.push_back(strTmp); }}与第一种方法有一点区别,上述函数第二个参数是char型的,第一种方法的第二个可以是CString型的,但是实现的功能相似。3、BOOL AFXAPI AfxExtractSubString ( CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = ‘ ");功能介绍:可用于从特定源字符串中提取子字符串。如果函数成功提取了该子字符串中提供的索引,返回TRUE 否则返回FALSE。其中// rString 对CString将得到一个单独的子字符串的对象。// lpszFullString 待分割的字符串。// iSubString 提取的子字符串的序号,从0开始。假如你想提取第3段,该参数就输入2// chSep 用于分割的字符,默认的是" "。下面是一段运用实例vector<CString> SplitCString(CString strSource, charch){ CString strTmp; vector<CString> vecString; intiPos=0; while(AfxExtractSubString(strTmp,strSource,iPos,ch)) { iPos++; vecString.push_back(strTmp); } returnvecString;}特别注意:strtok在分割的时候将分割符改变成‘/0"了,所以这个函数会修改源字符串,分割符不会包含在分割出来的字符串中,strtok允许多分割字符,比如空格+逗号表示为‘ ,",还有一点需要注意的是如果被分割的字符第一个是分割符,那么该字符会被忽略掉。如果出现连续的分隔符,那么也会忽略掉,比如字符串1|2||||3,用strtok来分割将得到1 2 3,但是如果用AfxExtractSubString,得到将会是1 2 空字符串 空字符串 空字符串 3,需求不同选择不同的函数。4、利用CString Find函数自己分割字符串vector<CString> SplitCString(CString strSource, charch){ CString strTmp; vector<CString> vecString; intn=-1; n=strSource.Find(ch) while(n!=-1) { strTmp=strSource.Left(n)//这里根据需要判断是否需要分隔符 vecString.push_back(strTmp); strSource=strsource.left(strSource.Getlenth-n+1) n=strSource.Find(ch); } returnvecString;}这种方法功能和上述类似,使用也很灵活,可以根据自己需要分割字符串。
2023-07-25 18:11:351

c语言提示:error C2040: “trim”:“char *(char *)”与“int ()”的间接寻址级别不同。如何解决。程序:

把主函数放到最后去
2023-07-25 18:11:432

c++中CListBox的成员函数SetItemDataPtr的作用是什么?

你问那个和贴这代码出来有联系吗?还是说没贴完?
2023-07-25 18:11:572

如何在VC程序中获取IE浏览器的代理服务器设置

分类: 电脑/网络 >> 软件 >> 其他软件 问题描述: 估计与IE的配置文件或者注册表某些特定键值有关,谢~ 解析: 在具体使用的时候需要增加头文件#include <wini.h>和库 WININET.LIB 程序代码 ------------------------------------------------------------------@ProxyType 代理类型,如HTTP,SOCKS,FTP... @ProxyAddr 返回代理服务器的地址 @ProxyPort 返回代理服务器的端口 返回值 0: 无错误 -1: 查询IE的代理失败 -2: 无此类型的代理 -3: 其他错误 -4: 无代理设置信息 int GetIEProxy(CString ProxyType,CString &ProxyAddr,int &ProxyPort) { unsigned long nSize = 4096; char szBuf[4096] = { 0 }; Read IE settings INTERNET_PROXY_INFO* pInfo = (INTERNET_PROXY_INFO*)szBuf; if(!InterQueryOption(NULL, INTERNET_OPTION_PROXY, pInfo, &nSize)) { return -1; 查询IE的代理失败! } CString strTmp (pInfo->lpszProxy); if (strTmp.IsEmpty()) return -4;无代理设置信息 int nStart=0,nPos,nCurLen; CString strProxyType = ProxyType; strProxyType += "="; 此时的结构如下 socks=192.168.1.100:3080 =192.168.1.100:808 =192.168.1.100:808 gopher=192.168.1.100:808 ftp=192.168.1.100:808 strTmp.MakeUpper();转化为大写 strProxyType.MakeUpper(); nCurLen = strTmp.GetLength(); nPos = strTmp.Find(strProxyType.GetBuffer(0),nStart); if (nPos>=0) { strTmp = strTmp.Right(nCurLen - nPos); strTmp.TrimLeft(); nCurLen = strTmp.GetLength(); 到此结构如下 HTTP=192.168.1.100:808 gopher=192.168.1.100:808 ftp=192.168.1.100:808 获取单独的协议部分 nPos = strTmp.Find(" ",nStart); if (nPos>=0) { strTmp = strTmp.Left(nPos); strTmp.TrimRight(); nCurLen = strTmp.GetLength(); 到此结构如下 HTTP=192.168.1.100:808 取掉协议名称部分 strTmp = strTmp.Right(nCurLen-strProxyType.GetLength()); nCurLen = strTmp.GetLength(); 到此结构如下 192.168.1.100:808 nPos = strTmp.Find(":",nStart); if (nPos>0)必须要大于0 { ProxyAddr = strTmp.Left(nPos); strTmp = strTmp.Right(nCurLen-nPos-1); strTmp.TrimLeft(); strTmp.TrimRight(); ProxyPort = atoi(strTmp); return 0; } else { return -3; } } else { return -3; } } else { return -2;无此类型的代理 } } 你这个是旧的方法(IE4 and earlier)了,从IE5开始,最好使用 INTERNET_OPTION_PER_CONNECTION_OPTION来Invoke InterQueryOption,详细内容可以参考MS Q226473 如何编程动态改变IE的代理服务器设置, 并且使之马上生效! 用到的关键函数是wini库里面的InterSetOption. msdn里面有对它详细的介绍, 可以自己去看看. 当把参数dwOption设置为INTERNET_OPTION_SETTINGS_CHANGED的时候. 他就会促使IE在下一次打开网页的时候重新到注册表里面去取代理的设置信息. 所以我们就可以先将注册表里面的代理信息更改掉, 然后调用InterSetOption函数, 从而达到使自己想要的代理设置马上生效的目的. 下面的函数可以实现改变IE的代理服务器设置的目的. 里面加了少许的注释以帮助大家理解. BOOL SetHttpProxy(CString ip, UINT port) { CString l_just; l_just.Format("=%s:%d", ip.LockBuffer(), port); 下面的代码将注册表项HKEY_CURRENT_USER\Sofare\Microsoft\Windows\CurrentVersion\Inter Settings\ProxyServer 的内容取出来 HKEY hKeyIn = HKEY_CURRENT_USER, hKeyOut; if( ERROR_SUCCESS != RegOpenKeyEx(hKeyIn, "Sofare\Microsoft\Windows\CurrentVersion\Inter Settings", 0, KEY_CREATE_LINK | KEY_WRITE | KEY_READ | KEY_NOTIFY, &hKeyOut)) { return FALSE; } ULONG regsize = 0; if(ERROR_SUCCESS != RegQueryValueEx(hKeyOut, "ProxyServer", NULL, NULL, NULL, &regsize)) { return FALSE; } LPBYTE pValue = new BYTE[regsize]; memset(pValue, 0x00, regsize); if(ERROR_SUCCESS != RegQueryValueEx(hKeyOut, "ProxyServer", NULL, NULL, pValue, &regsize)) { return FALSE; } CString oldproxy((char *)pValue); delete [] pValue; pValue = NULL; 从注册表中读出来的数据格式为:=111.111.111.111:80;ftp=222.222.222.222:21;......, 如果你只想改变的代理的话, 就只要把其中的111.111.111.111:80换成你想要的代理就行了, 类似的你可以改变其他的代理. 下面的代码就替换代理成为参数所指定的代理. int pos = 0; 如果没有字符串中没有找到"="说明用户没有设置代理,这时候直接加在最前面. if(-1 == (pos = oldproxy.Find("="))) { pos = 0; } int pos1 = 0; if(-1 == (pos1 = oldproxy.Find(";", pos))) { pos1 = oldproxy.GetLength(); } oldproxy.Delete(pos, pos1 - pos); oldproxy.Insert(pos, l_just); if(ERROR_SUCCESS != RegSetValueEx(hKeyOut, "ProxyServer", 0, REG_SZ, (const unsigned char *)oldproxy.LockBuffer(), oldproxy.GetLength() + 1)) { return FALSE; } RegCloseKey(hKeyOut); 使设置生效 if(!InterSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0)) { return FALSE; } return TRUE; } 最后在使用此函数的时候不要忘记包含头文件 #include <wini.h> 和lib: wini.lib
2023-07-25 18:12:041

MFC的程序,输入数据始终只能保存一条,随后输入会覆盖前面的,代码如下

不出意外的话,m_DataList被你声明为了CString,当然只记录一条输入。你应该把m_DataList声明为链表类。如果它是成员变量,声明为CList;如果它是控件,声明为CListCtrl,再关联一个CListCString cs;cs.Format("%-7s %-7s %-7s",m_strNAME,m_strNO,strSEX); m_DataList.AddTail(cs);
2023-07-25 18:12:122

MFC 同时满足两个条件的查询

m_strFilter.Format("xingming="%s" and password="%s"",m_name,m_password);参考一下
2023-07-25 18:13:421

如何通过注册表判断电脑是否加域

计算机是否加域的问题,不用看注册表。你知道查看“计算机”的“属性”就可以看到。
2023-07-25 18:14:001

ES6-字符串方法及其实现

模板字符串替换 + 操作符,来拼接字符串,并且支持换行: 标签模板 : 标签模板其实不是模板,而是函数调用的一种特殊形式。“标签”指的就是函数,紧跟在后面的模板字符串就是它的参数。 如果模板字符里面有变量,就不是简单的调用了,而是会将模板字符串先处理成多个参数,再调用函数。 String.raw() 是一个 模板字符串 的标签函数,它的作用类似于 Python 中的字符串前缀 r ,通常使用标签模板的形式( String.raw模板字符串 ),返回值是 自动转义 的字符串: u200b Polyfill: repeat 方法返回一个新字符串,表示将原字符串重复 n 次。语法: 如果某个字符串不够指定长度,会在头部或尾部补全。 padStart() 用于头部补全, padEnd() 用于尾部补全。 trimLeft() 是 trimStart() 的别名, trimRight() 是 trimEnd() 的别名。 除了空格键,对字符串头部(或尾部)的 tab 键、换行符等不可见的空白符号也有效。 substring() 方法返回一个字符串在开始索引到结束索引之间的一个子集, 或从开始索引直到字符串的末尾的一个子集。返回新的字符串,不改变原来的字符串 str.substring(indexStart[, indexEnd]) : indexStart需要截取的第一个字符的索引,该字符作为返回的字符串的首字母。indexEnd]可选 ,一个 0 到字符串长度 之间的整数,以该数字为索引的字符 不包含 在截取的字符串内。 左闭右开 slice() 方法提取某个字符串的一部分,并返回一个新的字符串,且不会改动原字符串。 str.slice(beginIndex[, endIndex]) 参数和substring一样,只不过有差异。和上面方式对比: 可见 slice 方式的索引是可以倒数的, 强烈推荐 使用 slice 方式截取字符串更好理解,不易出错。 其实JS中截取字符串,方法有很多: substr(淘汰,不推荐) 、 substring 、 slice ,推荐使用 slice 方式。
2023-07-25 18:14:081

MFC文件读取txt的问题,每行的数字个数不确定。

用getch(str)将这一行全部读进来,然后用sscanf(str,"%d %n",&num,&len);然后再str+=len - 1;len代表读入的字节个数
2023-07-25 18:14:231

C++如何从字符串中读取字符

用CString对象。好多方法。好用。常用方法。GetLength Returns the number of characters in a CString object. For multibyte characters, counts each 8-bit character; that is, a lead and trail byte in one multibyte character are counted as two characters. IsEmpty Tests whether a CString object contains no characters. Empty Forces a string to have 0 length. GetAt Returns the character at a given position. operator [] Returns the character at a given position — operator substitution for GetAt. SetAt Sets a character at a given position. operator LPCTSTR Directly accesses characters stored in a CString object as a C-style string. Assignment/Concatenation operator = Assigns a new value to a CString object. operator + Concatenates two strings and returns a new string. operator += Concatenates a new string to the end of an existing string. Comparison operator == <, etc. Comparison operators (case sensitive). Compare Compares two strings (case sensitive). CompareNoCase Compares two strings (case insensitive). Collate Compares two strings (case sensitive, uses locale-specific information). CollateNoCase Compares two strings (case insensitive, uses locale-specific information). Extraction Mid Extracts the middle part of a string (like the Basic MID$ function). Left Extracts the left part of a string (like the Basic LEFT$ function). Right Extracts the right part of a string (like the Basic RIGHT$ function). SpanIncluding Extracts a substring that contains only the characters in a set. SpanExcluding Extracts a substring that contains only the characters not in a set. Other Conversions MakeUpper Converts all the characters in this string to uppercase characters. MakeLower Converts all the characters in this string to lowercase characters. MakeReverse Reverses the characters in this string. Replace Replaces indicated characters with other characters. Remove Removes indicated characters from a string. Insert Inserts a single character or a substring at the given index within the string. Delete Deletes a character or characters from a string. Format Format the string as sprintf does. FormatV Formats the string as vsprintf does. TrimLeft Trim leading whitespace characters from the string. TrimRight Trim trailing whitespace characters from the string. FormatMessage Formats a message string. Searching Find Finds a character or substring inside a larger string. ReverseFind Finds a character inside a larger string; starts from the end. FindOneOf Finds the first matching character from a set. Archive/Dump operator << Inserts a CString object to an archive or dump context. operator >> Extracts a CString object from an archive. Buffer Access GetBuffer Returns a pointer to the characters in the CString. GetBufferSetLength Returns a pointer to the characters in the CString, truncating to the specified length. ReleaseBuffer
2023-07-25 18:14:344

如何用C++自动生成员工编号

CString CWorkEntryDlg::GetWorkerID(){ CTime time = CTime::GetCurrentTime(); CString sql,temp,ID; sql.Format("select * from hrworker where wEntrantTime = "%s"",time.Format("%Y-%m-%d")); m_dataBase.OpenEx("DSN=HRM",0); m_workerSet.m_pDatabase = &m_dataBase; m_workerSet.Open(AFX_DB_USE_DEFAULT_TYPE,sql); if(!m_workerSet.IsBOF()) m_workerSet.MoveFirst(); if(!m_workerSet.IsEOF()) { ID = temp = "0"; while(!m_workerSet.IsEOF()) { ID = m_workerSet.m_wCID; m_workerSet.MoveNext(); if(ID.Compare(temp) > 0) { temp = ID; } } temp.TrimLeft(); temp.TrimRight(); ID.Format("%s%04d",time.Format("%y%m%d"),atoi(temp.Right(4))+1); } else { ID.Format("%s0001",time.Format("%y%m%d")); } m_workerSet.Close(); m_dataBase.Close(); return ID;}
2023-07-25 18:14:411

VS2008 MFC 十进制数转十六进制放进数组

首先这个数组类型不对,要存成这样的数组用char是不行的,这里的换成字符串数组:int iSrc = 300,iRemain=0,i=0,iRes[100];CString arrHex[4]={0x00,0x00,0x00,0x00};while (iSrc!=0)//数制转换,结果存入数组iRes[i] { iRemain=iSrc%16;iSrc=iSrc/16;i++;iRes[i]=iRemain; //将余数按顺序存入数组iRes[i]中}CString strHex,szTmp;for (int k = i;k>=1;k--){szTmp.Format(_T("%x"),iRes[k]);strHex+=szTmp;}int count = strHex.GetLength();count = count/2;count = 3;CString strTemp;strHex.TrimLeft();for(int i=count; i>=0; i--){if (strHex.GetLength() >1){arrHex[i] = strHex.Right(2);arrHex[i].Insert(0,_T("0x"));}else{arrHex[i] = strHex;arrHex[i].Insert(0,_T("0x"));break;}strHex.Delete(strHex.GetLength()-2, 2);}
2023-07-25 18:14:511

CString的Trim()函数,是什么功能的?

CString类,没有Trim这个成员函数。。。。Trim()函数是String的一个方法,CString只能作为参数使用,而不能作为成员函数调用。一般是用作去掉空格。
2023-07-25 18:15:102

delphi中如何去除右边字符

varstr:string;beginstr := "abcdefghigklmn";Delete(str,Length(str)-4,5);ShowMessage(str);end;
2023-07-25 18:15:192

VB语言中的 语言中英文对照

我有 +QQ我发给你 695959708 VB函数大全 VB属性大全 都有中文解释楼上滴 他没发全 还有很多了
2023-07-25 18:15:304

请问怎么给软件加注册验证

要实现软件注册功能,首先需要知道实现注册机制要涉及到的几个问题:1、如何加入注册检测,判断软件是否注册;2、如何生成注册码,如何保证一个用户名只生成与之唯一对应的注册码;3、在软件不注册情况下,如何限制软件功能的局限性;4、对已经负费使用用户而言,不应造成使用不便。首先,应该有一个生成注册码的算法,以下是我简单的一个生成15位注册码的算法://该函数返回一个CSTRING类型的15位注册码,入口参数为用户名CString GetRegPasswd(CString &DirName) {//将用户名换算成15位注册码long Num1,Num2,Num3;char sn[16]={0};CString p;int i,len;Num1=0; Num2=0;Num3=0;len=int(strlen(DirName));if(len!=0){for( i=1;i<=len;i++){//第一步算法Num1=(long(Num1+(int(DirName[i-1])*i*i)*(i*sqrt(DirName[i-1])+1)))%100000;//第二步算法Num2=(Num2*i+(long(pow((int)DirName[i-1],2)*i)))%100000;//第三步算法Num3=(Num2+(long)sqrt(Num1))%100000;}//以下把三个算法结果分别生成5个字符,共有15个for(i=0;i<5;i++)sn[i]=(int)(Num1+31+i*i*i)%128;for(i=5;i<10;i++)sn[i]=(int)(Num2+31+i*i*i)%128;for(i=10;i<15;i++)sn[i]=(int)(Num3+31+i*i*i)%128;sn[15]=0;//以下循环把所有生成的字符转换为0---9,A---Z,a----zfor(i=0;i<15;i++){while((sn[i]<"0" || sn[i]>"9") && (sn[i]<"A" || sn[i]>"Z") &&(sn[i]<"a" || sn[i]>"z") ){sn[i]=(sn[i]+31+7*i)%128;}}//赋值给一个CSTRING变量,用做函数返回值p.Format("%s",sn);}return p;} //检查软件是否注册的函数BOOL GetRegFlag(void){HKEY hKey = NULL;BYTE i;CString str;str.LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;DWORD cbA;cbA=sizeof(int);if( RegQueryValueEx(hKey, "SzMima",NULL,NULL, &i,&cbA) != ERROR_SUCCESS)return false;BYTE j=i;if(j==0)//0代表软件已经注册,可以正常使用{RegCloseKey(hKey);return true;}else{RegCloseKey(hKey);return false;}return false;};//设置软件已经注册标志的函数BOOL SetRegFlag(void){HKEY hKey = NULL;BYTE i;CString str;str.LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;BYTE j=0;//0代表已经注册if(RegSetValueEx(hKey, "SzMima", 0, REG_BINARY, &j,4) != ERROR_SUCCESS){AfxMessageBox("设置注册表数据失败!");return FALSE;}return false;};以上三个函数即可实现软件注册机制,只需要在程序初始化的时候加入以下几句代码即可BOOL bReg= GetRegFlag ();if(!bReg){//在此加入限制功能或者拒绝是使用的代码}如果用户注册只需要加入以下代码即可//这是我的程序中的一个注册界面,输入用户名和注册码提交后检验注册码是否正确的代码void CRegEdit::OnBnClickedOk(){if(!UpdateData()) return;//取得编辑框的内容,并赋值到类变量中m_RegUser.TrimLeft();//m_RegUser是用户名m_RegUser.TrimRight();if(m_RegUser.IsEmpty()){AfxMessageBox("用户名不能为空,请重新输入。");GetDlgItem(IDC_REGUSER)->SetFocus();return;}m_RegPasswd.TrimLeft();m_RegPasswd是注册码m_RegPasswd.TrimRight();if(m_RegPasswd.IsEmpty()){AfxMessageBox("注册码不能为空,请重新输入。");GetDlgItem(IDC_REGPASSWD)->SetFocus();return;}CString Passwd;Passwd=GetRegPasswd(m_RegUser);//调用算法取得该用户名的注册码if(Passwd==m_RegPasswd)//与用户输入的注册进行比较{SetRegFlag();//设置注册标志OnOK();}elseAfxMessageBox("注册码错误,请重新输入。");UpdateData(false);}RSA做软件的注册功能,如果密钥设置的比较大位数的话,基本别人是无法写出注册机的,但是防止别人暴破你的程序又是另一回事了。 Imports System.Security.CryptographyImports System.TextImports System.IOImports System.XmlPublic Class FrmReg Inherits System.Windows.Forms.Form "Dim xmlKeys As String "A combination of both the public and "private keys "Dim xmlPublicKey As String "The public key only ""The plaintext message in a byte array "Dim PlainTextBArray As Byte() ""The cyphertext message in a byte array "Dim CypherTextBArray As Byte()#Region " Windows 窗体设计器生成的代码 " Public Sub New() MyBase.New() "该调用是 Windows 窗体设计器所必需的。 InitializeComponent() "在 InitializeComponent() 调用之后添加任何初始化 End Sub "窗体重写 dispose 以清理组件列表。 Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub "Windows 窗体设计器所必需的 Private components As System.ComponentModel.IContainer "注意: 以下过程是 Windows 窗体设计器所必需的 "可以使用 Windows 窗体设计器修改此过程。 "不要使用代码编辑器修改它。 Friend WithEvents btnReg As System.Windows.Forms.Button Friend WithEvents btnexit As System.Windows.Forms.Button Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents txtRegCode As System.Windows.Forms.TextBox Friend WithEvents txtRegName As System.Windows.Forms.TextBox Friend WithEvents LinkLabel1 As System.Windows.Forms.LinkLabel Private Sub InitializeComponent() Me.btnReg = New System.Windows.Forms.Button Me.btnexit = New System.Windows.Forms.Button Me.txtRegName = New System.Windows.Forms.TextBox Me.Label1 = New System.Windows.Forms.Label Me.Label2 = New System.Windows.Forms.Label Me.txtRegCode = New System.Windows.Forms.TextBox Me.LinkLabel1 = New System.Windows.Forms.LinkLabel Me.SuspendLayout() " "btnReg " Me.btnReg.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnReg.Location = New System.Drawing.Point(64, 192) Me.btnReg.Name = "btnReg" Me.btnReg.Size = New System.Drawing.Size(75, 24) Me.btnReg.TabIndex = 0 Me.btnReg.Text = "注册(&R)" " "btnexit " Me.btnexit.FlatStyle = System.Windows.Forms.FlatStyle.Flat Me.btnexit.Location = New System.Drawing.Point(168, 192) Me.btnexit.Name = "btnexit" Me.btnexit.Size = New System.Drawing.Size(75, 24) Me.btnexit.TabIndex = 1 Me.btnexit.Text = "取消(&C)" " "txtRegName " Me.txtRegName.Location = New System.Drawing.Point(8, 24) Me.txtRegName.Name = "txtRegName" Me.txtRegName.Size = New System.Drawing.Size(296, 21) Me.txtRegName.TabIndex = 2 Me.txtRegName.Text = "" " "Label1 " Me.Label1.Location = New System.Drawing.Point(8, 0) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(48, 16) Me.Label1.TabIndex = 3 Me.Label1.Text = "注册名:" " "Label2 " Me.Label2.Location = New System.Drawing.Point(8, 56) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(56, 16) Me.Label2.TabIndex = 4 Me.Label2.Text = "注册码:" " "txtRegCode " Me.txtRegCode.Location = New System.Drawing.Point(8, 80) Me.txtRegCode.Multiline = True Me.txtRegCode.Name = "txtRegCode" Me.txtRegCode.Size = New System.Drawing.Size(296, 104) Me.txtRegCode.TabIndex = 5 Me.txtRegCode.Text = "" " "LinkLabel1 " Me.LinkLabel1.Location = New System.Drawing.Point(128, 56) Me.LinkLabel1.Name = "LinkLabel1" Me.LinkLabel1.Size = New System.Drawing.Size(128, 16) Me.LinkLabel1.TabIndex = 6 Me.LinkLabel1.TabStop = True Me.LinkLabel1.Text = "http://Testbug.Net" " "FrmReg " Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14) Me.ClientSize = New System.Drawing.Size(306, 223) Me.Controls.Add(Me.LinkLabel1) Me.Controls.Add(Me.txtRegCode) Me.Controls.Add(Me.txtRegName) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.btnexit) Me.Controls.Add(Me.btnReg) Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle Me.MaximizeBox = False Me.Name = "FrmReg" Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen Me.Text = "RSA&MD5注册例子程序 by www.TestBug.net" Me.TopMost = True Me.ResumeLayout(False) End Sub#End Region Private Sub btnexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexit.Click Application.Exit() End Sub Private Sub btnReg_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReg.Click If txtRegName.Text = "" Then MessageBox.Show("注册名不能为空", "提示") Return Else If txtRegCode.Text = "" Then MessageBox.Show("注册码不能为空", "提示") Return Else If txtRegCode.Text.Length <> 172 Then MessageBox.Show("注册码长度不对", "提示") Return End If End If End If Try Dim RSA As System.Security.Cryptography.RSACryptoServiceProvider = New System.Security.Cryptography.RSACryptoServiceProvider "公钥 RSA.FromXmlString("xzALwAOqEcj8jWrKXyaecAhyz9W+wH26K8ZcMv9ZFYDJeR5jMhK7AhNbwn+q1mAH7VV146v6S2SlJeErEvTXS3dJR0pjaED0R2JSf0FwrWP6CDsKREQC803E+Faaw/Kou134K6mejPg16dxYfcIlJgoWRqn58qnjo6g87XlUMUs=AQAB") Dim RSADeformatter As System.Security.Cryptography.RSAPKCS1SignatureDeformatter = New System.Security.Cryptography.RSAPKCS1SignatureDeformatter(RSA) "指定解密的时候HASH算法为MD5 RSADeformatter.SetHashAlgorithm("MD5") Dim Regcode As Byte() = Convert.FromBase64String(txtRegCode.Text) Dim RegName As Byte() = (New System.Text.ASCIIEncoding).GetBytes(txtRegName.Text) Dim dataToHash As Byte() = (New System.Text.ASCIIEncoding).GetBytes(txtRegName.Text) Dim hash As Byte() = CType(System.Security.Cryptography.CryptoConfig.CreateFromName("MD5"), System.Security.Cryptography.HashAlgorithm).ComputeHash(dataToHash) "验证签名 If RSADeformatter.VerifySignature(hash, Regcode) Then "注册通过的话就写入注册文件 Dim textWriter As XmlTextWriter = New XmlTextWriter("reg.xml", Nothing) textWriter.WriteStartElement("RegInfo") textWriter.WriteStartElement("RegName") textWriter.WriteString(txtRegName.Text) textWriter.WriteEndElement() textWriter.WriteStartElement("RegCode") textWriter.WriteString(txtRegCode.Text) textWriter.WriteEndElement() textWriter.Close() MessageBox.Show("注册正确,谢谢注册本软件,请重新启动程序完成注册", "提示") Application.Exit() Else MessageBox.Show("错误的注册码", "提示") End If Catch ex As Exception "MessageBox.Show(ex.Message()) MessageBox.Show("错误的注册码", "提示") End Try End Sub Private Sub FrmReg_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed Application.Exit() End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked System.Diagnostics.Process.Start("http://testbug.net") End SubEnd Class
2023-07-25 18:15:401

HOTMAIL电子邮箱收件时无法显示附件里完整的文件名!

遇到同样的问题,我查了好多地方,最后我放弃了,采取的是另存为的措施呵呵
2023-07-25 18:15:542

dec在pascal中是什么意思

就是dec(x) X会-1嘛
2023-07-25 18:16:034

请问用strlen来计算字符串的长度时 空格算不算上去的咯

用strlen来计算字符串的长度时 空格算.1. 测字符串长度函数strlen 格式: strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志‘") 并作为函数返回值。【例】#include"string.h"main(){ int k; static char st[]="C language"; k=strlen(st); printf("The lenth of the string is %d ",k);}
2023-07-25 18:16:102

C#中能使用mfc 的CString类对象吗?怎么用?

不能
2023-07-25 18:16:172

如何根据用户名生成注册码

现在网上下载的软件大部分都需要注册后才能使用其全部的功能,也就是说当前大部分软件都是建立了注册机制的,对于一个刚进入软件行业的程序员来说一定非常想了解其中的注册机制是怎样实现的。其实用VC开发软件,是可以很方便地加入注册机制的。   要实现软件注册功能,首先需要知道实现注册机制要涉及到的几个问题:1、如何加入注册检测,判断软件是否注册;2、如何生成注册码,如何保证一个用户名只生成与之唯一对应的注册码;3、在软件不注册情况下,如何限制软件功能的局限性;4、对已经负费使用用户而言,不应造成使用不便。   首先,应该有一个生成注册码的算法,以下是我简单的一个生成15为注册码的算法: //该函数返回一个CSTRING类型的15位注册码,入口参数为用户名 CString GetRegPasswd(CString &DirName) { //将用户名换算成15位注册码 long Num1,Num2,Num3; char sn[16]={0}; CString p; int i,len; Num1=0; Num2=0; Num3=0; len=int(strlen(DirName)); if(len!=0) { for( i=1;i<=len;i++) { //第一步算法 Num1=(long(Num1+(int(DirName[i-1])*i*i)*(i*sqrt(DirName[i-1])+1)))%100000; //第二步算法 Num2=(Num2*i+(long(pow((int)DirName[i-1],2)*i)))%100000; //第三步算法 Num3=(Num2+(long)sqrt(Num1))%100000; } //以下把三个算法结果分别生成5个字符,共有15个 for(i=0;i<5;i++) sn[i]=(int)(Num1+31+i*i*i)%128; for(i=5;i<10;i++) sn[i]=(int)(Num2+31+i*i*i)%128; for(i=10;i<15;i++) sn[i]=(int)(Num3+31+i*i*i)%128; sn[15]=0; //以下循环把所有生成的字符转换为0---9,A---Z,a----z for(i=0;i<15;i++) { while((sn[i]<""0"" || sn[i]>""9"") && (sn[i]<""A"" || sn[i]>""Z"") &&(sn[i]<""a"" || sn[i]>""z"") ) { sn[i]=(sn[i]+31+7*i)%128; } } //赋值给一个CSTRING变量,用做函数返回值 p.Format("%s",sn); } return p; } //检查软件是否注册的函数 BOOL GetRegFlag(void) { HKEY hKey = NULL; BYTE i; CString str; str.LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串 if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false; DWORD cbA; cbA=sizeof(int); if( RegQueryValueEx(hKey, "SzMima",NULL,NULL, &i,&cbA) != ERROR_SUCCESS) return false; BYTE j=i; if(j==0)//0代表软件已经注册,可以正常使用 { RegCloseKey(hKey); return true; } else { RegCloseKey(hKey); return false; } return false; }; //设置软件已经注册标志的函数 BOOL SetRegFlag(void) { HKEY hKey = NULL; BYTE i; CString str; str.LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串 if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false; BYTE j=0;//0代表已经注册 if(RegSetValueEx(hKey, "SzMima", 0, REG_BINARY, &j,4) != ERROR_SUCCESS) { AfxMessageBox("设置注册表数据失败!"); return FALSE; } return false; }; 以上三个函数即可实现软件注册机制,只需要在程序初始化的时候加入以下几句代码即可 BOOL bReg= GetRegFlag (); if(!bReg) { //在此加入限制功能或者拒绝是使用的代码 } 如果用户注册只需要加入以下代码即可 //这是我的程序中的一个注册界面,输入用户名和注册码提交后检验注册码是否正确的代码 void CRegEdit::OnBnClickedOk() { if(!UpdateData()) return;//取得编辑框的内容,并赋值到类变量中 m_RegUser.TrimLeft();//m_RegUser是用户名 m_RegUser.TrimRight(); if(m_RegUser.IsEmpty()) { AfxMessageBox("用户名不能为空,请重新输入。"); GetDlgItem(IDC_REGUSER)->SetFocus(); return; } m_RegPasswd.TrimLeft();m_RegPasswd是注册码 m_RegPasswd.TrimRight(); if(m_RegPasswd.IsEmpty()) { AfxMessageBox("注册码不能为空,请重新输入。"); GetDlgItem(IDC_REGPASSWD)->SetFocus(); return; } CString Passwd; Passwd=GetRegPasswd(m_RegUser);//调用算法取得该用户名的注册码 if(Passwd==m_RegPasswd)//与用户输入的注册进行比较 { SetRegFlag();//设置注册标志 OnOK(); } else AfxMessageBox("注册码错误,请重新输入。"); UpdateData(false); }   以上就是在VC中实现注册机制的主要的代码,把他们加入您的程序即可。程序代码已在VC6.0/WIN98/WIN 2000环境中运行通过,并在实际运用中得到验证。对已经注册的用户将不会有任何的障碍,只需录入注册码一次就可以,不增加其日常使用的负担;而对非法用户的使用而言,取决于软件的作者赋予他们的权利。
2023-07-25 18:16:381

用C++Builder编写去掉字符串左右两边空格的问题。不要使用已有的函数。大家帮忙看看吧

AnsiString trim(const AnsiString &mystr) { AnsiString str = mystr; int len ,count= mystr.length(); int st = 0; while ((st < len) && (str [ st] <= " ")) { st++; } while ((st < len) && (str [ len - 1] <= " ")) { len--; } return ((st > 0) || (len < count)) ? str.substr(st, len) : str; }str.substr(st, len) 这个意思您能理解吧,不让用自己复制一下这段字符串就完了。
2023-07-25 18:17:071

VC中怎么过滤中文字符

Trim只能去掉字符串最左边最右边的空格,也不是用TRIM还是TrimLeft(),TrimRight();你要去"一、", 用Replace替换为空不行了么?
2023-07-25 18:17:154

pascal 怎么编写函数库(格式)

dec(s)是s:=s-1;函数标识符 自变量类型 意义 结果类型 abs 整型、实型 绝对值 同自变量 arctan 整型、实型 反正切 实型 cos 整型、实型 余弦 实型 exp 整型、实型 指数 实型 frac 整型、实型 小数部分 实型 int 整型、实型 整数部分 实型 ln 整型、实型 自然对数 实型 pi 无自变量 圆周率 实型 sin 整型、实型 正弦 实型 sqr 整型、实型 平方 同自变量 sqrt 整型、实型 平方根 实型 例: abs(-4)=4 abs(-7.49)=7.49 -- arctan(0)=0.0 sin(pi)=0.0 cos(pi)=-1.0 frac(-3.71)=-0.71 int(-3.71)=-3.0 -- sqr(4)=16 sqrt(4)=2 -- 2.标量函数 函数标识符 自变量类型 意义 结果类型 odd 整型 判断奇数 布尔型 pred 离散类型 求前趋 同自变量 succ 离散类型 求后继 同自变量 例: odd(1000)=false odd(3)true pred(2000)=1999 succ(2000)=2001 pred("x")="w" succ("x")="y" 3.转换函数 函数标识符 自变量类型 意义 结果类型 chr byte型 自量对应的字符 字符型 ord 离散类型 自量对应的序号 longint round 实型 四舍五入 longint trunc 实型 截断取整 longint 4.杂类函数 函数标识符 自变量类型 意义 结果类型 random 无自变量 [0,1)之间的随机实数 real random word [0,自变量)之间的随机整数 wird randomize 无自变量 用一随机值初始化内部随机数产生器 longint upcase 字符型 使小写英文字母变为大写 字符型 Pascal语言函数集(含Delphi控件属性) abort 函数 引起放弃的意外处理 abs 函数 绝对值函数 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks函数 将给定字符串的行分隔符调整为cr/lf序列 align 属性 使控件位于窗口某部分 alignment 属性 控件标签的文字位置 allocmem 函数 在堆栈上分配给定大小的块 allowgrayed 属性 允许一个灰度选择 ansicomparestr 函数 比较字符串(区分大小写) ansicomparetext 函数 比较字符串(不区分大小写) ansilowercase 函数 将字符转换为小写 ansiuppercase 函数 将字符转换为大写 append 函数 以附加方式打开已有的文件 arctan 函数 余切函数 assignfile 函数 给文件变量赋一外部文件名 assigned 函数 测试函数或过程变量是否为空 autosize 属性 自动控制标签的大小 backgrounddi2001.jpg 属性 背景色 beginthread 函数 以适当的方式建立用于内存管理的线程 bevelinner 属性 控件方框的内框方式 bevelouter 属性 控件方框的外框方式 bevelwidth 属性 控件方框的外框宽度 blockread 函数 读一个或多个记录到变量中 blockwrite 函数 从变量中写一个或多个记录 borderstyle 属性 边界类型 borderwidth 属性 边界宽度 break 命令 终止for、while、repeat循环语句 brush 属性 画刷 caption 属性 标签文字的内容 changefileext 函数 改变文件的后缀 chdir 函数 改变当前目录 checked 属性 确定复选框选中状态 chr 函数 返回指定序数的字符 closefile 命令 关闭打开的文件 color 属性 标签的颜色 columns 属性 显示的列数 comparestr 函数 比较字符串(区分大小写) concat 函数 合并字符串 continue 命令 继续for、while、repeat的下一个循环 copy 函数 返回一字符串的子串 cos 函数 余弦函数 ctl3d 属性 是否具有3d效果 cursor 属性 鼠标指针移入后的形状 date 函数 返回当前的日期 datetimetofiledate函数 将delphi的日期格式转换为dos的日期格式 datetimetostr 函数 将日期时间格式转换为字符串 datetimetostring 函数 将日期时间格式转换为字符串 datetostr 函数 将日期格式转换为字符串 dayofweek 函数 返回星期的数值 dec 函数 递减变量值 decodedate 函数 将日期格式分解为年月日 decodetime 函数 将时间格式分解为时、分、秒、毫秒 delete 函数 从字符串中删除子串 deletefile 命令 删除文件 diskfree 函数 返回剩余磁盘空间的大小 disksize 函数 返回指定磁盘的容量 dispose 函数 释放动态变量所占的空间 disposestr 函数 释放字符串在堆栈中的内存空间 ditherbackgrounddi2001.jpg? 使背景色的色彩加重或减少50% dragcursor 属性 当鼠标按下时光标的形状 dragmode 属性 按动的作用方式 dropdowncount 属性 容许的显示数据项的数目 editmask 属性 编辑模式 enabled 属性 是否使标签呈现打开状态 encodedate 函数 将年月日合成为日期格式 encodetime 函数 将时、分、秒、毫秒合成为时间格式 endmargin 属性 末尾边缘 eof 函数 对有类型或无类型文件测试是否到文件尾 eoln 函数 返回文本文件的行结束状态 erase 命令 删除外部文件 exceptaddr 函数 返回引起当前意外的地址 exclude 函数 从集合中删除一些元素 exceptobject 函数 返回当前意外的索引 exit 命令 立即从当前的语句块中退出 exp 函数 指数函数 expandfilename 函数 返回包含绝对路径的字符串 extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义 extractfiledir 函数 返回驱动器和路径 extractfileext 函数 返回文件的后缀 extractfilename 函数 返回文件名 extractfilepath 函数 返回指定文件的路径 fileage 函数 返回文件已存在的时间 fileclose 命令 关闭指定的文件 filecreate 命令 用指定的文件名建立新文件 filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式 fileexists 函数 检查文件是否存在 filegatattr 函数 返回文件的属性 filegetdate 函数 返回文件的dos日期时间标记 fileopen 命令 用指定的存取模式打开指定的文件 filepos 函数 返回文件的当前指针位置 fileread 命令 从指定的文件读取 filesearch 命令 在目录中搜索指定的文件 fileseek 函数 改变文件的指针 filesetattr 函数 设置文件属性 filesetdate 函数 设置文件的dos日期时间标记 filesize 函数 返回当前文件的大小 filewrite 函数 对指定的文件做写操作 fillchar 函数 用指定的值填充连续字节的数 findclose 命令 终止findfirst/findnext序列 findfirst 命令 对指定的文件名及属性搜索目录 findnext 命令 返回与文件名及属性匹配的下一入口 floattodecimal 函数 将浮点数转换为十进制数 floattostrf 函数 将浮点数转换为字符串 floattostr 函数 将浮点数转换为字符串 floattotext 函数 将给定的浮点数转换为十进制数 floattotextfmt 函数 将给定的浮点数转换为十进制数 flush 函数 将缓冲区的内容刷新到输出的文本文件中 fmtloadstr 函数 从程序的资源字符串表中装载字符串 fmtstr 函数 格式化一系列的参数,其结果以参数 result 返回 font 属性 设置字体 format 函数 格式化一系列的参数并返回pascal字符串 formatbuf 函数 格式化一系列的参数 formatdatetime函数 用指定的格式来格式化日期和时间 formatfloat 函数 指定浮点数格式 frac 函数 返回参数的小数部分 freemem 函数 按给定大小释放动态变量所占的空间 getdir 返回指定驱动器的当前目录 getheapstatus 返回内存管理器的当前状态 getmem 建立一指定大小的动态变量,并将指针指向该处 getmemorymanager 返回内存管理器的入口点 glyph 函数 按钮上的图象 halt 停止程序的执行并返回到操作系统 hi 返回参数的高地址位 high 返回参数的上限值 hint 属性 提示信息 int 返回参数的整数部分 include 添加元素到集合中 insert 在字符串中插入子串 inttohex 将整型数转换为十六进制数 inttostr 将整型数转换为字符串 ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 items 属性 默认显示的节点 kind 属性 摆放样式 largechange 属性 最大改变值 layout 属性 图象布局 length 函数 返回字符串的动态长度 lines 属性 缺省显示内容 ln 函数 自然对数函数 lo 函数 返回参数的低地址位 loadstr 函数 从应用程序的可执行文件中装载字符资源 lowercase 函数 将给定的字符串变为小写 low 函数 返回参数的下限值 max 属性 最大值 maxlength 属性 最大长度 min 属性 最小值 mkdir 命令 建立一子目录 move 函数 从源到目标复制字节 multiselect 属性 允许同时选择几个数据项 name 属性 控件的名字 new 函数 建立新的动态变量并设置一指针变量指向它 newstr 函数 在堆栈上分配新的字符串 now 函数 返回当前的日期和时间 odd 测试参数是否为奇数 onactivate 事件 焦点移到窗体上时触发 onclick 事件 单击窗体空白区域触发 ondblclick 事件 双击窗体空白区域触发 onclosequery 事件 使用者试图关闭窗体触发 onclose 事件 窗体关闭后才触发 oncreate 事件 窗体第一次创建时触发 ondeactivate 事件 用户切换到另一应用程序触发 ondragdrop 事件 鼠标拖放操作结束时触发 ondragover 事件 有其他控件从他上面移过触发 onmousedown 事件 按下鼠标键时触发 onmouseup 事件 释放鼠标键时触发 onmousemove 事件 移动鼠标时触发 onhide 事件 隐藏窗体时触发 onkeydown 事件 按下键盘某键时触发 onkeypress 事件 按下键盘上的单个字符键时触发 onkeyup 事件 释放键盘上的某键时触发 onpaint 事件 窗体上有新部分暴露出来触发 onresize 事件 重新调整窗体大小触发 onshow 事件 在窗体实际显示之前瞬间触发 ord 返回序数类的序数 outlinestyle 属性 类型 outofmemoryerror 引起 outofmemory 意外 pageindex 属性 页索引 pages 属性 页 paramcount 函数 返回在命令行上传递给程序的参数数量 paramstr 函数 返回指定的命令行参数 pen 属性 画刷设置 pi 函数 返回圆周率pi picture 属性 显示图象 pictureclosed 属性 设置closed位图 pictureleaf 属性 设置leaf位图 pictureminus 属性 设置minus位图 pictureopen 属性 设置open位图 pictureplus 属性 设置plus位图 pos 函数 在字符串中搜索子串 pred 函数 返回先前的参数 random 函数 返回一随机函数 randomize 函数 用一随机数初始化内置的随机数生成器 read 函数 对有格式的文件,读一文件组件到变量中;对文本文件,读一个或多个值到一个或多个变量中 readln 函数 执行read过程,然后跳到文件下一行 readonly 属性 只读属性 reallocmem 函数 分配一动态变量 rename 函数 重命名外部文件 renamefile 函数 对文件重命名 reset 函数 打开已有的文件 rewrite 函数 建立并打开一新的文件 rmdir 函数 删除空的子目录 round 函数 将实数值舍入为整型值 runerror 函数 停止程序的执行 scrollbars 属性 滚动条状态 seek 函数 将文件的当前指针移动到指定的组件上 seekeof 函数 返回文件的文件结束状态 seekeoln 函数 返回文件的行结束状态 selectedcolor 属性 选中颜色 setmemorymanager 函数 设置内存管理器的入口点 settextbuf 函数 给文本文件指定i/o缓冲区 shape 属性 显示的形状 showexception 函数 显示意外消息与地址 sin 函数 正弦函数 sizeof 函数 返回参数所占的字节数 smallchange 属性 最小改变值 sorted 属性 是否允许排序 sqr 函数 平方函数 sqrt 函数 平方根函数 startmargin 属性 开始边缘 state 属性 控件当前状态 str 函数 将数值转换为字符串 stralloc 函数 给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数 strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串 strcomp 函数 比较两个字符串 strcopy 函数 将一个字符串复制到另一个字符串中 strdispose 函数 释放堆栈上的字符串 strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针 strend 函数 返回指向字符串尾部的指针 stretch 属性 自动适应控件的大小 strfmt 函数 格式化一系列的参数 stricomp 函数 比较两个字符串(不区分大小写) stringtowidechar 函数 将ansi字符串转换为unicode字符串 strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串 strlcomp 函数 以最大长度比较两个字符串 strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 strlen 函数 返回字符串中的字符数 strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 strlicomp 函数 以最大长度比较两个字符串(不区分大小写) strlower 函数 将字符串中的字符转换为小写 strmove 函数 将一个字符串中的字符复制到另一个字符串中 strnew 函数 在堆栈上分配一个字符串 strpas 函数 将以null结束的字符串转换为pascal类的字符串 strpcopy 函数 将pascal类的字符串复制为以null结束的字符串 strplcopy 函数 从pascal类的最大长度字符串复制为以null结束的字符串 strpos 函数 返回一个字符串在另一个字符串中首次出现指针 strrscan 函数 返回字符串中最后出现字符的指针 strscan 函数 返回字符串中出现首字符的指针 strtodate 函数 将字符串转换为日期格式 strtodatetime 函数 将字符串转换为日期/时间格式 strtofloat 函数 将给定的字符串转换为浮点数 strtoint 函数 将字符串转换为整型 strtointdef 函数 将字符串转换为整型或默认值 strtotime 函数 将字符串转换为时间格式 strupper 函数 将字符串中的字符转换为大写 style 属性 类型选择 suce 函数 返回后继的参数 swap 函数 交换参数的高低地址位 tabs 属性 标记每一项的内容 tabindex 属性 标记索引 text 属性 显示的文本 texttofloat 函数 将字符串(以null结束的格式)转换为浮点数 time 函数 返回当前的时间 timetostr 函数 将时间格式转换为字符串 trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符 trimleft 函数 从给定的字符串中删除首部的空格及控制字符 trimright 函数 从给定的字符串中删除尾部的空格及控制字符 trunc 函数 将实型值截取为整型值 truncate 函数 截去当前文件位置后的内容 unselectedcolor 属性 未选中颜色 upcase 将字符转换为大写 uppercase 将给定的字符串变为大写 val 函数 将字符串转换为整型值 vararraycreate 函数 以给定的界限和维数建立变体数组 vararraydimcount 函数 返回给定变体的维数 vararrayhighbound 函数 返回给定变体数组维数的上界 vararraylock 函数 锁定给定的变体数组 vararraylowbound 函数 返回给定变体数组维数的下界 vararrayof 函数 返回指定变体的数组元素 vararrayredim 函数 通过改变上限来调整变体的大小 vararrayunlock 函数 解锁指定的变体数组 varastype 函数 将变体转换为指定的类型 varcase 函数 将变体转换为指定的类型并保存它 varclear 函数 清除指定的变体 varcopy 函数 将指定的变体复制为指定的变体 varformdatetime 函数 返回包含日期时间的变体 varisarray 函数 测试变体是否为数组 varisempty 函数 测试变体是否为unassigned varisnull 函数 测试变体是否为null vartodatetime 函数 将给定的变体转换为日期时间 vartype 函数 将变体转换为指定的类型并保存它 visible 属性 控件的可见性 wantreturns 属性 为true时,按回车键产生一个回车符;为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中;对文本文件,写一个或多个值到文件中 writeln 命令 执行write过程,然后输出一行结束标志 widecharlentostring 函数 将ansi字符串转换为unicode字符串 widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量 widechartostring 函数 将unicode字符串转换为ansi字符串 widechartostrvar 函数 将unicode字符串转换为ansi字符串变量
2023-07-25 18:17:233

2. 将一个数字字符串转换为整型数值。字符串最大长度为5。例如:将字符串“12345”转换为12345。(超过5时

这个问题可以使用字符串转换成长整数的函数完成。建议你自己做,我看你有一定基础了,坚持、自信等于成功。
2023-07-25 18:17:302

CListBox的GetItemData为什么一直返回0呢?郁闷(请不要粘贴MSDN)

好象没有 SetItemData
2023-07-25 18:17:384

pascal决赛求助!!高手快进...

Orzing……
2023-07-25 18:17:488

请问 CString 转换成 char* 类型后 这个char*跟char 的区别

1、char 是存放一个字符的变量,char* 里面存放的是字符串的首地址2、可以放入栈中
2023-07-25 18:18:223

求个c++大神补充和修改一下这段读取文件的程序,本人不懂。谢谢!

你好!怎么还在提问,上午问过就没后话了,程序可以帮你完成
2023-07-25 18:18:411

Delphi的常用函数

名称 类型 说明 abort 函数 引起放弃的意外处理 abs 函数 绝对值函数 addexitproc 函数 将一过程添加到运行时库的结束过程表中 addr 函数 返回指定对象的地址 adjustlinebreaks 函数 将给定字符串的行分隔符调整为cr/lf序列 align 属性 使控件位于窗口某部分 alignment 属性 控件标签的文字位置 allocmem 函数 在堆栈上分配给定大小的块 allowgrayed 属性 允许一个灰度选择 ansicomparestr 函数 比较字符串(区分大小写) ansicomparetext 函数 比较字符串(不区分大小写) ansilowercase 函数 将字符转换为小写 ansiuppercase 函数 将字符转换为大写 append 函数 以附加的方式打开已有的文件 arctan 函数 余切函数 assignfile 函数 给文件变量赋一外部文件名 assigned 函数 测试函数或过程变量是否为空 autosize 属性 自动控制标签的大小 backgrounddi2001.jpg 属性 背景色 beginthread 函数 以适当的方式建立用于内存管理的线程 bevelinner 属性 控件方框的内框方式 bevelouter 属性 控件方框的外框方式 bevelwidth 属性 控件方框的外框宽度 blockread 函数 读一个或多个记录到变量中 blockwrite 函数 从变量中写一个或多个记录 borderstyle 属性 边界类型 borderwidth 属性 边界宽度 break 命令 终止for、while、repeat循环语句 brush 属性 画刷 caption 属性 标签文字的内容 changefileext 函数 改变文件的后缀 chdir 函数 改变当前目录 checked 属性 确定复选框选中状态 chr 函数 返回指定序数的字符 closefile 命令 关闭打开的文件 color 属性 标签的颜色 columns 属性 显示的列数 comparestr 函数 比较字符串(区分大小写) concat 函数 合并字符串 continue 命令 继续for、while、repeat的下一个循环 copy 函数 返回一字符串的子串 cos 函数 余弦函数 ctl3d 属性 是否具有3d效果 cursor 属性 鼠标指针移入后的形状 date 函数 返回当前的日期 datetimetofiledate 函数 将delphi的日期格式转换为dos的日期格式 datetimetostr 函数 将日期时间格式转换为字符串 datetimetostring 函数 将日期时间格式转换为字符串 datetostr 函数 将日期格式转换为字符串 dayofweek 函数 返回星期的数值 dec 函数 递减变量值 decodedate 函数 将日期格式分解为年月日 decodetime 函数 将时间格式分解为时、分、秒、毫秒 delete 函数 从字符串中删除子串 deletefile 命令 删除文件 diskfree 函数 返回剩余磁盘空间的大小 disksize 函数 返回指定磁盘的容量 dispose 函数 释放动态变量所占的空间 disposestr 函数 释放字符串在堆栈中的内存空间 ditherbackgrounddi2001.jpg?使背景色的色彩加重或减少50% dragcursor 属性 当鼠标按下时光标的形状 dragmode 属性 按动的作用方式 dropdowncount 属性 容许的显示数据项的数目 editmask 属性 编辑模式 enabled 属性 是否使标签呈现打开状态 encodedate 函数 将年月日合成为日期格式 encodetime 函数 将时、分、秒、毫秒合成为时间格式 endmargin 属性 末尾边缘 eof 函数 对有类型或无类型文件测试是否到文件尾 eoln 函数 返回文本文件的行结束状态 erase 命令 删除外部文件 exceptaddr 函数 返回引起当前意外的地址 exclude 函数 从集合中删除一些元素 exceptobject 函数 返回当前意外的索引 exit 命令 立即从当前的语句块中退出 exp 函数 指数函数 expandfilename 函数 返回包含绝对路径的字符串 extendedselect 属性 是否允许存在选择模式,true时,multiselect才有意义 extractfiledir 函数 返回驱动器和路径 extractfileext 函数 返回文件的后缀 extractfilename 函数 返回文件名 extractfilepath 函数 返回指定文件的路径 fileage 函数 返回文件已存在的时间 fileclose 命令 关闭指定的文件 filecreate 命令 用指定的文件名建立新文件 filedatetodatetime 函数 将dos的日期格式转换为delphi的日期格式 fileexists 函数 检查文件是否存在 filegatattr 函数 返回文件的属性 filegetdate 函数 返回文件的dos日期时间标记 fileopen 命令 用指定的存取模式打开指定的文件 filepos 函数 返回文件的当前指针位置 fileread 命令 从指定的文件读取 filesearch 命令 在目录中搜索指定的文件 fileseek 函数 改变文件的指针 filesetattr 函数 设置文件属性 filesetdate 函数 设置文件的dos日期时间标记 filesize 函数 返回当前文件的大小 filewrite 函数 对指定的文件做写操作 fillchar 函数 用指定的值填充连续字节的数 findclose 命令 终止findfirst/findnext序列 findfirst 命令 对指定的文件名及属性搜索目录 findnext 命令 返回与文件名及属性匹配的下一入口 floattodecimal 函数 将浮点数转换为十进制数 floattostrf 函数 将浮点数转换为字符串 floattostr 函数 将浮点数转换为字符串 floattotext 函数 将给定的浮点数转换为十进制数 floattotextfmt 函数 将给定的浮点数转换为十进制数 flush 函数 将缓冲区的内容刷新到输出的文本文件中 fmtloadstr 函数 从程序的资源字符串表中装载字符串 fmtstr 函数 格式化一系列的参数,其结果以参数result返回 font 属性 设置字体 format 函数 格式化一系列的参数并返回pascal字符串 formatbuf 函数 格式化一系列的参数 formatdatetime 函数 用指定的格式来格式化日期和时间 formatfloat 函数 指定浮点数格式 frac 函数 返回参数的小数部分 freemem 函数 按给定大小释放动态变量所占的空间 getdir 返回指定驱动器的当前目录 getheapstatus 返回内存管理器的当前状态 getmem 建立一指定大小的动态变量,并将指针指向该处 getmemorymanager 返回内存管理器的入口点 glyph 函数 按钮上的图象 halt 停止程序的执行并返回到操作系统 hi 返回参数的高地址位 high 返回参数的上限值 hint 属性 提示信息 int 返回参数的整数部分 include 添加元素到集合中 insert 在字符串中插入子串 inttohex 将整型数转换为十六进制数 inttostr 将整型数转换为字符串 ioresult 返回最新的i/o操作完成状态 isvalidident 测试字符串是否为有效的标识符 items 属性 默认显示的节点 kind 属性 摆放样式 largechange 属性 最大改变值 layout 属性 图象布局 length 函数 返回字符串的动态长度 lines 属性 缺省显示内容 ln 函数 自然对数函数 lo 函数 返回参数的低地址位 loadstr 函数 从应用程序的可执行文件中装载字符资源 lowercase 函数 将给定的字符串变为小写 low 函数 返回参数的下限值 max 属性 最大值 maxlength 属性 最大长度 min 属性 最小值 mkdir 命令 建立一子目录 move 函数 从源到目标复制字节 multiselect 属性 允许同时选择几个数据项 name 属性 控件的名字 new 函数 建立新的动态变量并设置一指针变量指向他 newstr 函数 在堆栈上分配新的字符串 now 函数 返回当前的日期和时间 odd 测试参数是否为奇数 onactivate 事件 焦点移到窗体上时触发 onclick 事件 单击窗体空白区域触发 ondblclick 事件 双击窗体空白区域触发 onclosequery 事件 使用者试图关闭窗体触发 onclose 事件 窗体关闭后才触发 oncreate 事件 窗体第一次创建时触发 ondeactivate 事件 用户切换到另一应用程序触发 ondragdrop 事件 鼠标拖放操作结束时触发 ondragover 事件 有其他控件从他上面移过触发 onmousedown 事件 按下鼠标键时触发 onmouseup 事件 释放鼠标键时触发 onmousemove 事件 移动鼠标时触发 onhide 事件 隐藏窗体时触发 onkeydown 事件 按下键盘某键时触发 onkeypress 事件 按下键盘上的单个字符键时触发 onkeyup 事件 释放键盘上的某键时触发 onpaint 事件 窗体上有新部分暴露出来触发 onresize 事件 重新调整窗体大小触发 onshow 事件 在窗体实际显示之前瞬间触发 ord 返回序数类的序数 outlinestyle 属性 类型 outofmemoryerror 引起outofmemory意外 pageindex 属性 页索引 pages 属性 页 paramcount 函数 返回在命令行上传递给程序的参数数量 paramstr 函数 返回指定的命令行参数 pen 属性 画刷设置 pi 函数 返回圆周率pi picture 属性 显示图象 pictureclosed 属性 设置closed位图 pictureleaf 属性 设置leaf位图 pictureminus 属性 设置minus位图 pictureopen 属性 设置open位图 pictureplus 属性 设置plus位图 pos 函数 在字符串中搜索子串 pred 函数 返回先前的参数 random 函数 返回一随机函数 randomize 函数 用一随机数初始化内置的随机数生成器 read 函数 对有格式的文件,读一文件组件到变量中; 对文本文件,读一个或多个值到一个或多个变量中 readln 函数 执行read过程,然后跳到文件下一行 readonly 属性 只读属性 reallocmem 函数 分配一动态变量 rename 函数 重命名外部文件 renamefile 函数 对文件重命名 reset 函数 打开已有的文件 rewrite 函数 建立并打开一新的文件 rmdir 函数 删除空的子目录 round 函数 将实数值舍入为整型值 runerror 函数 停止程序的执行 scrollbars 属性 滚动条状态 seek 函数 将文件的当前指针移动到指定的组件上 seekeof 函数 返回文件的文件结束状态 seekeoln 函数 返回文件的行结束状态 selectedcolor 属性 选中颜色 setmemorymanager 函数 设置内存管理器的入口点 settextbuf 函数 给文本文件指定i/o缓冲区 shape 属性 显示的形状 showexception 函数 显示意外消息与地址 sin 函数 正弦函数 sizeof 函数 返回参数所占的字节数 smallchange 属性 最小改变值 sorted 属性 是否允许排序 sqr 函数 平方函数 sqrt 函数 平方根函数 startmargin 属性 开始边缘 state 属性 控件当前状态 str 函数 将数值转换为字符串 stralloc 函数 给以null结束的字符串分配最大长度-1的缓冲区 strbufsize 函数 返回存储在由stralloc分配的字符缓冲区的最大字符数 strcat 函数 将一字符串附加到另一字符串尾并返回合并的字符串 strcomp 函数 比较两个字符串 strcopy 函数 将一个字符串复制到另一个字符串中 strdispose 函数 释放堆栈上的字符串 strecopy 函数 将一字符串复制到另一个字符串并返回结果字符串尾部的指针 strend 函数 返回指向字符串尾部的指针 stretch 属性 自动适应控件的大小 strfmt 函数 格式化一系列的参数 stricomp 函数 比较两个字符串(不区分大小写) stringtowidechar 函数 将ansi字符串转换为unicode字符串 strlcat 函数 将一字符串中的字符附加到另一字符串尾并返回合并的字符串 strlcomp 函数 以最大长度比较两个字符串 strlcopy 函数 将一个字符串中的字符复制到另一个字符串中 strlen 函数 返回字符串中的字符数 strlfmt 函数 格式化一系列的参数,其结果中包含有指向目标缓冲区的指针 strlicomp 函数 以最大长度比较两个字符串(不区分大小写) strlower 函数 将字符串中的字符转换为小写 strmove 函数 将一个字符串中的字符复制到另一个字符串中 strnew 函数 在堆栈上分配一个字符串 strpas 函数 将以null结束的字符串转换为pascal类的字符串 strpcopy 函数 将pascal类的字符串复制为以null结束的字符串 strplcopy 函数 从pascal类的最大长度字符串复制为以null结束的字符串 strpos 函数 返回一个字符串在另一个字符串中首次出现指针 strrscan 函数 返回字符串中最后出现字符的指针 strscan 函数 返回字符串中出现首字符的指针 strtodate 函数 将字符串转换为日期格式 strtodatetime 函数 将字符串转换为日期/时间格式 strtofloat 函数 将给定的字符串转换为浮点数 strtoint 函数 将字符串转换为整型 strtointdef 函数 将字符串转换为整型或默认值 strtotime 函数 将字符串转换为时间格式 strupper 函数 将字符串中的字符转换为大写 style 属性 类型选择 suce 函数 返回后继的参数 swap 函数 交换参数的高低地址位 tabs 属性 标记每一项的内容 tabindex 属性 标记索引 text 属性 显示的文本 texttofloat 函数 将字符串(以null结束的格式)转换为浮点数 time 函数 返回当前的时间 timetostr 函数 将时间格式转换为字符串 trim 函数 从给定的字符串中删除前导和尾部的空格及控制字符 trimleft 函数 从给定的字符串中删除首部的空格及控制字符 trimright 函数 从给定的字符串中删除尾部的空格及控制字符 trunc 函数 将实型值截取为整型值 truncate 函数 截去当前文件位置后的内容 unselectedcolor 属性 未选中颜色 upcase 将字符转换为大写 uppercase 将给定的字符串变为大写 val 函数 将字符串转换为整型值 vararraycreate 函数 以给定的界限和维数建立变体数组 vararraydimcount 函数 返回给定变体的维数 vararrayhighbound 函数 返回给定变体数组维数的上界 vararraylock 函数 锁定给定的变体数组 vararraylowbound 函数 返回给定变体数组维数的下界 vararrayof 函数 返回指定变体的数组元素 vararrayredim 函数 通过改变上限来调整变体的大小 vararrayunlock 函数 解锁指定的变体数组 varastype 函数 将变体转换为指定的类型 varcase 函数 将变体转换为指定的类型并保存他 varclear 函数 清除指定的变体 varcopy 函数 将指定的变体复制为指定的变体 varformdatetime 函数 返回包含日期时间的变体 varisarray 函数 测试变体是否为数组 varisempty 函数 测试变体是否为unassigned varisnull 函数 测试变体是否为null vartodatetime 函数 将给定的变体转换为日期时间 vartype 函数 将变体转换为指定的类型并保存他 visible 属性 控件的可见性 wantreturns 属性 为true时,按回车键产生一个回车符; 为false时,按下ctrl+enter才产生回车符 write 命令 对有格式的文件,写一变量到文件组件中; 对文本文件,写一个或多个值到文件中 writeln 命令 执行write过程,然后输出一行结束标志 widecharlentostring 函数 将ansi字符串转换为unicode字符串 widecharlentostrwar 函数 将unicode字符串转换为ansi字符串变量 widechartostring 函数 将unicode字符串转换为ansi字符串 widechartostrvar 函数 将unicode字符串转换为ansi字符串变量
2023-07-25 18:19:011

VC++ 6.0 MFC 编程求救!我想把磁盘一个TXT文件里的数据读进来保存在数组中,具体怎么做?

你把他的代码直接拷贝到你的函数里就行了(需要在前面引用头文件)
2023-07-25 18:19:104

c++怎么连数据库

void CAdo::UnInitAdo(){ CoUninitialize();}void CAdo::InitAdo(){ CoInitialize(NULL);}BOOL CAdo::OpenDB(const int dbType, const CString &dsrc, const CString &userID, const CString &pwd,const CString &dbName,const long &Options){ CString connString; if(m_pCon == NULL) { return FALSE; } switch (dbType) { case ACCESS_DB: connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+dsrc+ ";Mode=Share Deny None;User ID="+userID+ ";Jet OLEDB:Database Password="+pwd+";"; break; case SQLSEVER_DB: connString = "User ID="+userID+";Data Source="+dsrc+";Password="+pwd+ ";Initial Catalog="+dbName+";Provider=SQLOLEDB.1;Persist Security Info=True"; break; case ORACLE_DB_MS: connString = "Provider=MSDAORA;Data Source="+dsrc+";User Id="+userID+";Password="+pwd+";"; break; case ORACLE_DB_ST: connString = "Provider=oraoledb.oracle;Data Source="+dsrc+";User Id="+userID+";Password="+pwd+";"; break; } return OpenDB(connString,userID,pwd,Options);}BOOL CAdo::OpenDB(const CString &connectString,const CString &userID, const CString &pwd,const long &Options){ if(m_pCon == NULL) { return FALSE; } m_pCon->ConnectionString = (LPCTSTR)connectString; try { m_pCon->CursorLocation = adUseClient; return (!m_pCon->Open("",LPCSTR(userID),LPCSTR(pwd), Options)); } catch (_com_error )//&err) { //TRACE("错误代码信息:%s,详细描述:%s", // err.ErrorMessage(),err.Description()); return FALSE; } return TRUE;}BOOL CAdo::CloseDB(){ if(m_pCon!=NULL) { HRESULT res = m_pCon->Close(); m_pCon=NULL; return TRUE; } return FALSE;}int CAdo::Execute(const CString &cmd){ if(m_pCon==NULL) { return -1; } VARIANT cnt; cnt.vt = VT_INT; try { m_pCon->Execute(LPCSTR(cmd),&cnt,adCmdUnknown); } catch (_com_error & e) { TRACE("Insert error : %s, %s ", e.ErrorInfo(), e.ErrorMessage()); return -1; } return cnt.intVal;}int CAdo::Insert(const CString &cmd){ CString tmp(cmd); CString dest("insert"); tmp.TrimLeft(); tmp=tmp.Left(dest.GetLength()); tmp.MakeLower(); if (tmp.Find(dest)==-1) { return -1; } return Execute(cmd);}
2023-07-25 18:19:171

关于一个用ODBC MFC做的商品仓库管理系统登陆界面的问题 “参数不足 期望值 2”

抱歉!这个问题不懂哦,请再加油吧!
2023-07-25 18:19:241

VC++6.0中修改指定用户的密码?

这是我一个工程中的代码//m_ado连接到数据库的CMyADO m_ado; m_ado.InitConnect(); CString SQLstr; SQLstr.Format("SELECT * FROM userinfo WHERE 用户名="%s"",m_username); _RecordsetPtr rs=m_ado.ExectureSQL((_bstr_t)SQLstr); if(rs->adoEOF) { MessageBox("不存在用户!","系统提示"); if(rs->GetState()==adStateOpen) { rs->Close(); } m_ado.ExitConnect(); return; } CString rsymm; rsymm=(char*)(_bstr_t)rs->GetCollect("密码"); rsymm.TrimLeft(); rsymm.TrimRight(); if(ymm!=rsymm) { MessageBox("原密码错误!","系统提示"); if(rs->GetState()==adStateOpen) { rs->Close(); } m_ado.ExitConnect(); m_editymm.SetFocus(); m_editymm.SetSel(0,-1); return; } SQLstr.Format("UPDATE userinfo SET 密码="%s" WHERE 用户名="%s"",xmm,m_username); m_ado.ExecSQL((_bstr_t)SQLstr); MessageBox("修改密码成功!","系统提示"); m_ado.ExitConnect();
2023-07-25 18:19:321

如何添加cfile类

确认已经包含afx.h头文件后直接定义对象就可以使用了。
2023-07-25 18:19:392

eight怎么自然拼读?

eight八的意思
2023-07-25 18:16:482