博客园 - 少林
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=81270
2016-10-01T21:39:23Z
少林
https://www.cnblogs.com/sherlockhua/
feed.cnblogs.com
https://www.cnblogs.com/sherlockhua/archive/2012/03/31/2426399.html
MYSQL C API 入门教程 - 少林
MYSQLCAPI入门教程(一)关于本教程这是一本关于MYQL的C语言编程的入门教程,它讲述了MYSQL的CAPI编程的基本知识。本博文由编程导航网提供。(二)关于MYSQL数据库MYSQL是一个领先的开源数据管理系统,是一个多用户、多线程的数据库系统。MYSQL在web应用中特别流行,是非常流行的LAMP(L-linux,A-apache,M-mysql,P-php)平台中的一部分。MYSQL最早是由瑞典的MYSQLAB公司所开发,这家公司以及Trolltech是非常有名的开放源代码公司。MYSQL兼容大多数操作系统平台,包括BSDUnix、Linux、Windows以及MAC。维基百科和Y
2012-03-31T01:35:00Z
2012-03-31T01:35:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】MYSQLCAPI入门教程(一)关于本教程这是一本关于MYQL的C语言编程的入门教程,它讲述了MYSQL的CAPI编程的基本知识。本博文由编程导航网提供。(二)关于MYSQL数据库MYSQL是一个领先的开源数据管理系统,是一个多用户、多线程的数据库系统。MYSQL在web应用中特别流行,是非常流行的LAMP(L-linux,A-apache,M-mysql,P-php)平台中的一部分。MYSQL最早是由瑞典的MYSQLAB公司所开发,这家公司以及Trolltech是非常有名的开放源代码公司。MYSQL兼容大多数操作系统平台,包括BSDUnix、Linux、Windows以及MAC。维基百科和Y <a href="https://www.cnblogs.com/sherlockhua/archive/2012/03/31/2426399.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2012/03/29/2423786.html
MYSQL Python 入门教程 - 少林
MYSQLPython入门教程(一)关于本教程这是一本关于Python中使用Mysql编程的入门教程,它讲述了Python中使用Mysql进行编程的基本知识。主要使用MYSQLdb模块。本教程中的所有实例是在ubuntu上开发和测试的。本文由编程导航网提供(二)关于MYSQL数据库MYSQL是一个领先的开源数据管理系统,是一个多用户、多线程的数据库系统。MYSQL在web应用中特别流行,是非常流行的LAMP(L-linux,A-apache,M-mysql,P-php)平台中的一部分。MYSQL最早是由瑞典的MYSQLAB公司所开发,这家公司以及Trolltech是非常有名的开放源代码公司。M
2012-03-29T09:37:00Z
2012-03-29T09:37:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】MYSQLPython入门教程(一)关于本教程这是一本关于Python中使用Mysql编程的入门教程,它讲述了Python中使用Mysql进行编程的基本知识。主要使用MYSQLdb模块。本教程中的所有实例是在ubuntu上开发和测试的。本文由编程导航网提供(二)关于MYSQL数据库MYSQL是一个领先的开源数据管理系统,是一个多用户、多线程的数据库系统。MYSQL在web应用中特别流行,是非常流行的LAMP(L-linux,A-apache,M-mysql,P-php)平台中的一部分。MYSQL最早是由瑞典的MYSQLAB公司所开发,这家公司以及Trolltech是非常有名的开放源代码公司。M <a href="https://www.cnblogs.com/sherlockhua/archive/2012/03/29/2423786.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/05/05/1450045.html
拖拽实现的基本思路. - 少林
拖拽实现的基本思路l首先在WM_LBUTTONDOWN消息进行拖拽测试,看当前用户是否要进行拖拽操作。进行检测的API函数是:BOOLDragDetect(HWNDhwnd,POINTpt);该函数捕获鼠标并且跟踪鼠标的移动直到用户释放鼠标左键、点击ESE或者把鼠标移到拖拽区域之外。拖拽区域的宽和高是通过SM_CXDRAG和SM_CYDRAG进行指定的。这些值可以通过GetSystemMetric...
2009-05-05T08:49:00Z
2009-05-05T08:49:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】拖拽实现的基本思路l首先在WM_LBUTTONDOWN消息进行拖拽测试,看当前用户是否要进行拖拽操作。进行检测的API函数是:BOOLDragDetect(HWNDhwnd,POINTpt);该函数捕获鼠标并且跟踪鼠标的移动直到用户释放鼠标左键、点击ESE或者把鼠标移到拖拽区域之外。拖拽区域的宽和高是通过SM_CXDRAG和SM_CYDRAG进行指定的。这些值可以通过GetSystemMetric... <a href="https://www.cnblogs.com/sherlockhua/archive/2009/05/05/1450045.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/05/02/1447827.html
API总结和断点函数 - 少林
注明:本贴转自友情破解联盟论坛的admin写感觉对新学习的朋友很有用处,所以转来:断点大全常用断点函数1、限制程序功能函数EnableMenuItem 允许、禁止或变灰指定的菜单条目 EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰) 2、对话框函数CreateDialog 从资源模板建立一非模态对话窗 CreateDialogParam 从资源模板建立一非模态对话...
2009-05-02T09:26:00Z
2009-05-02T09:26:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】注明:本贴转自友情破解联盟论坛的admin写感觉对新学习的朋友很有用处,所以转来:断点大全常用断点函数1、限制程序功能函数EnableMenuItem 允许、禁止或变灰指定的菜单条目 EnableWindow 允许或禁止鼠标和键盘控制指定窗口和条目(禁止时菜单变灰) 2、对话框函数CreateDialog 从资源模板建立一非模态对话窗 CreateDialogParam 从资源模板建立一非模态对话... <a href="https://www.cnblogs.com/sherlockhua/archive/2009/05/02/1447827.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/04/10/1433235.html
递归输出n不同元素的全排列 - 少林
如何输出n个元素的全排列呢,比如abc,一个共有abc,acb,bac,bca,cab,cba等六种排列方式,一般来说,一个具有n个元素的串有n!中排列方式。我们可以把n个元素的排列的生成作为一个取舍问题,例如元素串abc,对于以a开头的排列方式,可以用一下方式进行选取,(1)选择b,构成ab,继续选择c,构成abc,新串产生结束。但是在第一步时可以不选取b,然后继续往下搜查,这时只有c,选取c,...
2009-04-10T08:55:00Z
2009-04-10T08:55:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】如何输出n个元素的全排列呢,比如abc,一个共有abc,acb,bac,bca,cab,cba等六种排列方式,一般来说,一个具有n个元素的串有n!中排列方式。我们可以把n个元素的排列的生成作为一个取舍问题,例如元素串abc,对于以a开头的排列方式,可以用一下方式进行选取,(1)选择b,构成ab,继续选择c,构成abc,新串产生结束。但是在第一步时可以不选取b,然后继续往下搜查,这时只有c,选取c,... <a href="https://www.cnblogs.com/sherlockhua/archive/2009/04/10/1433235.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/03/19/1417235.html
毕业设计 公交查询系统 - 少林
一个要好的朋友,读了四年大学,啥都不会。没有办法,只有我帮他代劳,写了简单的公交查询系统,该系统采用vs2005+sql2000开发环境,合适初学者研究,由于时间匆忙,该系统可能存在一些问题,请大家多多包含。 使用:data.rar包含数据库文件,打开数据库,右键-》选择-》附加数据库-》选择数据库文件GJ_Data.MDF即可完成数据库的还原。公交查询系统下载
2009-03-19T15:30:00Z
2009-03-19T15:30:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】一个要好的朋友,读了四年大学,啥都不会。没有办法,只有我帮他代劳,写了简单的公交查询系统,该系统采用vs2005+sql2000开发环境,合适初学者研究,由于时间匆忙,该系统可能存在一些问题,请大家多多包含。 使用:data.rar包含数据库文件,打开数据库,右键-》选择-》附加数据库-》选择数据库文件GJ_Data.MDF即可完成数据库的还原。公交查询系统下载 <a href="https://www.cnblogs.com/sherlockhua/archive/2009/03/19/1417235.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/03/01/1400927.html
const传奇(转) - 少林
const传奇原作:Rahul Singh 翻译:zhigang[译者注]有些地方按原文解释不通,译者根据自己的理解作了适当修改。如有不妥之处,请告知coolgrass@sina.com或参考原文。原文来自www.codeproject.com简介当我自己写程序需要用到const的时候,或者是读别人的代码碰到const的时候,我常常会停下来想一会儿。许多程序员从来不用const,理由是即使没用co...
2009-03-01T09:06:00Z
2009-03-01T09:06:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】const传奇原作:Rahul Singh 翻译:zhigang[译者注]有些地方按原文解释不通,译者根据自己的理解作了适当修改。如有不妥之处,请告知coolgrass@sina.com或参考原文。原文来自www.codeproject.com简介当我自己写程序需要用到const的时候,或者是读别人的代码碰到const的时候,我常常会停下来想一会儿。许多程序员从来不用const,理由是即使没用co... <a href="https://www.cnblogs.com/sherlockhua/archive/2009/03/01/1400927.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/02/25/1398249.html
使用具有填充模式的话刷 - 少林
[代码]
2009-02-25T13:31:00Z
2009-02-25T13:31:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】[代码] <a href="https://www.cnblogs.com/sherlockhua/archive/2009/02/25/1398249.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2009/02/18/1393455.html
逻辑坐标物理坐标的规则 - 少林
何时使用逻辑坐标,何时使用设备坐标呢?vc技术内幕给出了一些重要规则如下:1 假定CDC成员函数具有逻辑坐标参数。2 假定CWnd成员函数具有设备坐标参数。3 在设备坐标中进行所有的点击测试操作。在设备坐标中定义区域,像CRect::PtInRect这样的函数,只有在使用设备坐标时,才能保证结果的正确性。4 在逻辑或者物理坐标中存储长期使用的值,如果在设备坐标中存储一个点的坐标,只有用胡在一个窗口...
2009-02-18T12:40:00Z
2009-02-18T12:40:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】何时使用逻辑坐标,何时使用设备坐标呢?vc技术内幕给出了一些重要规则如下:1 假定CDC成员函数具有逻辑坐标参数。2 假定CWnd成员函数具有设备坐标参数。3 在设备坐标中进行所有的点击测试操作。在设备坐标中定义区域,像CRect::PtInRect这样的函数,只有在使用设备坐标时,才能保证结果的正确性。4 在逻辑或者物理坐标中存储长期使用的值,如果在设备坐标中存储一个点的坐标,只有用胡在一个窗口... <a href="https://www.cnblogs.com/sherlockhua/archive/2009/02/18/1393455.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/12/04/1347402.html
API总结1(转) - 少林
6.一次只运行一个程序实例下列两种方式都可以实现,建议采用第二种方式:1、 if( FindWindow(NULL,"程序标题")) exit(0);2、BOOL CDemoTBarEApp::InstanceIsRun(){HANDLE m_hMutex;m_hMutex = ::CreateMutex(NULL, TRUE, _T("YourApplication"));ASSERT(m_h...
2008-12-04T03:21:00Z
2008-12-04T03:21:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】6.一次只运行一个程序实例下列两种方式都可以实现,建议采用第二种方式:1、 if( FindWindow(NULL,"程序标题")) exit(0);2、BOOL CDemoTBarEApp::InstanceIsRun(){HANDLE m_hMutex;m_hMutex = ::CreateMutex(NULL, TRUE, _T("YourApplication"));ASSERT(m_h... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/12/04/1347402.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/11/25/1340733.html
windows API一日一学(2)---InvalidateRect函数 - 少林
InvalidateRect函数该函数添加一个区域到指定窗口的更新区域。更新区域代表窗口客户端的一部分,这部分必须进行重新绘制。BOOLInvalidateRect(HWNDhWnd,constRECT*lpRect,BOOLbErase);参数:hWnd指向需要重新绘制的窗口句柄。如果该参数为空,系统将更新和重新绘制所有的窗口,然后在该函数返回之前发送WM_ERASEBKGND给窗口过程.lpRect一个指向RECT的结构体,该结构包含了要添加到更新区域的长方形区域的坐标。如果该参数为NULL,整个客户端区域将会被添加到更新区域。bErase该参数为布尔型。指定了当更新区域重新绘制时,更新区
2008-11-25T08:17:00Z
2008-11-25T08:17:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】InvalidateRect函数该函数添加一个区域到指定窗口的更新区域。更新区域代表窗口客户端的一部分,这部分必须进行重新绘制。BOOLInvalidateRect(HWNDhWnd,constRECT*lpRect,BOOLbErase);参数:hWnd指向需要重新绘制的窗口句柄。如果该参数为空,系统将更新和重新绘制所有的窗口,然后在该函数返回之前发送WM_ERASEBKGND给窗口过程.lpRect一个指向RECT的结构体,该结构包含了要添加到更新区域的长方形区域的坐标。如果该参数为NULL,整个客户端区域将会被添加到更新区域。bErase该参数为布尔型。指定了当更新区域重新绘制时,更新区 <a href="https://www.cnblogs.com/sherlockhua/archive/2008/11/25/1340733.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/11/21/1338723.html
sdk一日一学(1)---WM_DRAWITEM消息 - 少林
WM_DRAWITEM消息当具有自绘风格的按钮、组合框、列表框或者菜单的可见部分发生改变时,就会发送WM_DRAWITEM消息给自绘控件所在的窗体。窗口通过WindowProc函数接受WM_DRAWITEM消息WindowProc函数定义如下:LRESULTCALLBACKWindowProc(HWNDhwnd, //指向窗口的句柄UINTuMsg, WM_DRAWITEM消息WPARAMwPar...
2008-11-21T14:40:00Z
2008-11-21T14:40:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】WM_DRAWITEM消息当具有自绘风格的按钮、组合框、列表框或者菜单的可见部分发生改变时,就会发送WM_DRAWITEM消息给自绘控件所在的窗体。窗口通过WindowProc函数接受WM_DRAWITEM消息WindowProc函数定义如下:LRESULTCALLBACKWindowProc(HWNDhwnd, //指向窗口的句柄UINTuMsg, WM_DRAWITEM消息WPARAMwPar... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/11/21/1338723.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/11/07/1328698.html
一个简单的windows程序 - 少林
好久没有用c语言写windows程序了,今天有兴致,写一个权当练练手吧。如果是学vc的话,系统的api还是要理解透的。以后还得多看看"windows 程序设计"的书,提高自己的内功修炼。:) #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI Win...
2008-11-07T03:12:00Z
2008-11-07T03:12:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】好久没有用c语言写windows程序了,今天有兴致,写一个权当练练手吧。如果是学vc的话,系统的api还是要理解透的。以后还得多看看"windows 程序设计"的书,提高自己的内功修炼。:) #include LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ; int WINAPI Win... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/11/07/1328698.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/11/04/1326412.html
链表逆序输出 - 少林
最近随手写了一个链表逆序的算法,全当练手好了。 代码比较简单,不做介绍了,如下: Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// linkreverse.cpp : Defines the entry point for the c...
2008-11-04T07:56:00Z
2008-11-04T07:56:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】最近随手写了一个链表逆序的算法,全当练手好了。 代码比较简单,不做介绍了,如下: Code Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->// linkreverse.cpp : Defines the entry point for the c... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/11/04/1326412.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/11/03/1325174.html
好久没有写博文了 - 少林
最近,忙于找工作,好久都没有写博文,有些网友关于代码的请求,不能及时发放,还请原谅。由于源代码不在身边,所以,暂时不能一一发送代码,还请谅解。
2008-11-03T01:14:00Z
2008-11-03T01:14:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】最近,忙于找工作,好久都没有写博文,有些网友关于代码的请求,不能及时发放,还请原谅。由于源代码不在身边,所以,暂时不能一一发送代码,还请谅解。 <a href="https://www.cnblogs.com/sherlockhua/archive/2008/11/03/1325174.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/09/29/1302022.html
Wave文件格式(转) - 少林
一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个 字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选),...
2008-09-29T08:03:00Z
2008-09-29T08:03:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】一、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。 RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个 字节便是“RIFF”。 WAVE文件是由若干个Chunk组成的。按照在文件中的出现位置包括:RIFF WAVE Chunk, Format Chunk, Fact Chunk(可选),... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/09/29/1302022.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/09/21/1295447.html
数独游戏的一种解法 - 少林
最近在北京青年报偶然看到了一个数独游戏的题,具体来说就是按规矩进行填书。自己想了想,觉得还是有点费脑子的。于是就编写了一个程序,可以搜索数独游戏的所有答案。算法很简单,就是使用了回溯+剪枝,效率可能不是很高。不过对于9*9规模不是很大的问题,也应该足够了,不知道大家有什么好的算法,千万别忘了留言告诉我啊,哈哈 数独游戏: 版权所有 数独的游戏规...
2008-09-21T12:28:00Z
2008-09-21T12:28:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】最近在北京青年报偶然看到了一个数独游戏的题,具体来说就是按规矩进行填书。自己想了想,觉得还是有点费脑子的。于是就编写了一个程序,可以搜索数独游戏的所有答案。算法很简单,就是使用了回溯+剪枝,效率可能不是很高。不过对于9*9规模不是很大的问题,也应该足够了,不知道大家有什么好的算法,千万别忘了留言告诉我啊,哈哈 数独游戏: 版权所有 数独的游戏规... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/09/21/1295447.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/09/18/1293660.html
acm 2785 - 少林
题目: 武林 Time Limit:1000MS Memory Limit:65536K Total Submit:760 Accepted:289 Description 在一个有12行12列的方形的武林世界里,少林、武当和峨嵋三派的弟子们在为独霸武林而互相厮杀。武林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)……右下角的坐标为(12, 12)。如图: ...
2008-09-18T13:02:00Z
2008-09-18T13:02:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】题目: 武林 Time Limit:1000MS Memory Limit:65536K Total Submit:760 Accepted:289 Description 在一个有12行12列的方形的武林世界里,少林、武当和峨嵋三派的弟子们在为独霸武林而互相厮杀。武林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)……右下角的坐标为(12, 12)。如图: ... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/09/18/1293660.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/09/06/1285598.html
C++一些重要概念(转) - 少林
C++语言中的一些概念及他们之间的区别(需要深刻理解): (1) 局部变量 全局变量 静态变量 const常量 寄存器变量 宏定义的常量 static变量 (注:包括它们的内存分配,作用域,初始化等) 局部变量: 指在函数(过程)内部定义的变量 作用域为定义该变量的函数 内存分配: 在栈中按地址从高到低分配;. 全局变量: ...
2008-09-06T04:57:00Z
2008-09-06T04:57:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】C++语言中的一些概念及他们之间的区别(需要深刻理解): (1) 局部变量 全局变量 静态变量 const常量 寄存器变量 宏定义的常量 static变量 (注:包括它们的内存分配,作用域,初始化等) 局部变量: 指在函数(过程)内部定义的变量 作用域为定义该变量的函数 内存分配: 在栈中按地址从高到低分配;. 全局变量: ... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/09/06/1285598.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sherlockhua/archive/2008/08/16/1269075.html
mfc更改控件背景颜色小结 - 少林
HBRUSH CAutoExeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC) { ...
2008-08-15T17:31:00Z
2008-08-15T17:31:00Z
少林
https://www.cnblogs.com/sherlockhua/
【摘要】HBRUSH CAutoExeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_STATIC) { ... <a href="https://www.cnblogs.com/sherlockhua/archive/2008/08/16/1269075.html" target="_blank">阅读全文</a>